TSNE提供了一種有效的降維方式,讓我們對高於2維數據的聚類結果以二維的方式展示出來:
1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 4 #接k_means.py 5 #k_means.py中得到三維規范化數據data_zs; 6 #r增加了最后一列,列索引為“聚類類別” 7 8 from sklearn.manifold import TSNE 9 10 tsne=TSNE() 11 tsne.fit_transform(data_zs) #進行數據降維,降成兩維 12 #a=tsne.fit_transform(data_zs) #a是一個array,a相當於下面的tsne_embedding_ 13 tsne=pd.DataFrame(tsne.embedding_,index=data_zs.index) #轉換數據格式 14 15 import matplotlib.pyplot as plt 16 17 d=tsne[r[u'聚類類別']==0] 18 plt.plot(d[0],d[1],'r.') 19 20 d=tsne[r[u'聚類類別']==1] 21 plt.plot(d[0],d[1],'go') 22 23 d=tsne[r[u'聚類類別']==2] 24 plt.plot(d[0],d[1],'b*') 25 26 plt.show()
結果圖:
原數據data_zs是三維的數據!