00:01
3.5务聚类。我们前面说过,聚类cluster是将数据集划分成组的,任这些组叫做促cluster,其目标是划分数据,使得一个簇内的数据点非常相似,且不同簇内的数据点非常不同。与分类算法类似,聚类算法为每个数据点分配或预测一个数字,表示这个点属于哪个处。3.5.1K均值聚类K均值聚类是最简单也最常用的聚类算法之一,它试图找到代表数据特定区域的促中心class center。算法交替执行以下两个步骤,将每个数据点分配给最近的粗中心,然后将每个粗中心设置为所分配的所有数据点的平均值。如果错的分配不再发生变化,那么算法结束。下面的例子在一个模拟数据集上对这一算法进行说明。
01:03
簇中心用三角形来表示,而数据点用圆形来表示,颜色表示促成圆。我们指定要寻找三个簇。所以通过声明三个随机数据点为促中心来将算法初始化。然后开始迭代算法。首先。每个数据点被分配给距离最近的初中心。接下来将促中心修改为所分配点的平均值。在这里。然后将这一过程再重复两次,也就是一共重复三次。在第三次迭代后。为促中心分配的数据点保持不变,因此算法结束。一般情况下。需要将。分配数据点,重新计算中心。这个过程一直重复下去,直到。
02:01
为促中心分配的数据点保持不变,算法才会结束。给定新的数据点K均值会将其分配给最近的副中心。下面的例子展示了。这一幅图。学到的初中心的边界。用S应用K均值相当简单,下面我们将其应用于上图中的模拟数据。我们将k means类实例化,并设置我们要寻找的数的个数。然后对数据调用fit方法,注意如果不指定错的个数,参数NC,它的默认值是八,使用这个值并没有什么特别的原因。
04:17
算法运行期间为X中每个训练数据点分配一个副标签,你可以在k miss.labels下划线属性中找到这些标签。因为我们要找的是三个醋,所以醋的编号是012。
05:02
你也可以用predict方法微新数据点分配出标签,预测是会将最近的副中心分配给每个新的数据点,但现有的模型不会发生改变。对训练集运行predict会返回与labels相同的结果。可以看到,聚类算法与分类算法有些相似,每个元素都有一个标签,但并不存在真实的标签,因此标签本身并没有鲜艳意义。对于我们刚刚在二维玩具数据集上运行的聚类算法,这意味着我们不应该为其中一组的标签是另一组的标签是一这一事实赋予任何的意义。再次运行该算法可能会得到不同的错编号,原因在于初始化的随机性质。
06:05
下面又给出了这个数据的图像副中心被保存在class centers下划线属性中,我们用三角形来表示它们。
07:22
嗯。我们也可以使用更多或者更少的粗中心。
09:24
这一幅图使用两个粗中心,这一幅图使用的是五个粗中心。看到书上134页。K均值的失败案例。即使你知道给定数据集中的醋的正确个数K均值,可能也不是总能找到他们。每个簇仅由其中心定义,这意味着每个簇都是凸形convex,因此黑君纸只能找到相对简单的形状。K君子还假设所有醋在某种程度上具有相同的直径。
10:04
它总是将醋之间的边界刚好画在处中心的中间位置。有时这会导致令人惊讶的结果。
12:50
你可能会认为。左下方的密集区域是一个醋。右上方的密集区域是第二个。
13:00
中间密度较小的区域是第三个。但事实上。第零个处和第一个处。都包含一些远离。其他点的点。K均值还假设。所有方向对每个处同等重要。
17:28
这一幅图显示了一个二维的数据集,数据中包含明确分开的三个部分。但是这三部分被沿着对角线的方向拉长了。由于K均值仅考虑到最近促中心的距离,所以它无法处理这种类型的数据。注意到代码中。派点random.random state的实例方法normal。
18:06
它返回指定形状的数组,形状通过size来指定。当。Q不等于零的时候,数组元素从正态分布。均值lock。标准差。Scale当中进行采样,否则数组元素全部等于lock。参数lock浮点数或者一个类似浮点数数组对象默认。0.0可选参数。Skill。浮点数或者一个类似浮点数数组增项可选参数默认1.0,注意必须是非负的。Size整数或者整数元组可选参数默认那输出数组的形状,具体解释看一下表。注意,Low high和输出数组必须可以广播到相同的形状。
19:03
来看一个例子。因为。肉的形状是。一维数组长度二氦的形状是零位数组,空元组。输出数组的形状是322元组,所以进行广播。这是广播之后的结果。输出数组不需要广播。因为我广播之前的,广播之后输出数都是一样的,即输出数组为A,那么。A的第二个元素等于。Normal。Look I skill I,需要注意的是,I不一定是一个整数,可能是一个整数原子。我们继续回到书上。如果醋的形状更加复杂,比如我们在第二章遇到的粗木数据,那么K均值的表现也会很差。
23:16
这里我们希望聚类算法能够发现两个半月形,但利用K均值算法是不可能做到这一点的。
我来说两句