數據分析與挖掘(十六)------挖掘建模之聚類分析算法評價及主要聚類分析算法

一、聚類分析算法評價

 

聚類分析僅根據樣本數據本身將樣本分組。其目標是實現組內的對象相互之間是相似的(相關的),而不同組中的對象是不同的(不相關的)。組內的相似性越大,組間差別越大,聚類效果就越好。

 

(1)purity評價法

(2)RI評價法

(3)F值評價法

 

二、python主要聚類分析算法

python的聚類相關的算法主要在Scikit-Learn中,python裏面實現的聚類主要包括K-Means聚類、層次聚類、FCM以及神經網絡聚類。

聚類主要函數列表:

這些不同模型的使用方法是大同小異的,基本都是先用對應的函數建立模型,然後用.fit()方法來訓練模型,訓練好之後,就可以用.label_方法給出樣本數據的標籤,或者用.predict() 方法預測新的輸入標籤。

TSNE-聚類可視化工具

TSNE的定位是高維數據的可視化。通常來說輸入的特徵數是高維的(大於3維),一般很難以原特徵對聚類結果進行展示。TSNE提供了一種有效的數據降維方式,讓我們可以在2維或者3維的空間中展示聚類的結果。

TSNE實例:

對K-Means聚類結果以二維的方式展現出來:

#-*- coding: utf-8 -*-
#接k_means.py
from sklearn.manifold import TSNE


tsne = TSNE()
tsne.fit_transform(data_zs) #進行數據降維
tsne = pd.DataFrame(tsne.embedding_, index = data_zs.index) #轉換數據格式


import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus'] = False #用來正常顯示負號


#不同類別用不同顏色和樣式繪圖
d = tsne[r[u'聚類類別'] == 0]
plt.plot(d[0], d[1], 'r.')
d = tsne[r[u'聚類類別'] == 1]
plt.plot(d[0], d[1], 'go')
d = tsne[r[u'聚類類別'] == 2]
plt.plot(d[0], d[1], 'b*')
plt.show()

輸出:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章