@@ -314,7 +314,7 @@ data = data.append(dataFrameFromDirectory(
如果您在这里玩耍,请确保修改传递给`dataFrameFromDirectory()`函数的路径以匹配您在系统中安装书籍资料的位置! 同样,如果您使用的是 Mac 或 Linux,请注意反斜杠和正斜杠以及所有其他内容。 在这种情况下,这没关系,但是如果您不在 Windows 上,则不会有驱动器号。 因此,只需确保这些路径实际上指向此示例的`spam`和`ham`文件夹所在的位置即可。
1.**选择 K**:首先,我们需要选择正确的 K 值,这根本不是一件容易的事情。 选择 K 的主要方法是从低开始,并根据想要的组数不断增加 K 的值,直到不再大幅度减少平方误差为止。 如果查看每个点到其质心的距离,可以将其视为误差度量。 在停止减少该错误指标的那一刻,您知道您可能有太多的群集。 因此,此时您无法通过添加其他集群真正获得任何更多信息。
2.**避免局部最小值**:此外,存在局部最小值的问题。 您可能会对最初选择的质心感到非常不走运,而且它们最终可能只收敛于局部现象,而不是更多的全局簇,因此通常,您需要运行几次并可能求平均结果。 我们称这种集成学习。 我们稍后再讨论,但是使用一组不同的随机初始值多次运行 K 均值总是一个好主意,只是看看您是否最终得到相同的总体结果 或不。
2.**避免局部最小值**:此外,存在局部最小值的问题。 您可能会对最初选择的质心感到非常不走运,而且它们最终可能只收敛于局部现象,而不是更多的全局簇,因此通常,您需要运行几次并可能求平均结果。 我们称这种集成学习。 我们稍后再讨论,但是使用一组不同的随机初始值多次运行 K 均值总是一个好主意,只是看看您是否最终得到相同的总体结果。
3.**标记群集**:最后,K 均值聚类的主要问题是没有针对您获得的集群的标签。 它只会告诉您这组数据点在某种程度上是相关的,但是您不能在上面加上名称。 它无法告诉您该群集的实际含义。 假设我正在看一堆电影,并且 K 均值聚类告诉我这堆科幻电影就在这里,但我不会将它们称为“科幻”电影。 我要真正去研究数据并弄清楚,这些东西到底有什么共同点? 我怎么用英语来描述? 那是最困难的部分,而 K 均值并不能帮助您。 再次说明,Scikit-learn 使执行此操作变得非常容易。
现在让我们来看一个例子,将 K 均值聚类付诸实践。
...
...
@@ -498,11 +498,11 @@ plt.show()
# 活动
因此,我希望您为某项活动做的是尝试使用不同的 k 值,然后查看最终结果。 只是盯着前面的图,看起来四个就可以了。 真的吗如果我增加 k 太大会怎样? 我的结果如何? 它试图将事物分解成什么,甚至有意义? 因此,尝试一下,尝试使用`k`的不同值。 因此,在`n_clusters()`功能中,将 5 更改为其他值。 再次运行所有内容,看看最终结果如何。
因此,我希望您为某项活动做的是尝试使用不同的 k 值,然后查看最终结果。 只是盯着前面的图,看起来四个就可以了。 真的吗?如果我增加 k 太大会怎样? 我的结果如何? 它试图将事物分解成什么,甚至有意义? 因此,尝试一下,尝试使用`k`的不同值。 因此,在`n_clusters()`功能中,将 5 更改为其他值。 再次运行所有内容,看看最终结果如何。
这就是 K 均值聚类的全部内容。 就这么简单。 您可以只使用 Scikit-learn 的`cluster`中的`KMeans`东西。 唯一的难题:请确保您缩放数据,对其进行规范化。 您要确保使用 K 均值的事物彼此可比,并且`scale()`函数将为您做到这一点。 因此,这些是 K 均值聚类的主要内容。 非常简单的概念,甚至更简单地使用 Scikit-learn 进行操作。
这里的所有都是它的。 这就是 K 均值聚类。 因此,如果您有一堆未分类的数据,并且事先没有真正的正确答案,那么这是一种尝试自然地找到有趣的数据分组的好方法,也许可以让您深入了解什么 该数据是。 这是一个很好的工具。 我以前在现实世界中使用过它,而且使用起来并不难,因此请将其保存在您的工具箱中。
这里的所有都是它的。 这就是 K 均值聚类。 因此,如果您有一堆未分类的数据,并且事先没有真正的正确答案,那么这是一种尝试自然地找到有趣的数据分组的好方法,也许可以让您深入了解该数据是什么。 这是一个很好的工具。 我以前在现实世界中使用过它,而且使用起来并不难,因此请将其保存在您的工具箱中。
单击**预测**按钮后插入值(`5.1`,`3.5`,`1.4`和`0.2`),应将您重定向到`http://localhost:9099/prediction`,其中`The predictor says it's a setosa`字符串应为 显示。 另外,请注意,如果您在表单中插入无效的条目(例如,将其保留为空或插入字符串而不是数字),则会显示一个 HTML 页面,指出存在错误。
单击**预测**按钮后插入值(`5.1`,`3.5`,`1.4`和`0.2`),应将您重定向到`http://localhost:9099/prediction`,其中应显示`The predictor says it's a setosa`字符串。 另外,请注意,如果您在表单中插入无效的条目(例如,将其保留为空或插入字符串而不是数字),则会显示一个 HTML 页面,指出存在错误。