sklearn 笔记 TSNE
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn 笔记 TSNE相关的知识,希望对你有一定的参考价值。
0 基本介绍
机器学习笔记:t-SNE_UQI-LIUWJ的博客-CSDN博客
将高维数据降维,使得高维数据各点的联合概率,和对应的低维数据各点的联合概率之间的 KL散度尽量小
对T-SNE使用不同的初始化,我们可以获得不同的结果
1 基本使用方法
class sklearn.manifold.TSNE(
n_components=2,
*,
perplexity=30.0,
early_exaggeration=12.0,
learning_rate='warn',
n_iter=1000,
n_iter_without_progress=300,
min_grad_norm=1e-07,
metric='euclidean',
metric_params=None,
init='warn',
verbose=0,
random_state=None,
method='barnes_hut',
angle=0.5,
n_jobs=None,
square_distances='deprecated')
2 参数介绍
n_components | 需要降至的维度 |
perplexity |
|
early_exaggeration |
|
learning_rate | t-SNE的学习率
除了浮点数之外,这里也可以设置learning_rate为'auto',可以被计算为max(N / early_exaggeration / 4, 50) 【N是sample size】 |
n_iter | 优化需要的最大迭代次数(至少需要250) |
n_iter_without_progress | 如果多少轮没有更好地优化进展,那么就可以终止优化。(在250轮之后开始check) 每50轮check一次优化进展,所以一般是50的倍数 |
min_grad_norm | 如果梯度的范数小于这个阈值,那么停止优化 |
metric | 如何计算两个元素i和j之间的距离
|
metric_params | 如果metric是一个可调用的函数,那么这里是额外的参数 |
init |
|
3 使用举例
import numpy as np
from sklearn.manifold import TSNE
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
tsne=TSNE(n_components=2).fit(X)
################################# 两种方式找低维嵌入 ###################################
X_embed=tsne.fit_transform(X)
X_embed
'''
array([[-141.00409 , 379.51575 ],
[ 32.38434 , 121.13147 ],
[-225.9871 , -52.276257],
[-399.37567 , 206.10808 ]], dtype=float32)
'''
tsne.embedding_
'''
array([[-141.00409 , 379.51575 ],
[ 32.38434 , 121.13147 ],
[-225.9871 , -52.276257],
[-399.37567 , 206.10808 ]], dtype=float32)
'''
#########################################################################################
tsne.kl_divergence_
#0.048726845532655716
#T-SNE的KL散度
tsne.n_features_in_
#3
#输入的特征个数
tsne.n_iter_
#499 迭代次数
以上是关于sklearn 笔记 TSNE的主要内容,如果未能解决你的问题,请参考以下文章