146
9가지 사례로 익히는 고급 스파크 분석 (2판)
def clusteringScore1(data: DataFrame, k: Int): Double = {
...
setMaxIter(40). ➊
setTol(1.0e-5) ➋
...
}
(20 to 100 by 20).map(k => (k, clusteringScore1(numericOnly, k))).
foreach(println)
➊ 기본값인 20보다 크게 설정했다.
➋ 기본값인 1.0e-4보다 작게 설정했다.
이번에는 다음과 같이 평가 점수가 점점 감소하고 있다.
(20,1.8041795813813403E8)
(40,6.33056876207124E7)
(60,9474961.544965891)
(80,9388117.93747141)
(100,8783628.926311461)
k
가 증가해도 평가 점수가 크게 떨어지지 않는 지점, 또는
k
와 평가 점수의 그래프에서 기울기
가 점점 줄어들다가 평평해지는 ‘팔꿈치
Elbow
’에 해당하는 지점을 찾아야 한다. 여기서는
100
에
서 눈에 띄게 감소하고 있으니
100
이 적당한
k
값일 수 있다.
5.7
R
에서 시각화하기
여기까지 왔으면 군집화를 다시 해보기에 앞서, 한 걸음 떨어져 데이터를 더 깊게 이해해보는
편이 유익할 것이다. 특히 데이터 포인트들의 위치를 화면에 표시하여 그 구조를 살펴보면 도
움이 될 것이다.
스파크는 시각화 도구를 제공하지 않지만 대중적인 오픈 소스 통계 도구인
R
은 데이터를 탐색
하고 시각화하는 라이브러리를 제공한다. 게다가, 스파크 ...