t-SNE可视化

t-SNE的全称是t-Distributed Stochastic Neighbor Embedding,是一种降低维度的技术,适用于将高维度数据可视化。

它将数据点之间的相似性转换为联合概率,并试图最小化低维嵌入数据和高维数据联合概率之间的KL散度。与PCA不同,t-SNE具有非凸的代价函数,即不同的初始化可以得到不同的结果,可以跑t-SNE多次去得到最终可视化结果。
sklearn.manifold.TSNE
tsne提出者介绍
t-SNE实现原理
t-SNE原理与推导

python实现

class sklearn.manifold.TSNE(n_components=2, *, perplexity=30.0, early_exaggeration=12.0, 
learning_rate=200.0, n_iter=1000, n_iter_without_progress=300, min_grad_norm=1e-07, metric='euclidean', 
init='random', verbose=0, random_state=None, method='barnes_hut', angle=0.5, n_jobs=None, 
square_distances='legacy')

parameters:描述

n_components :嵌入空间的维度
perpexity 混乱度,表示t-SNE优化过程中考虑邻近点的多少,默认为30,建议取值在5到50之间
early_exaggeration 表示嵌入空间簇间距的大小,默认为12,该值越大,可视化后的簇间距越大
learning_rate 学习率,表示梯度下降的快慢,默认为200,建议取值在10到1000之间
n_iter 迭代次数,默认为1000,自定义设置时应保证大于250
min_grad_norm 如果梯度小于该值,则停止优化。默认为1e-7
metric 表示向量间距离度量的方式,默认是欧氏距离。如果是precomputed,则输入X是计算好的距离矩阵。也可以是自定义的距离度量函数。
init 初始化,默认为random。取值为random为随机初始化,取值为pca为利用PCA进行初始化(常用),取值为numpy数组时必须shape=(n_samples, n_components)
verbose 是否打印优化信息,取值0或1,默认为0=>不打印信息。打印的信息为:近邻点数量、耗时、σ、KL散度、误差等
random_state 随机数种子,整数或RandomState对象
method 两种优化方法:barnets_hut和exact。第一种耗时O(NlogN),第二种耗时O(N^2)但是误差小,同时第二种方法不能用于百万级样本
angle 当method=barnets_hut时,该参数有用,用于均衡效率与误差,默认值为0.5,该值越大,效率越高&误差越大,否则反之。当该值在0.2-0.8之间时,无变化。

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值