📝머신러닝 K-Means Clustering
※ 언수퍼바이즈드 러닝에 y 는 없다 X 값만 필요
from sklearn.cluster import KMeans
kmeans() : n개의 그룹을 만들어 분류한다 (비슷한 특징을 갖는 것들끼리 묶는다)
# 변수에 저장하여 사용
kmeans = KMeans(n_clusters= 3, random_state=2)
# n_clusters= 그룹의 갯수 지정
kmeans = KMeans(n_clusters= 3, random_state=2)
# 학습이 아닌 예측을 시킨다
y_pred = kmeans.fit_predict(X)
# 예측한 데이터는 새로운 컬럼에 저장해 활용
df['Group'] = y_pred
# ex1) 그룹이 3인사람 가져오기
group3 = df.loc[ df['Group'] == 3 ]
# ex2) 피봇테이블 활용해 평균 구하기
pd.pivot_table(df, index='Group', aggfunc=np.mean)
몇개의 그룹으로 묶는 것이 좋은지 알아보기 (WCSS)
wcss = []
for k in np.arange(1,10+1) : # 1개부터 10개까지
kmeans = KMeans(n_clusters= k, random_state= 5)
kmeans.fit(X)
wcss.append( kmeans.inertia_ )
각 클러스터의 갯수마다 구한 WCSS 값을 차트로 나타낸다 (엘보우메소드)
x = np.arange(1, 10+1)
plt.plot(x, wcss)
plt.title('The Elbow Method')
plt.show()
'인공지능 > Machine Learning' 카테고리의 다른 글
[Machine Learning] 계층적군집 Hierarchical Clustering (0) | 2022.12.05 |
---|---|
[Machine Learning] RandomForestClassifier 인공지능 실제 예측해보기 (0) | 2022.12.02 |
[Machine Learning] 분류예측 RandomForestClassifier (0) | 2022.12.02 |
[Machine Learning] 분류예측 Decision Tree (0) | 2022.12.02 |
[Machine Learning] 성능향상 GridSearchCV() (0) | 2022.12.02 |
댓글