python代碼實現TSNE降維數據可視化教程
更新時間:2020年02月28日 11:40:40 作者:WANG_DDD
今天小編就為大家分享一篇python代碼實現TSNE降維數據可視化教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
TSNE降維
降維就是用2維或3維表示多維數據(彼此具有相關性的多個特征數據)的技術,利用降維算法,可以顯式地表現數據。(t-SNE)t分布隨機鄰域嵌入 是一種用于探索高維數據的非線性降維算法。它將多維數據映射到適合于人類觀察的兩個或多個維度。
python代碼
km.py
#k_mean算法 import pandas as pd import csv import pandas as pd import numpy as np #參數初始化 inputfile = 'x.xlsx' #銷量及其他屬性數據 outputfile = 'x_1.xlsx' #保存結果的文件名 k = 2 #聚類的類別 iteration = 3 #聚類最大循環(huán)次數 data = pd.read_excel(inputfile, index_col = 'Id') #讀取數據 data_zs = 1.0*(data - data.mean())/data.std() #數據標準化,std()表示求總體樣本方差(除以n-1),numpy中std()是除以n print('data_zs') from sklearn.cluster import KMeans model = KMeans(n_clusters = k, max_iter = iteration) #分為k類 #model = KMeans(n_clusters = k, n_jobs = 4, max_iter = iteration) #分為k類,并發(fā)數4 print('data_zs') model.fit(data_zs) #開始聚類 #簡單打印結果 r1 = pd.Series(model.labels_).value_counts() #統(tǒng)計各個類別的數目 r2 = pd.DataFrame(model.cluster_centers_) #找出聚類中心 r = pd.concat([r2, r1], axis = 1) #橫向連接(0是縱向),得到聚類中心對應的類別下的數目 print('data_zs') print(r) r.columns = list(data.columns) + [u'類別數目'] #重命名表頭 print(r) #詳細輸出原始數據及其類別 r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1) #詳細輸出每個樣本對應的類別 r.columns = list(data.columns) + [u'聚類類別'] #重命名表頭 r.to_excel(outputfile) #保存結果
TSNE.py
# coding=utf-8 from sklearn.manifold import TSNE from pandas.core.frame import DataFrame import pandas as pd import numpy as np import km as k #用TSNE進行數據降維并展示聚類結果 tsne = TSNE() tsne.fit_transform(k.data_zs) #進行數據降維,并返回結果 tsne = pd.DataFrame(tsne.embedding_, index = k.data_zs.index) #轉換數據格式 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用來正常顯示中文標簽 plt.rcParams['axes.unicode_minus'] = False #用來正常顯示負號 #不同類別用不同顏色和樣式繪圖 d = tsne[k.r[u'聚類類別']== 0] #找出聚類類別為0的數據對應的降維結果 plt.plot(d[0], d[1], 'r.') d = tsne[k.r[u'聚類類別'] == 1] plt.plot(d[0], d[1], 'go') #d = tsne[k.r[u'聚類類別'] == 2] #plt.plot(d[0], d[1], 'b*') plt.savefig("data.png") plt.show()
數據格式
數據需要用xlsx文件存儲,表頭名為Id。
執(zhí)行 TSNE.py即可獲得可視化圖片。
以上這篇python代碼實現TSNE降維數據可視化教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python自動化辦公之Word文檔的創(chuàng)建與生成
這篇文章主要為大家詳細介紹了如何通過python腳本來自動生成一個?word文檔,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-05-05關于不懂Chromedriver如何配置環(huán)境變量問題解決方法
這篇文章主要介紹了關于不懂Chromedriver如何配置環(huán)境變量問題解決方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06關于yolov5的一些簡單說明(txt文件、訓練結果分析等)
使用YOLOV5訓練數據之后我們需要一些評判標準來告訴我們所訓練的效果究竟如何,下面這篇文章主要給大家介紹了關于yolov5的一些簡單說明,主要是txt文件、訓練結果分析等的相關資料,需要的朋友可以參考下2022-06-06