最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python代碼實現(xiàn)TSNE降維數(shù)據(jù)可視化教程

 更新時間:2020年02月28日 11:40:40   作者:WANG_DDD  
今天小編就為大家分享一篇python代碼實現(xiàn)TSNE降維數(shù)據(jù)可視化教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

TSNE降維

降維就是用2維或3維表示多維數(shù)據(jù)(彼此具有相關性的多個特征數(shù)據(jù))的技術,利用降維算法,可以顯式地表現(xiàn)數(shù)據(jù)。(t-SNE)t分布隨機鄰域嵌入 是一種用于探索高維數(shù)據(jù)的非線性降維算法。它將多維數(shù)據(jù)映射到適合于人類觀察的兩個或多個維度。

python代碼

km.py

#k_mean算法
import pandas as pd
import csv
import pandas as pd 
import numpy as np
 
 
#參數(shù)初始化
inputfile = 'x.xlsx' #銷量及其他屬性數(shù)據(jù)
outputfile = 'x_1.xlsx' #保存結果的文件名
k = 2 #聚類的類別
iteration = 3 #聚類最大循環(huán)次數(shù)
 
data = pd.read_excel(inputfile, index_col = 'Id') #讀取數(shù)據(jù)
 
data_zs = 1.0*(data - data.mean())/data.std() #數(shù)據(jù)標準化,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ā)數(shù)4
print('data_zs')
model.fit(data_zs) #開始聚類
 
#簡單打印結果
r1 = pd.Series(model.labels_).value_counts() #統(tǒng)計各個類別的數(shù)目
r2 = pd.DataFrame(model.cluster_centers_) #找出聚類中心
r = pd.concat([r2, r1], axis = 1) #橫向連接(0是縱向),得到聚類中心對應的類別下的數(shù)目
print('data_zs')
print(r)
r.columns = list(data.columns) + [u'類別數(shù)目'] #重命名表頭
print(r)
 
#詳細輸出原始數(shù)據(jù)及其類別
 
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進行數(shù)據(jù)降維并展示聚類結果
 
tsne = TSNE()
tsne.fit_transform(k.data_zs) #進行數(shù)據(jù)降維,并返回結果
tsne = pd.DataFrame(tsne.embedding_, index = k.data_zs.index) #轉換數(shù)據(jù)格式
 
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus'] = False #用來正常顯示負號
 
#不同類別用不同顏色和樣式繪圖
d = tsne[k.r[u'聚類類別']== 0]  #找出聚類類別為0的數(shù)據(jù)對應的降維結果
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()

數(shù)據(jù)格式

數(shù)據(jù)需要用xlsx文件存儲,表頭名為Id。

執(zhí)行 TSNE.py即可獲得可視化圖片。

以上這篇python代碼實現(xiàn)TSNE降維數(shù)據(jù)可視化教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

安仁县| 漳州市| 沂水县| 普定县| 乌海市| 多伦县| 门源| 乌兰浩特市| 乌拉特前旗| 盐亭县| 蒙山县| 寿宁县| 尚义县| 高邑县| 台北市| 若尔盖县| 浦县| 丹东市| 永仁县| 正阳县| 收藏| 两当县| 武宣县| 凤城市| 沙洋县| 庄浪县| 余干县| 鸡泽县| 安乡县| 沁源县| 建宁县| 邻水| 阿图什市| 金沙县| 新宾| 日照市| 永德县| 九台市| 台山市| 东兰县| 玉溪市|