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 抓取动态网页内容方案详解
Dec 25 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
对Python 2.7 pandas 中的read_excel详解
May 04 Python
浅谈Python中(&,|)和(and,or)之间的区别
Aug 07 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
python类中super() 的使用解析
Dec 19 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
Django如何继承AbstractUser扩展字段
Nov 27 Python
python自动化之如何利用allure生成测试报告
May 02 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
PHP新手上路(十二)
2006/10/09 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
Python字符串中查找子串小技巧
2015/04/10 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
python3爬取各类天气信息
2018/02/24 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python多进程实现文件下载传输功能
2018/07/28 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
python绘制分布折线图的示例
2020/09/24 Python
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
劳动竞赛口号
2014/06/16 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
听证通知书
2015/04/24 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技