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字符串关键点
Dec 13 Python
Python标准库sched模块使用指南
Jul 06 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
聊聊Python中的pypy
Jan 12 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
python如何爬取网站数据并进行数据可视化
Jul 08 Python
python 求定积分和不定积分示例
Nov 20 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
Python递归函数特点及原理解析
Mar 04 Python
学python最电脑配置有要求么
Jul 05 Python
用 Python 元类的特性实现 ORM 框架
May 19 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全排列递归算法代码
2012/10/09 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
详解python中的hashlib模块的使用
2019/04/22 Python
Python语言进阶知识点总结
2019/05/28 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
python 实现按对象传值
2019/12/26 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
个人简历自我鉴定
2013/10/11 职场文书
交通安全演讲稿
2014/01/07 职场文书
医院领导班子整改方案
2014/10/01 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书