K-medoids和k-means++是聚类算法中常用的两种方法。在本文中,我们将详细介绍这两种算法,并使用相关实例来说明它们的应用。

K-medoids算法

K-medoids是一种基于中心点的聚类算法,它的本质是通过选择代表样本(即中心点)来表示每个类别。该算法的步骤如下:

  1. 随机选择k个样本作为中心点;
  2. 对于每个样本,计算其与每个中心点之间的距离,并将其归类到距离最近的中心点所代表的类别;
  3. 对于每个类别,选择一个新的中心点,它是该类别中与其他样本距离之和最小的样本;
  4. 重复步骤2和3,直到中心点不再改变或达到最大迭代次数。

以下是一个使用K-medoids算法进行聚类的示例。假设我们有以下数据:

| 数据点 | X | Y | | ------ | - | - | | A | 1 | 1 | | B | 1 | 2 | | C | 2 | 1 | | D | 7 | 6 | | E | 8 | 5 | | F | 9 | 4 |

我们将k设置为2,并随机选择两个样本作为中心点。假设我们选择A和D作为初始中心点。现在我们计算每个样本到中心点A和D的距离:

| 数据点 | 到中心点A的距离 | 到中心点D的距离 | 所属类别 | | ------ | -------------- | -------------- | -------- | | A | 0 | 7 | A | | B | 1 | 6 | A | | C | 1 | 5 | A | | D | 7 | 0 | D | | E | 8 | 1 | D | | F | 9 | 2 | D |

现在我们选择每个类别中与其他样本距离之和最小的样本作为新的中心点。对于类别A,我们选择B作为新的中心点。对于类别D,我们选择E作为新的中心点。现在我们再次计算每个样本到中心点B和E的距离:

| 数据点 | 到中心点B的距离 | 到中心点E的距离 | 所属类别 | | ------ | -------------- | -------------- | -------- | | A | 0 | 7 | B | | B | 0 | 5 | B | | C | 1 | 4 | B | | D | 7 | 1 | E | | E | 5 | 0 | E | | F | 6 | 1 | E |

我们可以看到,现在每个样本都被正确地分配到了类别B或E中。由于中心点不再改变,算法停止并输出最终结果。

K-means++算法

K-means++是一种改进的K-means算法,它通过选择更好的初始中心点来提高聚类的准确性。K-means++算法的步骤如下:

  1. 随机选择一个样本作为第一个中心点;
  2. 对于每个样本,计算其到最近中心点的距离(即该样本所属类别的内部距离),并将所有内部距离的和作为概率分布;
  3. 随机选择下一个中心点,使其被选中的概率与其到最近中心点的内部距离成正比;
  4. 重复步骤2和3,直到选择k个中心点。

以下是一个使用K-means++算法进行聚类的示例。假设我们有以下数据:

| 数据点 | X | Y | | ------ | - | - | | A | 1 | 1 | | B | 1 | 2 | | C | 2 | 1 | | D | 7 | 6 | | E | 8 | 5 | | F | 9 | 4 |

我们将k设置为2,并使用K-means++算法选择初始中心点。首先,我们随机选择一个样本作为第一个中心点。假设我们选择A。现在我们计算每个样本到中心点A的内部距离,并将其归一化得到概率分布:

| 数据点 | 到中心点A的内部距离 | 概率 | | ------ | ------------------ | ---- | | A | 0 | 1.00 | | B | 1 | 0.50 | | C | 1 | 0.50 | | D | 9 | 0.00 | | E | 10 | 0.00 | | F | 13 | 0.00 |

现在我们随机选择下一个中心点,使其被选中的概率与其到最近中心点的内部距离成正比。假设我们选择B作为第二个中心点。现在我们再次计算每个样本到中心点A和B的内部距离,并将其归一化得到概率分布:

| 数据点 | 到中心点A的内部距离 | 到中心点B的内部距离 | 概率 | | ------ | ------------------ | ------------------ | ---- | | A | 0 | 1 | 0.33 | | B | 1 | 0 | 0.67 | | C | 1 | 1 | 0.00 | | D | 9 | 5 | 0.00 | | E | 10 | 6 | 0.00 | | F | 13 | 9 | 0.00 |

现在我们随机选择下一个中心点,使其被选中的概率与其到最近中心点的内部距离成正比。假设我们选择D作为第三个中心点。现在我们再次计算每个样本到中心点A、B和D的内部距离,并将其归一化得到概率分布:

| 数据点 | 到中心点A的内部距离 | 到中心点B的内部距离 | 到中心点D的内部距离 | 概率 | | ------ | ------------------ | ------------------ | ------------------ | ---- | | A | 0 | 1 | 81 | 0.02 | | B | 1 | 0 | 65 | 0.01 | | C | 1 | 1 | 80 | 0.02 | | D | 81 | 65 | 0 | 0.95 | | E | 98 | 82 | 1 | 0.00 | | F | 145 | 129 | 10 | 0.00 |

现在我们随机选择下一个中心点,使其被选中的概率与其到最近中心点的内部距离成正比。假设我们选择E作为第四个中心点。由于我们已经选择了k个中心点,算法停止并输出最终结果。

结论

K-medoids和K-means++是两种常用的聚类算法。K-medoids算法通过选择代表样本(即中心点)来表示每个类别,而K-means++算法通过选择更好的初始中心点来提高聚类的准确性。在实际应用中,我们可以根据数据的特点选择合适的算法进行聚类分析

K-medoids、 k-means++算法详细介绍并且利用相关的实例来进行运用其算法

原文地址: https://www.cveoy.top/t/topic/e0bq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录