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 xlrd读取excel日期类型的2种方法
Apr 28 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
python实现图片批量压缩程序
Jul 23 Python
Python实现Event回调机制的方法
Feb 13 Python
更新修改后的Python模块方法
Mar 03 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
为什么相对PHP黑python的更少
Jun 21 Python
Python基于unittest实现测试用例执行
Nov 25 Python
用python对oracle进行简单性能测试
Dec 05 Python
Python如何识别银行卡卡号?
Jun 10 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一些公用函数的集合
2008/03/27 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
python读写csv文件方法详细总结
2019/07/05 Python
在pycharm中显示python画的图方法
2019/08/31 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
python实现高斯投影正反算方式
2020/01/17 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
中学生运动会入场词
2014/02/12 职场文书
班主任寄语大全
2014/04/04 职场文书
十佳党员事迹材料
2014/08/28 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
迟到检讨书
2015/01/26 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis