클러스터링 실습 (1) (EDA,Sklearn)
Assignment3. #3 Clustering 해보기 : Mall_Customer.csv
Preprocessing EDA
Clustering ( 수업시간에 배운 세 가지 방법 + α )
Evaluation
1. Preprocessing, EDA
Gender
Age
Annual Income (k$)
Spending Score (1-100)
count
200.000000
200.000000
200.000000
200.000000
mean
0.560000
38.850000
60.560000
50.200000
std
0.497633
13.969007
26.264721
25.823522
min
0.000000
18.000000
15.000000
1.000000
25%
0.000000
28.750000
41.500000
34.750000
50%
1.000000
36.000000
61.500000
50.000000
75%
1.000000
49.000000
78.000000
73.000000
max
1.000000
70.000000
137.000000
99.000000






2. Clustering
ML은 크게 supervised learning, unsupervised learning, reinforcement learning으로 나뉘는데, clustering은 target이 존재하지 않는 unsupervised learning에 속한다.
clustering에 대한 전체적인 구분은 아래와 같다.
clustering
hierarchical clustering (중첩 허용) 거리측정 방식(L1 norm, L2 norm, mahalanobis, corr distance 등) + 군집과 군집 사이 거리(single, complete, average, centroid, ward)
bottom up ex) AgglomerativeClustering -> proximity matrix에서 점점 군집의 크기를 키워나감
top down
partitional clustering (중첩 비허용)
거리 기반 ex) KMeans (결정해야 하는 것 : K + 초기 centroid의 위치)
밀도 기반 ex) DBSCAN (결정해야 하는 것 : eps + minpts)
1) Hierarchical Clustering
중복을 허용하여 clustering 하는 방법 (=군집 내에 군집이 속할 수 있음) 일정 높이에서 dendrogram을 잘라서 군집의 수 결정한다.
거리를 측정하는 방법
L1 norm (manhattan distance)
L2 norm (euclidean distance)
mahalanobis (feature간의 공분산 행렬을 고려한 거리)
corr distance (상관계수 높을수록 거리 짧게)
cluster 간의 거리를 측정하는 방법
single linkage (군집 간 element끼리의 거리 중 min을 군집 간 거리로 설정)
complete linkage (군집 간 element끼리의 거리 중 max를 군집 간 거리로 설정)
average linkage (군집 간 element끼리의 모든 거리를 average)
centroid (군집의 centroid끼리의 거리)
ward (두 군집 간 제곱합 - (군집 내 제곱합의 합))





2) KMeans
kmeans는 비계층적 군집화 방법 중 distance 기반 알고리즘에 속한다. kmenas는 k개의 init centroid를 설정해놓고, 각각의 데이터를 가까운 centroid cluster로 할당한 후, 그리고 cluster 내 centorid를 update하고, 다시 각각의 데이터를 가까운 centroid cluster로 할당하는 과정을 반복한다. 이 과정을 centorid가 변하지 않을 때 까지 반복 수행된다. (=즉 각 centroid cluster에 할당된 데이터가 더이상 변하지 않을 때 까지) (혹은 iteration 횟수를 지정해두기도 한다.)
kmeans에서 중요한 변수는 군집의 개수인 K와 init centroid이다. init centroid가 어디인지에 따라 최종 수렴된 clustering 결과가 달라질 수 있기 떄문에 일부 데이터를 sampling해 hierarchical clusteirng을 수행한 후, 이에 기반해 init centorid를 지정하기도 한다. scikit learn의 KMeans ‘k-means++’ 방법으로 초기 centroid를 결정하는데, 이 방법은 k개의 초기 centroid를 결정할 때 centroid_1 하나 지정하고 그 다음 centorid_2는 이전의 centroid_1와 멀리 떨어지게 잡는 것이다. 또한 군집의 수인 K는 x축을 K, y축을 군집 내 거리 제곱합의 합으로 두고 급격하게 꺽이는 elbow point를 찾는다. (=당연히 군집의 수 늘어날수록 군집 내 거리제곱합은 줄어드는 것이다. elbow point를 찾는 이유는 군집의 수를 늘렸음에도 불구하고 거리제곱합이 크게 줄어들지 않는 지점을 찾고자 하는 의도)





3) DBSCAN
dbscan은 clustering 방법 중 partitional clustering에 속하며 밀도 기반 알고리즘이다. dbscan에서 중요한 hyperparameter는 minpts와 eps이다.
dbscan은 eps, minpts에 기반하여 모든 데이터를 core point, border point, noise point로 구분한다.
core point : eps 반경 내에 minpts 이상개의 데이터 보유
border point : eps 반경 내에 minpts개의 데이터는 없지만, core point를 neighbor로 가진다.
noise point : eps 반경 내에 minpts개의 데이터도 없고, core point도 neighbor로 가지지 않는다.
core point가 다른 core point의 eps 반경내에 포함되면 하나의 cluster가 되는 방향으로 군집을 형성해 나간다. 이 때 border point는 cluster의 경계를 형성하는 역할을 하며, noise point는 어떠한 cluster에도 포함되지 않는다.
eps와 minpts는 k-dist를 통해 적절한 값이 결정된다. 각 데이터마다 k번째로 가까운 거리를 구하고, 이 거리를 정렬하여 plot을 그린다. 이 때 급격히 k-dist가 증가할 때 이 때의 dist값이 eps가, k가 minpts가 된다. (이렇게 되면 대부분의 경우 eps 반경내에 k개의 데이터를 갖고 있다는 의미)






4) spectralClustering
Construct a similarity graph
Determine the Adjacency matrix W, Degree matrix D and the Laplacian matrix L
Compute the eigenvectors of the matrix L
Using the second smallest eigenvector as input, train a k-means model and use it to classify the data
Meanshift
KDE(kernal density estimation)을 이용하여 데이터 포인트들이 분포가 높은 곳으로 이동하며 clustering이 수행된다. 별도의 cluster 개수를 지정하지 않으며 데이터 분포도에 기반하여 자동으로 cluster 개수가 정해짐
KDE는 kernal 함수를 통해 어떤 변수의 확률밀도 함수를 추정하는 방식이다. 확률 밀도를 추정하는 방식에는 모수적 방식과 비모수적 방식이 있는데, KDE는 비모수적 방식에 속한다. (모수적 방식은 분포를 가정하고 그 때의 모수를 추정하는 방식) KDE는 개별 데이터에 커널 함수를 적용한 뒤 커널함수의 적용 값을 합한 후 데이터의 건수로 나누어 확률밀도함수를 추정하는 방식이다. (커널함수로는 가우시안 분포함수가 대표적이다.) meanshift에서 주요 hyperparameter는 bandwidth인데, 만약 가우시안 커널 함수를 사용한다고 했을 때 bandwidth가 작으면 표준편차가 작은 커널함수가 만들어진다. 따라서 bandwidth가 작으면 overfitting될 확률이 높고, bandwidth가 작으면 smoothing되어 underfitting될 확률이 높다. 또한 bandwidth가 작을수록 많은 클러스터 중심점을, 클수록 적은 클러스터 중심점을 갖게 된다.
3. Evaluation




Last updated
Was this helpful?