首页 > 解决方案 > 有人可以解释一下k-means中肘部啮合下这段代码的含义吗

问题描述

实例化聚类模型和可视化器

model = KMeans(random_state = 42)

visualizer = KElbowVisualizer(model, k=(2,10))

使数据适合可视化工具

visualizer.fit(df_final.values)

完成并渲染图形

visualizer.show()

标签: pythoncluster-analysisk-means

解决方案


K-means是一种无监督学习,该技术中的簇数称为 K,用户必须定义​​这个数。

现在,

visualizer = KElbowVisualizer(model, k=(2,10))

在上面的代码行中,我们定义了传递给模型的 K 的数量范围,范围为2-9,并选择形成肘部的K,这基本上意味着 K 的值和平方误差较小,即选择 K。

此外,这种肘部方法仅在数据非常聚集时才有效。

之后,

visualizer.fit(df_final.values)

上面的行将在可视化器上拟合数据,并在图中绘制不同的值,在 x 轴上具有不同的 K,在 y 轴上具有失真分数。

示例代码:(https://www.scikit-yb.org/en/latest/api/cluster/elbow.html

from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

from yellowbrick.cluster import KElbowVisualizer

# Generate synthetic dataset with 8 random clusters
X, y = make_blobs(n_samples=1000, n_features=12, centers=8, random_state=42)

# Instantiate the clustering model and visualizer
model = KMeans()
visualizer = KElbowVisualizer(model, k=(4,12),)

visualizer.fit(X)        # Fit the data to the visualizer
visualizer.draw()   

输出

在此处输入图像描述


推荐阅读