还在用PCA降维?快学学大牛最爱的t-SNE算法吧(附PythonR代码)

时间:2019-10-04 05:53来源:未知 作者:admin 点击:
假设你有一个包含数百个特征(变量)的数据集,却对数据所属的领域几乎没有什么了解。 你需要去识别数据中的隐藏模式,探索和分析数据集。不仅如此,你还必须找出数据中是否存在模式--用以判定数据是有用信号还是噪音? 这是否让你感到不知所措?当我第一

  假设你有一个包含数百个特征(变量)的数据集,却对数据所属的领域几乎没有什么了解。 你需要去识别数据中的隐藏模式,探索和分析数据集。不仅如此,你还必须找出数据中是否存在模式--用以判定数据是有用信号还是噪音?

  这是否让你感到不知所措?当我第一次遇到这种情况,我简直全身发麻。想知道如何挖掘一个多维数据集? 这是许多数据科学家经常问的问题之一。 该篇文章中,我将带你通过一个强有力的方式来实现这一点。用PCA怎么样?

  现在,一定会有很多人心里想着“我会使用PCA来降维和可视化”。 好吧,你是对的!PCA绝对是具有大量特征的数据集的降维和可视化的不错选择。 但是,假如你能使用比PCA更先进的东西将会怎样呢?

  如果你可以很容易地找出非线性的模式呢? 在本文中,我将告诉你一个比PCA(1933)更有效、被称为t-SNE(2008)的新算法。 首先我会介绍t-SNE算法的基础知识,然后说明为什么t-SNE是非常适合的降维算法。

  (t-SNE)t-分布式随机邻域嵌入是一种用于挖掘高维数据的非线性降维算法。 它将多维数据映射到适合于人类观察的两个或多个维度。 在t-SNE算法的帮助下,你下一次使用高维数据时,可能就不需要绘制很多探索性数据分析图了。

  简而言之,降维是在2维或3维中展现多维数据(具有多个特征的数据,且彼此具有相关性)的技术。

  有些人可能会问,当我们可以使用散点图、直方图和盒图绘制数据,并用描述性统计搞清数据模式的时候为什么还需要降低维度。

  好吧,即使你可以理解数据中的模式并将其呈现在简单的图表上,但是对于没有统计背景的人来说,仍然很难理解它。 此外,如果你有数百个特征值,你必须研究数千张图表,然后才能搞懂这些数据。

  1.主成分分析(线.t-SNE(非参数/非线.萨蒙映射(非线.等距映射(非线.局部线性嵌入(非线.规范相关分析(非线.SNE(非线.最小方差无偏估计(非线.拉普拉斯特征图(非线性)

  好消息是,你只需要学习上述算法中的其中两种,就可以有效地在较低维度上使数据可视化 - PCA和t-SNE。

  PCA是一种线性算法。 它不能解释特征之间的复杂多项式关系。 另一方面,t-SNE是基于在邻域图上随机游走的概率分布,可以在数据中找到其结构关系。

  线性降维算法的一个主要问题是它们集中将不相似的数据点放置在较低维度区域时,数据点相距甚远。 但是为了在低维、非线性流型上表示高维数据,我们也需要把相似的数据点靠近在一起展示,这并不是线性降维算法所能做的。

  局部方法寻求将流型上的附近点映射到低维表示中的附近点。 另一方面,全局方法试图保留所有尺度的几何形状,即将附近的点映射到附近的点,将远处的点映射到远处的点

  该部分是为有兴趣深入理解算法的人准备的。 如果您不想了解数学上面的细节,可以放心地跳过本节。

  随机邻近嵌入(SNE)首先通过将数据点之间的高维欧几里得距离转换为表示相似性的条件概率。数据点

  简单来说,步骤1和步骤2计算一对点之间的相似性的条件概率。挂牌网站,这对点存在于:

  因此,t-SNE也尝试最小化条件概率之差的总和值。 但它通过使用对称版本的SNE代价函数,使用简单的梯度。此外,t-SNE在低维空间中采用长尾分布,以减轻拥挤问题(参考下面译者解释)和SNE的优化问题。

  如果我们看到计算条件概率的方程,我们忽略了现在的讨论的方差。要选择的剩余参数是学生的t-分布的方差

  ,其中心在每个高维数据点的中心。不可能存在对于数据集中的所有数据点最优的单个值

  ,因为数据的密度可能变化。在密集区域中,较小的值通常与较稀疏的区域相比更合适。任何特定值

  之间施加的力与其长度成比例,并且还与其刚度成比例,刚度是数据的成对相似性之间的失配(pj i-qj i + pi j-qi j) 点和地图点 。

  区别二:在低维空间中使用学生t-分布而不是高斯分布来计算点与点之间的相似度。t-SNE在低维空间中采用长尾的学生t-分布,

  现在我们已经了解了算法,是分析其性能的时候了。 正如你可能已经观察到的,

  t-SNE在数据点的数量上具有二次时间和空间复杂性。 这使得它应用于超过10,000个观察对象组成的数据集的时候特别慢和特别消耗资源。

  非线性降维算法t-SNE通过基于具有多个特征的数据点的相似性识别观察到的模式来找到数据中的规律。它不是一个聚类算法,而是一个降维算法。这是因为当它把高维数据映射到低维空间时,原数据中的特征值不复存在。所以不能仅基于t-SNE的输出进行任何推断。因此,本质上它主要是一种数据探索和可视化技术。

  但是t-SNE可以用于分类器和聚类中,用它来生成其他分类算法的输入特征值。

  你可能会问, t-SNE有哪些应用场景呢?它几乎可以用于任何高维数据。不过大部分应用集中在图像处理,自然语言处理,基因数据以及语音处理。它还被用于提高心脑扫描图像的分析。以下维几个实例:

  一个人脸识别的研究采用了日本女性脸部表情数据库和t-SNE结合AdaBoostM2的方法。其实验结果表明这种新方法效果优于诸如PCA, LDA, LLE及SNE的传统算法。

  质谱成像(MSI)是一种同时提供组织中数百个生物分子的空间分布的技术。 t-SNE,通过数据的非线性可视化,能够更好地解析生物分子肿瘤内异质性。

  以无偏见的方式,t-SNE可以揭示肿瘤亚群,它们与胃癌患者的存活和乳腺癌患者原发性肿瘤的转移状态具有统计相关性。 对每个t-SNE簇进行的存活分析将提供非常有用的结果。[3]

  词向量表示法捕获许多语言属性,如性别,时态,复数甚至语义概念,如“首都城市”。 使用降维,可以计算出使语义相似的词彼此临近的2D地图。 这种技术组合可以用于提供不同文本资料的鸟瞰图,包括文本摘要及其资料源。 这使用户能够像使用地图一样探索文本资料。[4]

  下边我们将要比较t-SNE和其它算法的性能。这里的性能是基于算法所达到的准确度,而不是时间及运算资源的消耗与准确度之间的关系。

  t-SNE在高维空间中采用的高斯核心函数定义了数据的局部和全局结构之间的软边界。对于高斯的标准偏差而言彼此临近的数据点对,对它们的间隔建模的重要性几乎与那些间隔的大小无关。此外,t-SNE基于数据的局部密度(通过强制每个条件概率分布具有相同的困惑度)分别确定每个数据点的局部邻域大小[1]。 这是因为算法定义了数据的局部和全局结构之间的软边界。 与其他非线性降维算法不同,它的性能优于其它任何一个算法。559955静心阁跑狗图

  让我们用MNIST手写数字数据库来实现t-SNE算法。 这是最被广泛探索的图像处理的数据集之一。

  “Rtsne”包具有t-SNE在R语言中的实现。“Rtsne”包可以通过在R控制台中键入以下命令安装:

  • 解读结果这些图可用于探索性分析。 输出的x和y坐标以及成本代价值可以用作分类算法中的特征值

  对于数据科学家来说,使用t-SNE的主要问题是算法的黑盒类型性质。这阻碍了基于结果提供推论和洞察的过程。此外,该算法的另一个问题是它不一定在连续运行时永远产生类似的输出。

  将数据集减少到2或3个维度,并使用非线性堆栈器将其堆栈。 使用保留集进行堆叠/混合。 然后你可以使用XGboost提高t-SNE向量以得到更好的结果。

  对于才开始接触数据科学的数据科学爱好者来说,这种算法在研究和性能增强方面提供了最好的机会。已经有一些研究论文尝试通过利用线性函数来提高算法的时间复杂度。但是尚未得到理想的解决方案。针对各种实施t-SNE算法解决自然语言处理问题和图像处理应用程序的研究论文是一个尚未开发的领域,并且有足够的空间范围。

  3.任何t-SNE图中的簇大小不得用于标准偏差,色散或任何其他诸如此类的度量。这是因为t-SNE扩展更密集的集群,并且使分散的集群收缩到均匀的集群大小。 这是它产生清晰的地块的原因之一。

  4.簇之间的距离可以改变,因为全局几何与最佳困惑度密切相关。 在具有许多元素数量不等的簇的数据集中,同一个困惑度不能优化所有簇的距离。5.模式也可以在随机噪声中找到,因此在决定数据中是否存在模式之前,必须检查具有不同的超参数组的多次运算结果。

  7.拓扑不能基于单个t-SNE图来分析,在进行任何评估之前必须观察多个图。

  看完这篇文章,相信你一定很想去进一步探索t-SNE算法并使用它。如果你有使用t-SNE算法的经验,欢迎给我们留言分享~

  amp;amp;emsp;amp;amp;emsp;t-SNE是目前来说效果最好的数据降维与可视化方法,但是它的缺点也很明显,比如:占内存大,运行时间长。但是,当我们想要对高维数据...

  阅读数 75更多深度文章,请关注:作者介绍:Saurabh.jaju2Saurabh是一名数据科学家和软件工程师,熟练分析各种数据集和开发智能应用程序。他目前...博文

  声明:参考sklearn官方文档t-SNEt-SNE是一种集降维与可视化于一体的技术,它是基于SNE可视化的改进,解决了SNE在可视化后样本分布拥挤、边界不明显的特点,是目前最好的降维可视化手段。关于...

  1.T-SNE的背景及介绍:任何事物产生的背景大多来自于现实的需求和现状的不满足:一:高维数据的可视化是许多不同领域的重要问题,例如与乳腺癌相关的细胞核由约30个变量描述。二:过去几十年中用于可视化高...

  转载于作者介绍:Saurabh.jaju2  Saurabh是一名数据科学家和软件工程师,熟练分析各种数据集和开发智能应用程序。...

  介绍在机器学习实战时,如果面对一个数据集具有上千个特征,那么对于模型训练将是一个巨大的挑战。面对如此多的数据变量,如果我们认真的去分析每一个变量将耗费我们几周甚至几个月的时间,那么你估计也要被开除了。...博文来自:python练手项目实战

  05-21阅读数 5万+word2vec介绍word2vec官网:是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距...

  导入语料库用txt读取,不要直接用字符串赋值,不然你会发现降维出来只有字向量,还死活不知道错在哪。。。...

  t-SNE算是比较新的一种方法,也是效果比较好的一种方法。t-SNE是深度学习大牛Hinton和lvdmaaten(他的弟子?)在2008年提出的,lvdmaaten对t-SNE有个主页介绍:tsne下载

  前言:{   神经网络实践部分还是卡在硬件上,之前试了一下华为云里的深度学习服务[1],感觉这只是为训练加速用的,远程调试还是不容易,最好还是在本机上进行。所以我先买了新的内存条,调试还是在本地进行。...

  TSNE是由SNE衍生出的一种算法,SNE最早出现在2002年,它改变了MDS和ISOMAP中基于距离不变的思想,将高维映射到低维的同时,尽量保证相互之间的分布概率不变,SNE将高维和低维中的样本分布...博文来自:

  本文主要参考wikipedia,介绍t-SNE算法,以及python下的一些实现可视化应用。目录1、概述...

  授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

  我分析了2万条饿了么、美团红包记录,这些是红包最多的APP(附数据集)

  我们可以从Alexa语音助手的错误中学到什么:用户对话界面的设计性挑战

  只看视频不动手的你可能学了门假课程,李飞飞计算机视觉成名作斯坦福CS231n作业详解重磅来袭!

  luopeng12345:博主您好,小白才接触这里,想问个问题: 1、图中不同颜色的点聚集在一起表示什么? 2、比如采用您的算法将我提取的68张人脸照片的128维数据作为data输入,然后随着我把数据从(128,68)增加到(128,100)点的颜色也增加了,这说明找到了更多的主成分吗? 3、相同颜色的点没有集中聚集就说明 降维效果不好吗? 希望能得到博主的回复,最好的祝愿送给博主!

(责任编辑:admin)
相关内容:
阿里获杭州首张无人驾驶路测牌 坏论文都写不满 8 页?这位顶 NLP系列(8)_用可视化解构BERT 12个思维导图工具像数据科学家 全球首例!远程操纵机器人20英
服务评价  | 诚聘英才  | 友情链接  | 联系我们  | 投诉建议
版权所有:95160商旅网
香港马报生肖图| 香港六合现场开奖结果| 管家婆心水论坛| 特马生肖走势图分析| 香港2018直播开奖记录| 香港最快开奖现场直播| 心水论坛高手资料大全| 彩图信封脑筋急转湾| 霸王龙六合网| 彩霸王玄机单双各四肖|