使用sklearn估計器構建K-Means聚類模型


實例要求:以sklearn庫自帶的iris數據集為例,使用sklearn估計器構建K-Means聚類模型,並且完成預測類別功能以及聚類結果可視化。

實例代碼:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans
from sklearn.manifold import TSNE

'''  構建K-Means模型  '''
iris = load_iris()
iris_data = iris['data'] # 提取數據集中的數據
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])

'''  聚類結果可視化  '''
tsne = TSNE(n_components=2,init='random',random_state=177).fit(iris_data)    # 使用TSNE進行數據降維,降成兩維
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()                          # 顯示圖片

實例結果:

  構建的K-Means模型為:

  

  花瓣預測結果:

  

  聚類結果可視化:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM