国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:4日期:2022-08-05 13:24:28

TSNE降維

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

python代碼

km.py

#k_mean算法import pandas as pdimport csvimport pandas as pd import numpy as np #參數(shù)初始化inputfile = ’x.xlsx’ #銷量及其他屬性數(shù)據(jù)outputfile = ’x_1.xlsx’ #保存結(jié)果的文件名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ù)標(biāo)準(zhǔn)化,std()表示求總體樣本方差(除以n-1),numpy中std()是除以n print(’data_zs’) from sklearn.cluster import KMeansmodel = KMeans(n_clusters = k, max_iter = iteration) #分為k類#model = KMeans(n_clusters = k, n_jobs = 4, max_iter = iteration) #分為k類,并發(fā)數(shù)4print(’data_zs’)model.fit(data_zs) #開始聚類 #簡單打印結(jié)果r1 = pd.Series(model.labels_).value_counts() #統(tǒng)計(jì)各個(gè)類別的數(shù)目r2 = pd.DataFrame(model.cluster_centers_) #找出聚類中心r = pd.concat([r2, r1], axis = 1) #橫向連接(0是縱向),得到聚類中心對(duì)應(yīng)的類別下的數(shù)目print(’data_zs’)print(r)r.columns = list(data.columns) + [u’類別數(shù)目’] #重命名表頭print(r) #詳細(xì)輸出原始數(shù)據(jù)及其類別 r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1) #詳細(xì)輸出每個(gè)樣本對(duì)應(yīng)的類別r.columns = list(data.columns) + [u’聚類類別’] #重命名表頭r.to_excel(outputfile) #保存結(jié)果

TSNE.py

# coding=utf-8 from sklearn.manifold import TSNE from pandas.core.frame import DataFrameimport pandas as pd import numpy as np import km as k #用TSNE進(jìn)行數(shù)據(jù)降維并展示聚類結(jié)果 tsne = TSNE()tsne.fit_transform(k.data_zs) #進(jìn)行數(shù)據(jù)降維,并返回結(jié)果tsne = pd.DataFrame(tsne.embedding_, index = k.data_zs.index) #轉(zhuǎn)換數(shù)據(jù)格式 import matplotlib.pyplot as pltplt.rcParams[’font.sans-serif’] = [’SimHei’] #用來正常顯示中文標(biāo)簽plt.rcParams[’axes.unicode_minus’] = False #用來正常顯示負(fù)號(hào) #不同類別用不同顏色和樣式繪圖d = tsne[k.r[u’聚類類別’]== 0] #找出聚類類別為0的數(shù)據(jù)對(duì)應(yīng)的降維結(jié)果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文件存儲(chǔ),表頭名為Id。

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

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

以上這篇python代碼實(shí)現(xiàn)TSNE降維數(shù)據(jù)可視化教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 京山县| 平南县| 黑山县| 威海市| 昭平县| 祁阳县| 南江县| 博白县| 山西省| 苍南县| 长葛市| 博客| 获嘉县| 宁化县| 盱眙县| 池州市| 西青区| 大邑县| 五华县| 黔南| 清河县| 阿克| 新兴县| 广饶县| 巧家县| 汶川县| 庆阳市| 甘洛县| 武穴市| 乐业县| 荔浦县| 连云港市| 平远县| 襄汾县| 邢台市| 通榆县| 永宁县| 吉木乃县| 北碚区| 丰台区| 威信县|