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 相关文章推荐
vc6编写python扩展的方法分享
Jan 17 Python
收集的几个Python小技巧分享
Nov 22 Python
九步学会Python装饰器
May 09 Python
python学习之第三方包安装方法(两种方法)
Jul 30 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
Jun 07 Python
Python基础之getpass模块详细介绍
Aug 10 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
基于python绘制科赫雪花
Jun 22 Python
Python魔法方法详解
Feb 13 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
Python进行区间取值案例讲解
Aug 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
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP session会话的安全性分析
2011/09/08 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python创建进程fork用法
2015/06/04 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
金融专业个人求职信
2013/09/22 职场文书
廉洁教育学习材料
2014/05/19 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
项目建议书
2015/02/04 职场文书
实习证明格式范文
2015/06/16 职场文书
消夏晚会主持词
2015/06/30 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js