当前位置: 首页 >> 推荐新闻 >> 星月神话,师父,对手-乌塔咖啡-咖啡爱好者协会-服务业新闻报道 >> 正文

星月神话,师父,对手-乌塔咖啡-咖啡爱好者协会-服务业新闻报道

2019年05月10日 10:49:31     作者:admin     分类:推荐新闻     阅读次数:124    

点击上方重视,All in AI我国

任何与数据相关的应战的第一步都是从研讨数据自身开端的。例如,能够经过检查某些变量的散布或检查变量之间的潜在相关性来研讨。

现在的问题是,许多数据集都有很多的变量。换句话说,它们是多维度的,数据沿着这些维度散布。这样的话,可视化地研讨数据会变得很有应战性,大多数时分乃至不或许手艺完结。可是,研讨数据时,可视化数据是十分重要的。因而,了解怎么可视化高维数据集是要害,这能够运用降维技能来完成。这篇文章将要点介绍两种降维技能技能:PCA和t-SNE。

关于这两项技能,后面会具体介绍,现在,让咱们先得到一些高维数据。

MNIST数据集

在本文中,咱们将运用MNIST数据集。无需手动下载数据集,因为咱们能够经过运用Scikit Learn获取数据集。

首要把一切的库都准备好。

然后开端加载数据

把矩阵和向量转换为Pandas数据框,这与R言语中运用的数据框十分类似,使咱们更简略进行绘图。

为了防止在核算中运用悉数70000个数据,所以咱们将选用数据的随机子集。随机化很重要,因为数据聚会按其标签排序,即前7000左右是零)。为了保证随机化,创立数字0-69999的随机摆放,以便稍后为核算和数据可视化进行选择。

咱们现在有了数据框和随机向量。先来检查一下这些数字,并为此生成30个随机图画。

现在能够开端考虑怎么区别0和1、2等等。例如,假如您是邮局,这样的算法能够帮助您运用机器读取和分类手写信封,而不是让人类这样做。显着,现在咱们有十分先进的方法来做到这一点,可是这个数据集依然供给了一个十分好的比如,能够让咱们看到降维的具体方法以及它们的作业情况。

这些图画基本上都是28×28像素,因而总共有784个“维度”,每个维度包括一个特定像素的值。

咱们要做的是大幅削减维度数量,一起尽或许多地保存信息中的“改变”。接下来,让咱们了解什么是主成分剖析。

运用PCA降维

PCA是一种削减数据集维数的一起保存大部分信息的技能。它运用一些维度之间的相关性,并企图经过供给最少的变量,并尽或许地保存关于原始数据散布的最多信息。这个进程并不是简略的猜想,而是运用称为数据矩阵的特征值和特征向量进行核算。协方差矩阵的特征向量能够表现数据改变的首要方向,并且是数据集改变的最首要方向。

咱们将运用PCA的Scikit-Learn完成这个核算进程。

首要从二维图和三维图开端,从原始的784维度生成前三个首要组成部分,并看到总数据会集有多少改变。

前两个组件大约占整个数据集改变的25%,这是否足以将不同的数据分隔呢?创立第一个和第二个主成分的散点图,并用不同的色彩为每个不同类型的数据上色。假如能够的话,相同类型的数据将被集合在一起,这意味着前两个首要组件实践上能反映关于特定数字类型的很多信息。

从图中咱们能够看到,前两个组件的确包括着一些关于特定数据的信息,可是这样显着不足以将不同的数据分隔。咱们还能够用t-SNE技能来进行降维。接下来,咱们来探究用t-SNE技能进行可视化数据集操作。

与3d版别的相同操作

t-SNE

t-SNE是另一种降维的技能,特别适用于高维数据集的可视化。与PCA相反,它不是一种数学技能,而是一种概率技能。 t-SNE的作业原理如下:

“t-SNE最小化了两个散布之间的差异:一个是衡量输入目标成对类似性的散布,另一个是衡量嵌入中相应低维点成对类似性的散布。”

本质上,这意味着它会检查输入到算法中的原始数据,并经过匹配两个散布来检查怎么运用较少的维度来最佳地展现数据。可是它的方法并不简洁,因而运用这种技能存在较多的约束。例如,在维度数据十分高的情况下,您或许需要在运用t-SNE之前运用另一种降维技能:

t-SNE的另一个缺陷是,因为t-SNE在目标数N中是按份额平方缩放,因而其适用性仅限于只要几千个输入目标的数据集。除此之外,其进程会变得太慢而不实用,内存要求也会变高。

因而,在本文的其余部分中,咱们将运用该算法的Scikit-Learn完成。

与上面的主张相反,咱们将首要测验在数据的实践维度上运转算法(784)。为了保证体系不会在内存和功耗或许时刻方面发生担负,只运用前10000个样原本运转算法。为了便利稍后进行比较,咱们还将在子集上再次运转PCA。

X

现在咱们有了两个维度成果,接下来创立两个维度的散点图,并依据各自的标签为每个样本上色,来再次可视化它们。

这现已比咱们之前运用的PCA可视化有了显着的改善。咱们能够看到这些数字十分清楚地集合在它们自己的子组中。假如现在运用聚类算法来选择别离的数据,咱们能够适当精确地为标签分配新点,来比较PCA和T-SNE:

PCA(左)vs T-SNE(右)

记住这些数据,接下来,咱们在将数据输入t-SNE算法之前再次运用PCA削减维数。首要创立一个新的PCA算法生成的包括50个维度的数据集,然后运用这个数据集履行t-SNE:

令人惊奇的是,前50个组件大致占有了数据总改变的85%左右。

现在,测验将这些数据输入t-SNE算法。为了保证算法不占用太多内存和CPU,这次咱们将运用其间10000个样本。代码部分在文末附录部分,它发生的成果如下:

PCA(左)vs T-SNE(中)与PCA50上的T-SNE(右)

从这个图中咱们能够清楚地看到,一切的样本明晰地分隔开来,并以各自的数据类型分组。接下来运用聚类算法,并企图辨认集群,或运用这两个维度作为另一个算法的输入(类似于神经网络)。

咱们现已探究了怎么运用各种降维技能,并用二维散点图可视化高维数据。这个进程没有涉及到实践的数学,而是依赖于Scikit-Learn完成的。

附录:代码

关于PCA上的t-SNE

可视化数据

编译出品

除非特别注明,本文『星月神话,师父,对手-乌塔咖啡-咖啡爱好者协会-服务业新闻报道』来源于互联网、微信平台、QQ空间以及其它朋友推荐等,非本站作者原创。 本站作者admin不对本文拥有版权,如有侵犯,请投诉。我们会在72小时内删除。 但烦请转载时请标明出处:“本文转载于『乌塔咖啡-咖啡爱好者协会-服务业新闻报道』,原文地址:http://www.untacoffee.com/articles/2101.html