这显示了一个用 K 为 3 的 K 均值聚类的示例,并且正方形表示散点图中的数据点。 圆圈表示 K 均值聚类算法得出的质心,并且根据每个点最接近的质心为其分配了一个聚类。 真的,这就是全部。 这是无监督学习的一个例子。 在这种情况下,我们不会拥有大量数据,而对于给定的一组训练数据,我们已经知道正确的群集; 相反,您只是获得了数据本身,并且仅基于数据的属性就尝试自然地在这些群集上收敛。 这也是一个示例,其中您尝试查找甚至都不知道的集群或分类。 与大多数无监督学习技术一样,关键是要找到潜值,直到算法向您展示它们之前,您才真正意识到它们。
例如,百万富翁住在哪里? 我不知道,也许有一些富人倾向于居住的有趣的地理集群,而 K 均值集群可以帮助您弄清楚这一点。 也许我真的不知道今天的音乐类型是否有意义。 这些天替代是什么意思? 不多吧? 但是通过对歌曲属性使用 K 均值聚类,也许我可以找到彼此相关的有趣的歌曲聚类,并为这些聚类表示的名称命名。 或者,也许我可以查看人口统计数据,也许现有的刻板印象不再有用。 也许西班牙裔失去了意义,实际上还有其他一些属性可以定义人群,例如,我可以通过聚类来发现。 听起来不错,不是吗? 真的很复杂的东西。 用 K 集群进行无监督的机器学习,听起来很花哨,但是和大多数数据科学技术一样,这实际上是一个非常简单的想法。
例如,百万富翁住在哪里? 我不知道,也许有一些富人倾向于居住的有趣的地理集群,而 K 均值聚类可以帮助您弄清楚这一点。 也许我真的不知道今天的音乐类型是否有意义。 这些天替代是什么意思? 不多吧? 但是通过对歌曲属性使用 K 均值聚类,也许我可以找到彼此相关的有趣的歌曲聚类,并为这些聚类表示的名称命名。 或者,也许我可以查看人口统计数据,也许现有的刻板印象不再有用。 也许西班牙裔失去了意义,实际上还有其他一些属性可以定义人群,例如,我可以通过聚类来发现。 听起来不错,不是吗? 真的很复杂的东西。 用 K 集群进行无监督的机器学习,听起来很花哨,但是和大多数数据科学技术一样,这实际上是一个非常简单的想法。
这是简单的英语算法:
...
...
@@ -420,7 +420,7 @@ K 均值聚类是机器学习中一种非常普遍的技术,您仅尝试获取
1.**选择 K**:首先,我们需要选择正确的 K 值,这根本不是一件容易的事情。 选择 K 的主要方法是从低开始,并根据想要的组数不断增加 K 的值,直到不再大幅度减少平方误差为止。 如果查看每个点到其质心的距离,可以将其视为误差度量。 在停止减少该错误指标的那一刻,您知道您可能有太多的群集。 因此,此时您无法通过添加其他集群真正获得任何更多信息。
2.**避免局部最小值**:此外,存在局部最小值的问题。 您可能会对最初选择的质心感到非常不走运,而且它们最终可能只收敛于局部现象,而不是更多的全局簇,因此通常,您需要运行几次并可能求平均结果。 我们称这种集成学习。 我们稍后再讨论,但是使用一组不同的随机初始值多次运行 K 均值总是一个好主意,只是看看您是否最终得到相同的总体结果 或不。
3.**标记群集**:最后,K 均值集群的主要问题是没有针对您获得的集群的标签。 它只会告诉您这组数据点在某种程度上是相关的,但是您不能在上面加上名称。 它无法告诉您该群集的实际含义。 假设我正在看一堆电影,并且 K 均值聚类告诉我这堆科幻电影就在这里,但我不会将它们称为“科幻”电影。 我要真正去研究数据并弄清楚,这些东西到底有什么共同点? 我怎么用英语来描述? 那是最困难的部分,而 K 均值并不能帮助您。 再次说明,scikit-learn 使执行此操作变得非常容易。
3.**标记群集**:最后,K 均值聚类的主要问题是没有针对您获得的集群的标签。 它只会告诉您这组数据点在某种程度上是相关的,但是您不能在上面加上名称。 它无法告诉您该群集的实际含义。 假设我正在看一堆电影,并且 K 均值聚类告诉我这堆科幻电影就在这里,但我不会将它们称为“科幻”电影。 我要真正去研究数据并弄清楚,这些东西到底有什么共同点? 我怎么用英语来描述? 那是最困难的部分,而 K 均值并不能帮助您。 再次说明,scikit-learn 使执行此操作变得非常容易。