| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> t-SNE:可视化效果最好的降维算法 -> 正文阅读 |
|
[人工智能]t-SNE:可视化效果最好的降维算法 |
PCA-主成分分析是降维领域最主要的算法。它最初是由皮尔逊(Pearson)在1901年开发的,许多人对此做了即兴创作。即使PCA是一种广泛使用的技术,但它的主要缺点是无法维护数据集的局部结构。为了解决这个问题,t-SNE出现了。 1、什么是t-SNE??t-SNE的主要用途是可视化和探索高维数据。 它由Laurens van der Maatens和Geoffrey Hinton在JMLR第九卷(2008年)中开发并出版。 t-SNE的主要目标是将多维数据集转换为低维数据集。 相对于其他的降维算法,对于数据可视化而言t-SNE的效果最好。 如果我们将t-SNE应用于n维数据,它将智能地将n维数据映射到3d甚至2d数据,并且原始数据的相对相似性非常好。与PCA一样,t-SNE不是线性降维技术,它遵循非线性,这是它可以捕获高维数据的复杂流形结构的主要原因。 2、t-SNE工作原理首先,它将通过选择一个随机数据点并计算与其他数据点(|x—x|)的欧几里得距离来创建概率分布。 从所选数据点附近的数据点将获得更多的相似度值,而距离与所选数据点较远的数据点将获得较少的相似度值。 使用相似度值,它将为每个数据点创建相似度矩阵(S1)。 ?通过以上的计算,t-SNE将所有数据点随机排列在所需的较低维度上。 t-SNE将再次对高维数据点和随机排列的低维数据点进行所有相同的计算。 但是在这一步中,它根据t分布分配概率。 这就是名称t-SNE的原因。t-SNE中使用t分布的目的是减少拥挤问题(后面与PCA对比可见)。? 但是请记住,对于高维数据,该算法根据正态分布分配概率。 对于较低维的数据点,还将创建一个相似度矩阵(S2)。然后该算法将S1与S2进行比较,并通过处理一些复杂的数学运算来使S1与S2之间有所不同。包括使用两个分布之间的Kullback Leibler散度(KL散度)作为损失函数运行梯度下降算法。使用KL散度通过将两个分布之间相对于数据点位置的值最小化,帮助t-SNE保留数据的局部结构。? 在统计学中,Kullback-Leibler散度是对一个概率分布与另一个概率分布如何不同的度量。梯度下降算法是各种机器学习算法中用于最小化损失函数的一种优化算法。 最后,该算法能够得到与原始高维数据相对相似度较好的低维数据点。 我们可以使用sklearn.manifold.TSNE()实现t-SNE算法 PS:一个形象展示t-SNE优化技巧的网站How to Use t-SNE Effectively.? 3、t-SNE优缺点t-SNE可降样本点间的相似度关系转化为概率:在原空间(高维空间)中转化为基于高斯分布的概率;在嵌入空间(二维空间)中转化为基于t分布的概率。这使得t-SNE不仅可以关注局部(SNE只关注相邻点之间的相似度映射而忽略了全局之间的相似度映射,使得可视化后的边界不明显),还关注全局,使可视化效果更好(簇内不会过于集中,簇间边界明显)。 目标函数:原空间与嵌入空间样本分布之间的KL散度。? t-SNE的缺点:
4、简单的实现t-SNE算法可视化sklearn库中的手写字体数据集
可视化结果如下图所示。? 更多数据集可以参考网站:http://www.face-rec.org/databases TSNE的学习网址: https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html 参考资料: https://baijiahao.baidu.com/s?id=1685017041330123531&wfr=spider&for=pc https://blog.csdn.net/li506880296/article/details/113374093? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 10:11:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |