서로 유사한 데이터들은 같은 그룹으로, 서로 유사하지 않은 데이터는 다른 그룹으로 분리하는 것
agglomerative clustering
from scipy.cluster.hierarchy import dendrogram, linkage
plt.figure(figsize=(10,5))
link_dist = linkage(df2,metric='euclidean',method='centroid')
dendrogram(link_dist,labels=list(df2.index))
plt.show()
from sklearn.cluster import KMeans
km = KMeans(n_clusters = 3).fit(df)
km.labels_, km.cluster_centers_
(array([0, 2, 1, 0, 0, 0, 0, 0, 1, 2, 2, 2, 0, 1, 2], dtype=int32),
array([[ 4191629.42857143, 3805868.14285714],
[ 6433742.33333333, 31018896. ],
[ 6245553.6 , 16144968.6 ]]))
데이터들을 [평균=0 , 표준편차=1]로 만드는 작업
-return: array
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['피쳐0','피쳐1']] = scaler.fit_transform(df[['피쳐0','피쳐1']])
Density-based spatial clustering of applications with noise
반경 5 이내, 데이터 개수가 10개 이상이면 군집으로 인정한다!
dbscan = DBSCAN(eps=거리, min_samples=정수, metric='euclidean')
predict = dbscan.fit_predict(X)
plt.scatter(X[:,0],X[:,1],c=predict)
이러한 데이터들을 ...
이렇게 축 회전을 시켜 변화축이 큰 축(x축) 기준으로
차원을 축소시키는 기법을 말한다. 나도 이해가 잘 안가서 대충 적어보았다.
PCA는 위와 같은 문제점이 있다. 분명 잘 구분되는 파랑과 빨강이었지만 차원축소를 한 결과 두 카테고리가 겹치는 불상사가 발생하였다.
t-SNE는 방금과 같은 문제점을 해결하기 위하여 고안되었다.