python绘制3维图-t-SNE的原理及Python实现

t-SNE是一种降维技术,用于将高维数据转换为低维表示,同时保持数据点之间的相似性。算法通过计算高维和低维空间中点的概率分布并最小化Kullback-Leibler散度来工作。本文介绍了t-SNE的基本原理,并展示了使用Python实现t-SNE的步骤,包括计算概率分布、使用梯度下降最小化KL散度等。
摘要由CSDN通过智能技术生成

t-SNE构造高维样本的概率分布,使得相似样本的被拣选可能性很高,而相异点的被拣选可能性极小。然后,t-SNE为低维度嵌入中的点定义相似的分布。最后,t-SNE将Kullback–Leibler Divergence(KL散度)高维空间和低维空间两个分布之间的距离,并最小化这个距离。

算法

如前所述,t-SNE采用高维数据集,并将其简化为保留了许多原始信息的低维图。

假设我们有一个由3个不同的类组成的数据集。

086567de903bfbd87550de14008f9323.jpg

我们希望将2D图简化为1D图,同时保持群集之间的清晰边界。

451e10d4daf35ac8e0f251dd2c6ab5d7.jpg

回想一下,仅将数据投影到轴上是降低维数的一种较差的方法,因为我们会丢失大量信息。

f8050031c2367d29123b7a999645877a.jpg

相反,我们可以使用降维技术(提示:t-SNE)来实现所需的功能。 t-SNE算法的第一步涉及测量从一个点到另一个点的距离。而不是直接处理距离,我们将它们映射到概率分布。

beff9e18abf8a10325baeaba3d8e8321.jpg

在分布中,相对于当前点距离最小的点的可能性很高,而远离当前点的点的可能性很低。

879d78129e58d79382bf8e006be32e3c.jpg

再看一下2D图,请注意蓝色簇比绿色簇更分散。如果我们不解决这种尺度差异,则绿点的可能性将大于蓝点的可能性。为了说明这个事实,我们用可能性之和做归一化。

42ffa15659fd914eb5e447faa3df3b46.jpg

因此,尽管两点之间的绝对距离不同,但它们被认为是相似的。

让我们尝试将这些概念与基础理论联系起来。在数学上,我们将正态分布的方程写为如下形式:

4f37dd6c2149c56904520240c26f1f9d.jpg

如果我们将所有项都做指数计算,并使用另一个点代替均值,同时用求和规归一化解决前面讨论的尺度问题,得到如下公式(参考论文)。

7960a412b48c6f8f5d8f0841392416bd.jpg

接下来,我们考虑降维到低维空间的情形。首先,我们创建一个n_samples x n_components的矩阵(在这种情况下为9x1)并用随机值(即位置)填充。

a7dfbae30510fa1823b14b0d9595f7ee.jpg

如果我们对上述情况采取类似的方法(测量点之间的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值