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创建XML文档
Mar 01 Python
Python实现基本线性数据结构
Aug 22 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
python去除拼音声调字母,替换为字母的方法
Nov 28 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
对Python协程之异步同步的区别详解
Feb 19 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Pyecharts地图显示不完成问题解决方案
May 11 Python
Python3接口性能测试实例代码
Jun 20 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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获取用户客户端真实IP的解决方案
2016/10/10 PHP
php微信开发之关注事件
2018/06/14 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Python lambda和Python def区别分析
2014/11/30 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
python多线程与多进程及其区别详解
2019/08/08 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
前处理组长岗位职责
2014/03/01 职场文书
四群教育工作实施方案
2014/03/26 职场文书
留学推荐信范文
2014/05/10 职场文书
电工技术比武方案
2014/05/11 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
讲文明倡议书
2015/04/29 职场文书
安全教育的主题班会
2015/08/13 职场文书
2016年班主任新年寄语
2015/08/18 职场文书