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使用PyFetion来发送短信的例子
Apr 22 Python
python有证书的加密解密实现方法
Nov 19 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
Python操作Excel插入删除行的方法
Dec 10 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
python读取mysql数据绘制条形图
Mar 25 Python
Django开发RESTful API实现增删改查(入门级)
May 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程序占用多少内存(memory_get_usage)
2012/09/23 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python中的代码编码格式转换问题
2015/06/10 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
班级安全教育实施方案
2014/02/23 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
洗发水广告词
2014/03/13 职场文书
环卫工人慰问信
2015/02/15 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers