python代码实现TSNE降维数据可视化教程


Posted in Python onFebruary 28, 2020

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 - 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类,并发数4
print('data_zs')
model.fit(data_zs) #开始聚类
 
#简单打印结果
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)
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。

执行 TSNE.py即可获得可视化图片。

python代码实现TSNE降维数据可视化教程

以上这篇python代码实现TSNE降维数据可视化教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3.x版本中新的字符串格式化方法
Apr 24 Python
Python中格式化format()方法详解
Apr 01 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
pip指定python位置安装软件包的方法
Jul 12 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
如何用python 操作zookeeper
Dec 28 Python
python实现自动化群控的步骤
Apr 11 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
python高温预警数据获取实例
Jul 23 Python
Python range与enumerate函数区别解析
Feb 28 #Python
使用python的turtle函数绘制一个滑稽表情
Feb 28 #Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 #Python
如何使用repr调试python程序
Feb 28 #Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 #Python
python对文件的操作方法汇总
Feb 28 #Python
最新2019Pycharm安装教程 亲测
Feb 28 #Python
You might like
mysql建立外键
2006/11/25 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
使用PHP开发留言板功能
2019/11/19 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python 查看list中是否含有某元素的方法
2018/06/27 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
python实现智能语音天气预报
2019/12/02 Python
python中wx模块的具体使用方法
2020/05/15 Python
简单说说tomcat的配置
2013/05/28 面试题
自荐信的基本格式
2014/02/22 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
2014年财务部工作总结
2014/11/11 职场文书
皇城相府导游词
2015/02/06 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android