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 相关文章推荐
Python中几种操作字符串的方法的介绍
Apr 09 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
实例详解Matlab 与 Python 的区别
Apr 26 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
Python SSL证书验证问题解决方案
Jan 13 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
Django中的AutoField字段使用
May 18 Python
python运行脚本文件的三种方法实例
Jun 25 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
input框中的name和id的区别
2016/11/16 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
python的类方法和静态方法
2014/12/13 Python
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
python3.5的包存放的具体路径
2020/08/16 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
财务会计人员岗位职责
2013/11/30 职场文书
英语自荐信常用语句
2013/12/13 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
大学生励志演讲稿
2014/04/25 职场文书
体育教师求职信
2014/06/30 职场文书
初中班干部工作总结
2015/08/10 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书