python - 有人可以解释一下k-means中肘部啮合下这段代码的含义吗
问题描述
实例化聚类模型和可视化器
model = KMeans(random_state = 42)
visualizer = KElbowVisualizer(model, k=(2,10))
使数据适合可视化工具
visualizer.fit(df_final.values)
完成并渲染图形
visualizer.show()
解决方案
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()
输出:
推荐阅读
- javascript - 在 react-redux 中选择所有复选框功能
- java - ConstraintLayout 内的 CardView 重叠边缘
- git - 如何列出提交中不包含在任何分支中的所有标签?
- unity3d - Unity - 玩家跌倒从搅拌机导入的物体
- distributed - 为什么 Raft 领导者在选举时发送空的 AppendEntries RPC
- javascript - 如何使用过滤器和匹配来获取内容?
- javascript - 在 div 外部单击时,其他 div 必须使用 jquery 删除其类
- javascript - 为什么在循环体内声明的变量不被视为重新声明?
- matlab - 如何在 MATLAB 中从 TID2013 数据集中读取特定图像?
- javascript - MongoDB 将 JSON 响应映射为字符串