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开发之基于thread线程搜索本地文件的方法
Nov 11 Python
django定期执行任务(实例讲解)
Nov 03 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
Python requests获取网页常用方法解析
Feb 20 Python
Python代码风格与编程习惯重要吗?
Jun 03 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
VFP与其他应用程序的集成
2006/10/09 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
表单提交验证类
2006/07/14 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
jquery处理json对象
2014/11/03 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
python检测服务器是否正常
2014/02/16 Python
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
Python super()函数使用及多重继承
2020/05/06 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
animation和transition的区别
2020/10/12 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
酒店总经理岗位职责
2014/03/17 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
创业计划书之个人工作室
2019/08/22 职场文书