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 #聚类最⼤循环次数
data = pd.read_excel(inputfile, index_col = 'Id') #读取数据
data_zs = 1.0*(data - an())/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类,并发数4
print('data_zs')
model.fit(data_zs) #开始聚类
numpy官方教程#简单打印结果
r1 = pd.Series(model.labels_).value_counts() #统计各个类别的数⽬
r2 = pd.DataFrame(model.cluster_centers_) #出聚类中⼼
r = pd.concat([r2, r1], axis = 1) #横向连接(0是纵向),得到聚类中⼼对应的类别下的数⽬
print('data_zs')
print(r)
print(r)
#详细输出原始数据及其类别
r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1) #详细输出每个样本对应的类别
<_excel(outputfile) #保存结果
TSNE.py
# coding=utf-8
from sklearn.manifold import TSNE
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.bedding_, index = k.data_zs.index) #转换数据格式
import matplotlib.pyplot as plt
#不同类别⽤不同颜⾊和样式绘图
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。
执⾏ TSNE.py即可获得可视化图⽚。
以上这篇python代码实现TSNE降维数据可视化教程就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论