(해당 자료들은 인텔 AI for Future Workforce내용을 학습하고 가공한 내용입니다.)
< Module - 11 >
#K-Means(K-평균)
1. K-Means
주어진 데이터를 k(사람이 지정)개의 클러스터로 묶는 알고리즘으로, 각 클러스터의 거리 차이의 분산을 최소화하는 방식으로 작동한다.
#소셜 미디어 전파성 예측
1. 문제
클러스터 내의 기사가 비슷한 인기를 가질 수 있도록 기사 데이터 세트를 클러스터 그룹으로 나누어야 한다.
2. 라이브러리
>>> import pandas as pd
>>> import numpy as np
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> import seaborn as sns
>>> %matplotlib inline
>>> sns.set("talk","darkgrid",font_scale=1,font="sans-serif",color_codes=True)
>>> from sklearn import metrics
>>> from sklearn.decomposition import PCA
>>> from sklearn.cluster import KMeans
>>> from sklearn.cluster import DBSCAN
>>> from sklearn.cluster import AgglomerativeClustering
# 데이터세트 가져오기
>>> df = pd.read_csv('[Dataset]_Module11_(Viral).csv')
3. 데이터 확인
>>> df.head()
4. K-평균 알고리즘 적용
>>> kmeans = KMeans(n_clusters=4)
# kmeans.fit 함수로 kmeans 모델을 피팅
>>> kmeans_output = kmeans.fit(X)
>>> y_kmeans = kmeans.predict(X)
>>> plt.scatter(X.iloc[:, 0], X.iloc[:, 1], c=y_kmeans, s=50, cmap='viridis')
>>> centers = kmeans.cluster_centers_
>>> plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);
출력 결과 데이터 전체의 클러스터가 구분이 어려워 범위를 줄여 출력한다.
>>> X1 = X.iloc[:, 0:2]
>>> kmeans = KMeans(n_clusters=3)
>>> kmeans_output = kmeans.fit(X1)
>>> y_kmeans = kmeans.predict(X1)
>>> plt.scatter(X1.iloc[:, 0], X1.iloc[:, 1], c=y_kmeans, s=50, cmap='viridis')
>>> centers = kmeans.cluster_centers_
>>> plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);
'인텔 AI 교육' 카테고리의 다른 글
인텔 AI 교육 - Module-11(인공 신경망 예제) (0) | 2023.07.26 |
---|---|
인텔 AI 교육 - Module - 11(랜덤 포레스트 예제) (0) | 2023.07.25 |
인텔 AI 교육 - Module-11(KNN미결) (0) | 2023.07.25 |
인텔 AI 교육 - Module-11(선형 회귀 예제) (0) | 2023.07.25 |
인텔 AI 교육 - Module-11(ML 모델) (0) | 2023.07.24 |