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 相关文章推荐
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
Python复数属性和方法运算操作示例
Jul 21 Python
Django与JS交互的示例代码
Aug 23 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
对django中foreignkey的简单使用详解
Jul 28 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
python判断变量是否为列表的方法
Sep 17 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 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
Yii操作数据库的3种方法
2014/03/11 PHP
使用PHP如何实现高效安全的ftp服务器(二)
2015/12/30 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
javascript window对象属性整理
2009/10/24 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
python 修改本地网络配置的方法
2019/08/14 Python
解决Python对齐文本字符串问题
2019/08/28 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
大学生写自荐信的技巧
2014/01/08 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
领导班子整改方案
2014/10/25 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang