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中pass语句用法实例分析
Apr 30 Python
Python正则替换字符串函数re.sub用法示例
Jan 19 Python
python爬虫之百度API调用方法
Jun 11 Python
简单谈谈python基本数据类型
Sep 26 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
手动安装python3.6的操作过程详解
Jan 13 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Python 将 QQ 好友头像生成祝福语的实现代码
May 03 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
Python包argparse模块常用方法
Jun 04 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
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
Bootstrap下拉菜单效果实例代码分享
2016/06/30 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
Python单链表的简单实现方法
2014/09/23 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
自考自我鉴定范文
2013/10/30 职场文书
公司员工的自我评价范例
2013/11/01 职场文书
新学期教师寄语
2014/04/02 职场文书
个人课题方案
2014/05/08 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
119消防日活动总结
2014/08/29 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书