Kmeans肘子方法不返回肘子。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kmeans肘子方法不返回肘子。相关的知识,希望对你有一定的参考价值。

所以按照文档中的例子(此处):

KElbowVisualizer实现了 "肘部 "方法,帮助数据科学家通过对K的数值范围进行模型拟合,选择最佳的聚类数量。 如果线图像一只手臂,那么 "肘部"(曲线上的拐点)就很好地表明,基础模型在该点上的拟合效果最好。

如果图中没有肘部呢?当我在我的数据集上运行同样的代码时,输出的结果是。enter image description here

所以每增加一个聚类,失真度就会不断增加

然而,当我使用kmeans.intertia属性,运行另一个肘子方法的例子时。

sse = {}
for k in range(1, 10):
    kmeans = KMeans(n_clusters=k, max_iter=1000).fit(testDF)
    testDF["clusters"] = kmeans.labels_
    #print(data["clusters"])
    sse[k] = kmeans.inertia_ # Inertia: Sum of distances of samples to their 
closest cluster center
plt.figure()
plt.plot(list(sse.keys()), list(sse.values()))
plt.xlabel("Number of cluster")
plt.ylabel("SSE")
plt.show()

输出是:

enter image description here

其中确实有一个弯头。

这两种方法有什么区别?为什么第一张图上没有弯头?

根据文档,它们都应用了相同的距离法,即 "样本到其最近的簇中心的平方距离之和"。

答案

我刚才也遇到了同样的问题,更新到Yellowbrick v1.1就解决了。

pip install -U yellowbrick

或在Jupyter单元中。

!pip install -U yellowbrick

以上是关于Kmeans肘子方法不返回肘子。的主要内容,如果未能解决你的问题,请参考以下文章

AI图像识别颠覆传统营养咨询

前沿技术RPA 一文了解 UiPath 状态机 State Machine

前沿技术RPA 一文了解UiPath 文件与文件夹自动化功能

Kmeans 返回的集群的可视化

返回 kmeans 聚类中最远的异常值? [关闭]

猿创征文|国产数据库一文学会应用SqlSugar工作单元模式操作多数据库