TSNE原理性简单解释
TSNE目的:将高维数据降维并进行可视化,输入的数据为N个样本,每个样本具有M个特征(N_sample,M_feature)。输入的标签(N_sample,)。
基本原理:通过映射变换将每个数据点映射到相应的概率分布上。具体的是,在高维空间中使用高斯分布将距离转换为概率分布,在低维空间中,使用长尾分布来将距离转换为概率分布,从而是的高维度空间中的中低等距离在映射后能够有个较大的距离,使得降维时能够避免过多关注局部特征,而忽视全局特征。
from sklearn.manifold import TSNE
from sklearn.datasets import load_iris,load_digits
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import numpy as np
%config InlineBackend.figure_format = "svg"digits = load_digits()
X_tsne = TSNE(n_components=2, random_state=33).fit_transform(digits.data)
X_pca = PCA(n_components=2).fit_transform(digits.data)font = {"color": "darkred","size": 13, "family" : "serif"}plt.style.use("dark_background")
plt.figure(figsize=(8.5, 4))
plt.subplot(1, 2, 1)
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=digits.target, alpha=0.6, cmap=plt.cm.get_cmap('rainbow', 10))
plt.title("t-SNE", fontdict=font)
cbar = plt.colorbar(ticks=range(10))
cbar.set_label(label='digit value', fontdict=font)
plt.clim(-0.5, 9.5)
plt.subplot(1, 2, 2)
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=digits.target, alpha=0.6, cmap=plt.cm.get_cmap('rainbow', 10))
plt.title("PCA", fontdict=font)
cbar = plt.colorbar(ticks=range(10))
cbar.set_label(label='digit value', fontdict=font)
plt.clim(-0.5, 9.5)
plt.tight_layout()
TSNE原理性简单解释相关推荐
- 驳斥《沙盒用于数据防泄密是重大技术原理性失误》
驳斥<沙盒用于数据防泄密是重大技术原理性失误> 最近网上出现了一篇名为<沙盒用于数据防泄密是重大技术原理性失误>的文章,经作者鉴定,是某不良公司***技术领先的竞争对手苏州深信 ...
- 广度优先遍历类似于二叉树的_二叉树的各种遍历方法的简单解释
二叉树顾名思义,最多两个孩子. 一般规定一个二叉树,因为节点间有相互连接的原因,所以只要给定根节点,那么顺着寻找左孩子和右孩子便可以遍历到所有的节点,这就是遍历的直观解释. 而遍历分为深度遍历和广度遍 ...
- resultset不支持循环遍历_二叉树的各种遍历方法的简单解释
二叉树顾名思义,最多两个孩子. 一般规定一个二叉树,因为节点间有相互连接的原因,所以只要给定根节点,那么顺着寻找左孩子和右孩子便可以遍历到所有的节点,这就是遍历的直观解释. 而遍历分为深度遍历和广度遍 ...
- javascript迭代器_JavaScript符号,迭代器,生成器,异步/等待和异步迭代器-全部简单解释...
javascript迭代器 by rajaraodv 通过rajaraodv JavaScript符号,迭代器,生成器,异步/等待和异步迭代器-全部简单解释 (JavaScript Symbols, ...
- RAC 的一些概念性和原理性的知识
RAC 的一些概念性和原理性的知识 一 集群环境下的一些特殊问题 1.1 并发控制 在集群环境中, 关键数据通常是共享存放的,比如放在共享磁盘上. 而各个节点的对数据有相同的访问权限, 这时就必须有某 ...
- Lucene的评分(score)机制的简单解释
Lucene的评分(score)机制的简单解释 博客分类: Lucene lucene编程Apachethread 通过Searcher.explain(Query query, int do ...
- 常用CSS元素div ul dl dt ol的简单解释
几个css元素的简单解释 div ul dl dt oldiv,这个很常见,块级元素,div尽量少用,和table一样,嵌套越少越好 ol 有序列表. <ol> <li>--& ...
- python的objectproperty,python中property(lambda self: object())简单解释,,最后4行lambda
python中property(lambda self: object())简单解释,,最后4行lambda 最后4行lambda.问题是:如何运作?它们的含义和结果是什么?您能否以简单的方式显示该声 ...
- 简单解释什么是 依赖注入 和 控制反转
简单解释什么是 依赖注入 和 控制反转 2017-07-09 关于 依赖注入 与 控制反转 的概念有些人觉得很难理解,最近在给别人讲这个概念的时候梳理了一个比较好理解的解释,而且我认为非技术人员也应该 ...
最新文章
- 杭州电子科技大学计算机组成原理期末试卷,杭州电子科技大学计算机组成原理期末样卷(A)...
- 浅谈 Python 程序和 C 程序的整合
- 用户线程和内核线程之间的区别
- oracle 删除用户 递归,ORACLE递归查询遍历详解
- c++判断ftp服务器文件存在性判断_BitTorrent协议与传统文件分发协议对比
- SpringBoot入门-基础入门
- Web 开发中很实用的10个效果
- eclipse下没有build project的解决方法
- 必须收藏!没有经验的程序员该怎么找工作?
- This generated password is for development use only. Your security configuration must be updated bef
- XML数据解析-SAX和DOM
- 什么是迭代和增量开发
- Latex 中如何使插图的位置不跑到开头而紧跟插入的文字后
- UltraEdit打开文件,中文显示为乱码的解决方法
- python儿童编程培训班-杭州比较好的儿童Python编程培训班推荐
- moloch流量回溯_用moloch和elastic索引网络流量
- 基于RNN的中文古诗词生成神经网络实现
- 惊呆了!被公司辞退拿了 22 万补偿金,原东家称每月涨薪 7000,只要退还 22 万...
- 瑞芯微RV1126/1109开发流程之驱动升级
- flask jsonify
热门文章
- 原生sql增加字段删除字段
- Alexnet在android手机中的tensorflow和arm compute libraray的性能对比
- MySQL之数据库三大范式
- cpu对推动计算机发展的作用,一篇能让你详细了解CPU的作用与发展的文章!
- 单片机自动调光C语言,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序
- 怀旧服10月3日服务器维护,魔兽怀旧服:即将开放怀旧服PTR服务器 3/10开放阿拉希...
- i5 10400核显什么水平
- 使用Memory-driven Transformer生成医疗影像报告
- Android推送平台试用总结报告
- L1范数和L2范数的区别