sklearn 笔记 TSNE

0 基本介绍

机器学习笔记:t-SNE_UQI-LIUWJ的博客-CSDN博客

        将高维数据降维,使得高维数据各点的联合概率,和对应的低维数据各点的联合概率之间的 KL散度尽量小

        对T-SNE使用不同的初始化,我们可以获得不同的结果

        t-sne的运行速度很慢,所以通常先用PCA进行降维,然后使用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
  • 用来约束高维分布中的σi
  • 更大的数据集需要更大的perplexity
  • 一般数值在5~50之间
early_exaggeration
  • 控制原始空间中的自然簇在嵌入空间中的紧密程度以及它们之间的空间大小。
  • 对于在原始空间中较大的自然簇,他们在嵌入空间的距离中会更大。(t-SNE性质)
  • 【这个参数的选择不是很关键】
learning_rate

t-SNE的学习率

  • 如果学习率过大,那么最后学到的低维空间中的点会像一个“球”,即各个点和他们最近的邻居之间是等距离的
  • 如果学习率国小,那么最后大多数点都会被压缩到一个很密集的“云”中,只有很少的outlier

除了浮点数之外,这里也可以设置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是“precomputed”,那么X是一个距离矩阵
  • 如果metric是一个可调用的函数,那么这个函数会输入X矩阵的两行(i和j元素),然后返回一个value,表示i和j元素的距离
  • 默认情况下,metric是“euclidean”,表示平方欧几里得距离
metric_params如果metric是一个可调用的函数,那么这里是额外的参数
init
  • ‘random’——随机初始一个低维embedding
  • 'pca'——使用pca初始化低维embedding
  • 一个ndarray——(n_samples,n_components)维度

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 迭代次数

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
sklearn中的GRNN(Generalized Regression Neural Network)是一种神经网络模型,用于进行回归分析。GRNN是一种基于径向基函数(RBF)的神经网络模型,具有强大的非线性拟合能力。它可以根据给定的输入特征,预测对应的输出值。 GRNN的特点是通过计算输入值与训练数据集中每个样本的距离,使用径向基函数来进行非线性映射。在训练阶段,GRNN将训练数据集中的每个样本作为模型中心点,并根据输入值与中心点之间的距离,计算出相应的权重。在预测阶段,GRNN使用这些权重来计算输出值。 GRNN的优点是在训练阶段没有参数需要调整,而且对噪声具有较强的鲁棒性。它适用于处理非线性问题,并且在拟合非线性函数时表现出色。 因此,如果你的问题是非线性的,并且有足够的训练数据,你可以考虑使用sklearn中的GRNN模型进行预测分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MATLAB学习笔记_Day07神经网络、决策树和随机森林](https://blog.csdn.net/weixin_45751396/article/details/119974532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值