k-medoids是另一种聚类算法,可用于在数据集中查找分组。k-medoids聚类与k-means聚类非常相似,除了一些区别。k-medoids聚类算法的优化功能与k-means略有不同。在本节中,我们将研究k-medoids聚类。
有许多不同类型的算法可以执行k-medoids聚类,其中最简单,最有效的算法是PAM。在PAM中,我们执行以下步骤来查找集群中心:
可以看到,除了步骤1 和 步骤4之外,PAM算法与k-means聚类算法相同 。对于大多数实际目的,k-medoids聚类给出的结果几乎与k-means聚类相同。但是在某些特殊情况下,我们在数据集中有离群值,因此首选k-medoids聚类,因为它比离群值更健壮。
在本节中,我们将使用在上两节中使用的相同的鸢尾花数据集,并进行比较以查看结果是否明显不同于上次获得的结果。
在本练习中,我们将使用R的预构建库执行k-medoids:
图:k-medoids聚类的结果
k-medoids聚类的结果与我们在上一节中所做的k-means聚类的结果没有太大差异。
因此,我们可以看到前面的PAM算法将我们的数据集分为三个聚类,这三个聚类与我们通过k均值聚类得到的聚类相似。
图:k-medoids聚类与k-means聚类的结果
在前面的图中,观察k均值聚类和k均值聚类的中心如何如此接近,但是k均值聚类的中心直接重叠在数据中已有的点上,而k均值聚类的中心不是。
现在我们已经研究了k-means和k-medoids聚类,它们几乎是完全相同的,我们将研究它们之间的区别以及何时使用哪种类型的聚类:
使用客户数据集执行k-means和k-medoids聚类,然后比较结果。
步骤:
结果将是群集的k均值图,如下所示:
图:集群的预期k均值图
到目前为止,我们一直在研究鸢尾花数据集,在该数据集中我们知道有多少种花,并根据这一知识选择将数据集分为三个簇。但是,在无监督学习中,我们的主要任务是处理没有任何信息的数据,例如,数据集中有多少个自然簇或类别。同样,聚类也可以是探索性数据分析的一种形式。
确定无监督学习中最佳聚类数的方法不止一种。以下是我们将在本章中研究的内容:
轮廓分数或平均轮廓分数计算用于量化通过聚类算法实现的聚类质量。
轮廓分数在1到-1之间。如果聚类的轮廓分数较低(介于0和-1之间),则表示该聚类散布开或该聚类的点之间的距离较高。如果聚类的轮廓分数很高(接近1),则表示聚类定义良好,并且聚类的点之间的距离较低,而与其他聚类的点之间的距离较高。因此,理想的轮廓分数接近1。
我们学习如何计算具有固定数量簇的数据集的轮廓分数:
前面的图给出了数据集的平均轮廓分数为0.45。它还显示了聚类和点聚类的平均轮廓分数。
我们计算了三个聚类的轮廓分数。但是,要确定要拥有多少个群集,就必须计算数据集中多个群集的轮廓分数。
针对k的各个值计算轮廓分数来确定最佳的簇数:
从前面的图中,选择得分最高的k值;即2。根据轮廓分数,聚类的最佳数量为2。
图:聚类数与平均轮廓分数
为了识别数据集中的聚类,我们尝试最小化聚类中各点之间的距离,并且平方和(WSS)方法可以测量该距离 。WSS分数是集群中所有点的距离的平方的总和。
在本练习中,我们将看到如何使用WSS确定集群数。执行以下步骤。
图:WSS与群集数量
在前面的图形中,我们可以将图形的肘部选择为k = 3,因为在k = 3之后WSS的值开始下降得更慢。选择图表的肘部始终是一个主观选择,有时可能会选择k = 4或k = 2而不是k = 3,但是对于这张图表,很明显k> 5是不适合k的值,因为它们不是图形的肘部,而是图形的斜率急剧变化的地方。
差距统计数据是在数据集中找到最佳聚类数的最有效方法之一。它适用于任何类型的聚类方法。通过比较我们观察到的数据集与没有明显聚类的参考数据集生成的聚类的WSS值,计算出Gap统计量。
因此,简而言之,Gap统计量用于测量观察到的数据集和随机数据集的WSS值,并找到观察到的数据集与随机数据集的偏差。为了找到理想的聚类数,我们选择k的值,该值使我们获得Gap统计量的最大值。
在本练习中,我们将使用Gap统计信息计算理想的聚类数目:
图1.35:差距统计与集群数量
如上图所示,Gap统计量的最大值是k = 3。因此,数据集中理想的聚类数目为3。
使用上述所有三种方法在客户数据集中找到最佳聚类数量:
将变量中的批发客户数据集的第5列到第6列加载。
结果将是三个图表,分别代表轮廓得分,WSS得分和Gap统计量的最佳聚类数。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。