sklearn建模及評估(聚類)
作為機器學習工具的 sklearn ,它主要作用是構建模型和評估。其主要的模型分為聚類、分類、迴歸等,而沒有模型也有適應不同場景的多個演算法。接下來我們從這幾點進行簡要總結。
1、聚類模型
聚類的輸入是一組未被標記(所謂 target 值或 lable )的樣本,聚類根據資料自身的距離或相似度將它們劃分為若干組。劃分的原則是組內(內部)距離最小化,而組間(外部)距離最大化。sklearn提供的各種聚類方法有如下圖所示:
聚類演算法的實現需要 sklearn 的估計器( Estimator ),估計其擁有 fit 和 predict 兩個方法。以 iris 資料為例,使用 sklearn 估計器構建 K-Means 聚類模型,其例項如下程式碼所示:
1.1 構建聚類模型程式碼
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans
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])
1.2 聚類結果視覺化
import pandas as pd
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.savefig('C:/Users/yspmm/spydertest/聚類結果2.png')
plt.show() ##顯示圖片
1.3 使用FMI評價聚類模型
sklearn的metrics模組提供提供了聚類模型評價指標。為什麼要評價,目的在於模型時候達到預期效果。
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))
參考書:
Python資料分析與應用 黃紅梅、張良均 主編 中國工信出版集團和人民郵電出版社
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-2655875/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 評估類、評估類別、評估級別關係
- 機器學習Sklearn系列:(五)聚類演算法機器學習聚類演算法
- 【模型評估與選擇】sklearn.model_selection.KFold模型
- Python數模筆記-Sklearn(2)樣本聚類分析Python筆記聚類
- Python+sklearn使用DBSCAN聚類演算法案例一則Python聚類演算法
- 【引用】分割評估類的應用
- MySQL准入規範及容量評估MySql
- 風險評估框架流程及分析原理框架
- 聚類模型的演算法效能評價聚類模型演算法
- 機器學習之使用sklearn構建據類模型,並且評價模型機器學習模型
- 分類演算法的評估指標演算法指標
- 評估指標與評分(上):二分類指標指標
- 資料庫效能需求分析及評估模型資料庫模型
- 團隊成員分工及績效評估
- 常用聚類演算法以及演算法評價聚類演算法
- 自我評估
- chapter5:分類的進一步探討---演算法評估及kNNAPT演算法KNN
- Support Vector Machines(SVM)如何根據虹膜分類評估性格類別?Mac
- 分類 和 聚類聚類
- 聚類分析聚類
- kafka容量評估Kafka
- 資料資產價值評估常用方法及對比
- IT風險評估及風險管理之應用安全篇(轉)
- 遊戲運營活動效果分析(五):各類活動效果評估遊戲
- 聚類之K均值聚類和EM演算法聚類演算法
- 聚類(part3)--高階聚類演算法聚類演算法
- 教你文字聚類聚類
- 六種GAN評估指標的綜合評估實驗,邁向定量評估GAN的重要一步指標
- 聚類演算法——DBSCAN演算法原理及公式聚類演算法公式
- sklearn 細節 —— SGDClassifier、Perceptron(分類模型)模型
- 什麼是風險評估?風險評估需要分析哪些內容?
- 系統效能評價---效能評估
- NLP教程(2) | GloVe及詞向量的訓練與評估
- 機器學習之模型評估機器學習模型
- JuiceFS 效能評估指南UI
- SAP專案評估
- 什麼是網路安全風險評估?需要評估哪些內容?
- 聚類的基本問題及兩個常用演算法聚類演算法