00:01
第三章无监督学习与预处理。我们要讨论的第二种机器学习算法是无监督学习算法。无监督学习包括没有已知输出、没有老师指导学习算法的各种机器学习。在无监督学习中,学习算法只有输入数据,并需要从这些数据中提取知识。3.1、无监督学习的类型。本章将研究两种类型的无监督学习数据集变换与聚类数据集的无监督变换。on supervised transformation是创建数据新的表示的算法,与数据的原始表示相比。新的表示可能更容易被人或其他机器学习算法所理解。无监督变换的一个常见应用是降为。Dimension reduction。它接受包含许多特征的数据的高维表示,并找到表示该数据的一种方法,用较少的特征可以概括其重要特性。降维的一个常见应用是为了可视化,将数据降为二维。
01:08
无监督变换的另一个应用是找到构成数据的各个组成部分。这方面的一个例子就是对文本文档集合进行主题提取。这里的任务是找到。每个文档中讨论的未知主题,并学习每个文档中出现了哪些主题。这可能用于追踪社交媒体上的话题讨论,比如选举、枪支管制或流行歌手等话题。与之相反,聚类算法。Classing ofm将数据划分成不同的组,每组包含相似的物物项。思考向社交媒体网站上传照片的例子。为了方便你整理照片,网站可能想要将同一个人的照片分在一组。但网站并不知道每张照片是哪位,也不知道你的照片集中出现了多少个人。
02:03
明智的做法是提取所有人脸。并将看起来相似的人脸分在一组,但愿这些人脸对应同一个人。这样,图片的分组也就完成了。3.2,无监督学习的挑战无监督学习的一个主要挑战就是评估算法是否学到了有用的东西。无监督学习算法一般用一般用于。不包含任何标签信息的数据,所以我们不知道正确的输出应该是什么,因此很难判断一个模型是否表现很好。例如,假设我们的聚类算法已经将所有的侧脸照片和所有的正脸照片。进行分组。这肯定是人脸照片集合的一种可能的划分方法,但并不是我们想要的那种方法。然后我们没有没有办法告诉算法我们想要的是什么。通常来说,评估无监督算法的结果的唯一方法就是人工检查。
03:02
因此,如果数据科学家想要更好的理解数据,那么无监督算法通常用于探索性的目的,而不是作为大型自动化系统的一部分。无监督算法的另一个常见应用是作为监督算法的预处理步骤学习数据的一种新表示,有时可以提高监督算法的精度。或者可以减少内存占用和时间开销。在开始学习真正的无监督算法之前,我们先简要讨论几种简单又常用的预处理方法。虽然预处理和缩放通常与监督学习算法一起使用,但缩放方法并没有用到与监督有关的信息,所以它是无监督的。3.3预处理与缩放。上一章我们学到一些算法,如神经网络和知识向量SVM。对数据缩放非常敏感,因此通常的做法是对特征进行调节,使数据表示更适合于这些算法。通常来说,这是对数据的一种简单的按特征的缩放和移动。
04:35
这一幅图给出了一个比较简单的例子。这幅图就是书上的101页图三-一。看到3.3.1节不同类型的预处理。在这一幅图中。
05:01
第一张图显示的。是一个模拟的有两个特征的二类数据集。第一个特征,X轴。位于十到15之间。第二个特征,Y轴。大约位于一到九之间。接下来的四张图展示了四种数据变换的方法,都生成了更加标准的范围。在论中的standard color。确保每个特征的平均值为零,方差为一。使所有特征都位于同一量级,但这种缩放不能保证特征任何特定的最大值和最小值。Robust scholar的工作原理与standard类似。确保每个特征的统计属性都位于同一范围,但robust color使用的是中位数和四分位数,而不是平均值和方差。
06:06
这样robust会忽略与其他点很大不同的数据点,比如测量误差。这些与众不同的点。也叫做异常值outline可能会给其他缩放方法造成麻烦。什么是中位数?什么是四分位数?对于一组数来说,中位数是指这样的数值,X有一半数值小于X,另一半数值大于X,较小,四分位数指的是这样的数值,X有1/4的数值小于X,较大,四分位数指的是这样的数值,X有1/4的数据大于X。与之相反。Mini。移动数据使所有特征都刚好位于零到一之间。对于二维数据来说,所有的数据都包含在X轴零到一与Y轴零到一组成的矩形中,准确来说是个正方形中。
07:08
如果是。三维的数据集。所有的数据都包含在。边长为一的正方体中。最后normalize用到了一种。完全不同的缩放方法。它对每个数据点进行缩放,使得特征向量的欧式长度等于一。换句话说,它将一个数据点投射到半径为一的圆上。对于更高纬的情况。是球面或者超球面,这意味着每个数据点缩放比例都不相同,乘以及长度倒数。如果只有数据的方向或者角度是很重要的,而特征向量的长度无关紧要,那么通常使用这种规划方法。3.3.2级应用数据变换。
08:02
前面我们已经看到不同类型的变换的作用。下面利用赛克的论来进行这直接变换。我们将使用第二张见过的勘测数据机。通常在应用监督学习算法之前使用预处理方法,比如缩放。举个例子,比如我,我们想要将和SVM,也就是SVC分类器应用在看数据集上,并使用minimax k来预处理数据。首先加载数据集,并将其分为训练集和测试集。我们需要分开的训练集和数据集来对预处理后构建监督。模型进行评估。
10:10
提醒一下,这个数据集包含569个数据点,每个数据点有30个测量值表示。我们将数据集分成包含426个样本的训练集与包含143个样本的测试集。与之前构建的监督模型一样,我们首先导入实现预处理的类,然后将其实例化。然后使用fit方法拟合缩放器了。
11:04
并将其应用于训练数据。对于mini ma scale来说,Face方法计算训练其中每个特征的最大值和最小值,与第二章中的分类系和回归器不同。在对缩放器调用fit时,只提供了X,而不用提供y tree。为了应用刚刚学习的变换及对训练数据进行实际缩放,我们使用缩放器的transform方法。在S中,每当模型返回数据的一种新表示时,都可以使用transform方法。
14:53
变换后的数据形状与原始相同,特征只是发生了移动和缩放。你可以看到,现在所有特征都位于零到一之间。
15:05
这也符合我们的预期。为了将SVM应用到缩放后的数据上,还需要对测试集进行变换,这可以通过对X test调用transform方法来完成。
16:51
你可以发现,对测试集缩放后的最大值和最小值不是一和零,这或许有些出乎意料。有些特征甚至在零到一的范围之外。对此的解释是,Mini max k以及其他所有缩放器总是对训练集和测试级应用完全相同的变化。也就是说,Transform方法总是减去训练级的最小值,然后除以训练级的范围,而这两个值可能与测试集的最小值范围并不相同。
17:23
3.3.3。对训练数据和测试数据进行相同的缩放。为了让监督模型能够在测试集上运行,对训练集和测试集应用完全相同的变化是很重要的。如果我们使用测试集的最小值和范围。我们可以看试一下会怎么样。
21:54
上面这块是原始数据的可视化。
25:12
这一部分是。对,正确。缩放的数据进行可视化。最后我们来对错误缩放的数据进行可视化,怎么错误缩放?就是单独对测试集进行一下缩放。千万不要去这么做。
30:42
第一张图。是未缩放的二维数据集,其中训练集用圆形来表示。测试集用三角形来表示。第二张图是同样的数据。但是用mini。进行缩放。这里我们调用F作用在训练机上。
31:04
然后调用transform,作用在训练集和测试集上。你可以发现第二张图中的数据集看起来与第一张图中的完全相同。只是坐标轴刻度发生了变化。现在所有特征都位于零到一之间。你还可以发现测试数据,也就是三角形的特征的。最大值和最小值。并不是一和零。第三张图展示了如果我们对训练集和测试集分别进行缩放会发生什么。在这种情况下,对训练集和测试集而言,特征的最大值和最小值都是。一和零。但现在数据看起来。跟前面两幅图不太一样。测试集相对训练集的移动是不一致的,因为他们分别做了不同的缩放。
32:05
我们随意改变数据的排列。或者说布局,这显然不是我们想要做的事情,再换一种思考方式,想象力的测试集中只有一个点,对于一个点而言,无法将其正确的缩放,以满足mini max k的最大值和最小值的要求。但是测试集的大小不应该。对你的处理方式有影响。快捷方式与高效的替代方法通常来说,你想要在某个数据集上fit一个模型,然后再将其transform,这是一个非常常见的任务。通常可以比先调用fit再调用transform更高效的方法来计算。对于这种使用场景,所有具有方法的模型也都具有一个称为下划线transform的方法。下面是使用standard scale的一个例子。
35:05
虽然fit transform不一定对所有模型都更加高效,但尝试变换训练机时使用这一方法仍然是很好的做法。看到3.3.4节预处理对监督学习的作用,现在我们回到看数据集,观察使用mini ma对学习SVC的作用。这是一种不同的方法,实现了与第二章中相同的缩放。首先,为了对比,我们再次在原始数据上拟合一个fvc。
37:22
下面先用mini k对数据进行缩放,然后再拟合SVC。
39:52
正如我们所见。数据缩放的作用非常的显著。虽然数据缩放不涉及任何复杂的数学,但良好的做法仍然是使用S提供的缩放机制,而不是自己重新实现。他们。
40:10
因为。即使在这些简单的计算中,也容易犯错。你也可以通过改变使用的类,将一种预处理算法轻松的替换成另一种。因为所有的预处理类都具有相同的接口。都包含fit和transform方法。
41:54
到目前为止,我们已经看到了用于预处理的简单数据变换的工作原理。
42:01
下面继续学习。下一回继续学习。利用无监督学习进行更有趣的变化。
我来说两句