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中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
Mar 13 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Random 在 Python 中的使用方法
Aug 09 Python
Python实现程序判断季节的代码示例
Jan 28 Python
python 调用钉钉机器人的方法
Feb 20 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
python django中8000端口被占用的解决
Dec 17 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 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+xml编程之xpath的应用实例
2015/01/24 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python和Go语言的区别总结
2019/02/20 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
python 弧度与角度互转实例
2020/04/15 Python
Python实现粒子群算法的示例
2021/02/14 Python
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
茶叶店创业计划书范文
2014/01/19 职场文书
销售顾问岗位职责
2014/02/25 职场文书
开学寄语大全
2014/04/08 职场文书
员工安全承诺书
2014/05/22 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
2015年招生工作总结
2015/05/04 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
新闻稿件写作范文
2015/07/18 职场文书
python OpenCV学习笔记
2021/03/31 Python
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android