python聚类的结果显示_使用Python进行聚类
微信公眾號:嶺南見聞
關注可了解更多的數據處理技巧。問題或建議,請公眾號留言;
如果你覺得文章對你有幫助,歡迎贊賞
導入數據,進行聚類from?sklearn.datasets?import?load_iris
from?sklearn.preprocessing?import?MinMaxScaler
from?sklearn.cluster?import?KMeans
import?pandas?as?pd
iris?=?load_iris()
iris_data?=?iris['data']?##提取數據集中的特征
kmeans聚類iris_target?=?iris['target']?##?提取數據集中的標簽
iris_names?=?iris['feature_names']?###?提取特征名
scale?=?MinMaxScaler().fit(iris_data)##?訓練規則
iris_dataScale?=?scale.transform(iris_data)?##?應用規則
kmeans?=?KMeans(n_clusters?=?3,
random_state=123).fit(iris_dataScale)?##構建并訓練模型
print('構建的K-Means模型為:\n',kmeans)
result?=?kmeans.predict([[1.5,1.5,1.5,1.5]])
print('花瓣花萼長度寬度全為1.5的鳶尾花預測類別為:',?result[0])
print('聚類結果為:',?kmeans.labels_)
降維后可視化from?sklearn.manifold?import?TSNE
import?matplotlib.pyplot?as?plt
##使用TSNE進行數據降維,降成兩維
tsne?=?TSNE(n_components=2,init='random',
random_state=177).fit(iris_data)
df=pd.DataFrame(tsne.embedding_)?##將原始數據轉換為DataFrame
df['labels']?=?kmeans.labels_?##將聚類結果存儲進df數據表
##提取不同標簽的數據
df1?=?df[df['labels']==0]
df2?=?df[df['labels']==1]
df3?=?df[df['labels']==2]
##?繪制圖形
fig?=?plt.figure(figsize=(9,6))?##設定空白畫布,并制定大小
##用不同的顏色表示不同數據
plt.plot(df1[0],df1[1],'bo',df2[0],df2[1],'r*',
df3[0],df3[1],'gD')
plt.show()?##顯示圖片
結果為:
聚類結果
FMI評價分值from?sklearn.metrics?import?fowlkes_mallows_score
for?i?in?range(2,7):
##構建并訓練模型
kmeans?=?KMeans(n_clusters?=?i,random_state=123).fit(iris_data)
score?=?fowlkes_mallows_score(iris_target,kmeans.labels_)
print('iris數據聚%d類FMI評價分值為:%f'?%(i,score))
silhouette_score評分值from?sklearn.metrics?import?silhouette_score
import?matplotlib.pyplot?as?plt
silhouettteScore?=?[]
for?i?in?range(2,15):
##構建并訓練模型
kmeans?=?KMeans(n_clusters?=?i,random_state=123).fit(iris_data)
score?=?silhouette_score(iris_data,kmeans.labels_)
silhouettteScore.append(score)
plt.figure(figsize=(10,6))
plt.plot(range(2,15),silhouettteScore,linewidth=1.5,?linestyle="-")
plt.show()
calinski_harabaz指數from?sklearn.metrics?import?calinski_harabaz_score
for?i?in?range(2,7):
##構建并訓練模型
kmeans?=?KMeans(n_clusters?=?i,random_state=123).fit(iris_data)
score?=?calinski_harabaz_score(iris_data,kmeans.labels_)
print('iris數據聚%d類calinski_harabaz指數為:%f'%(i,score))#讀取數據,進行標準化
from?sklearn.preprocessing?import?StandardScaler
from?sklearn.cluster?import?KMeans
seeds?=?pd.read_csv('D:/seeds_dataset.txt',sep?=?'\t')
print('數據集形狀為:',?seeds.shape)
##?處理數據
seeds_data?=?seeds.iloc[:,:7].values
seeds_target?=?seeds.iloc[:,7].values
sees_names?=?seeds.columns[:7]
stdScale?=?StandardScaler().fit(seeds_data)
seeds_dataScale?=?stdScale.transform(seeds_data)
構建并訓練模型
kmeans = KMeans(n_clusters = 3,random_state=42).fit(seeds_data)
print('構建的KM-eans模型為:\n',kmeans)
kmeans.labels_結果為:
聚類結果為:?[1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1
1?1?1?1?1?1?1?1?1?1?1?1?1?0?2?0?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2
2?2?2?0?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?0?2?0?0?0?0?2?0?0?0?0
0?0?2?0?0?0?0?0?2?0?2?0?2?0?0?2?2?0?0?0?0?0?2?2?0?0?0?2?0?0?0?2?0?0?0?2?0
0?2]
calinski_harabaz指數from?sklearn.metrics?import?calinski_harabaz_score
for?i?in?range(2,7):
##構建并訓練模型
kmeans?=?KMeans(n_clusters?=?i,random_state=12).fit(seeds_data)
score?=?calinski_harabaz_score(seeds_data,kmeans.labels_)
print('seeds數據聚%d類calinski_harabaz指數為:%f'%(i,score))
進行可視化from?sklearn.manifold?import?TSNE
import?matplotlib.pyplot?as?plt
##使用TSNE進行數據降維,降成兩維
tsne?=?TSNE(n_components=2,init='random',
random_state=177).fit(seeds_data)
df=pd.DataFrame(tsne.embedding_)?##將原始數據轉換為DataFrame
df['labels']?=?kmeans.labels_?##將聚類結果存儲進df數據表
df['labels'].value_counts()
df0?=?df[df['labels']==0]
df1?=?df[df['labels']==1]
df2?=?df[df['labels']==2]
df3?=?df[df['labels']==3]
df4?=?df[df['labels']==4]
df5?=?df[df['labels']==5]
plt.plot(df0[0],df0[1],'go',df1[0],df1[1],'bo',df2[0],df2[1],'r*',
df3[0],df3[1],'kD',??df4[0],df4[1],'cD',??df5[0],df5[1],'mD')
plt.plot(df0[0],df0[1],'go',df1[0],df1[1],'bo',df2[0],df2[1],'r*')#,
#df3[0],df3[1],'kD',??df4[0],df4[1],'cD',??df5[0],df5[1],'mD')
結果為:
聚為5類
聚為3類
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python聚类的结果显示_使用Python进行聚类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Echarts实践-实现3D地球
- 下一篇: 打开 谷歌浏览器exe_python使用