KMeans 错误有现实意义吗?

数据挖掘 机器学习 数据挖掘 k-均值
2022-02-24 16:47:06

我试图理解sklearn KMeans中错误的含义。

在房价预测的背景下,误差线性回归可以被认为是每平方英尺的货币差。

KMeans 错误有现实意义吗?

2个回答

K-means 误差为您提供所谓的集群内总方差。K-means 误差

集群内方差是衡量给定集群中的点分布的量度。

以下集群将具有较高的集群内方差稀疏簇

在下图中,即使点数与上图相同,但点分布密集,因此具有较低的簇内方差在此处输入图像描述

K-means Error对此类单个集群方差的总和感兴趣。

假设对于给定的数据,如果聚类“A”形成第一张图像的聚类,聚类“B”形成第二张图像的聚类,则在大多数情况下,您将选择第二张图像。

虽然这并不意味着 K-means 误差是优化形成集群的完美目标。但它几乎抓住了集群背后的本质。


用于生成聚类图的代码 -

import numpy as np
from matplotlib import pyplot as plt

sparse_samples = np.random.multivariate_normal([0, 0], [[50000, 0], [0, 50000]], size=(1000))
plt.plot(sparse_samples[:, 0], sparse_samples[:, 1], 'b+')
axes = plt.gca()
axes.set_xlim(-1000, 1000)
axes.set_ylim(-1000, 1000)
plt.show()

dense_samples = np.random.multivariate_normal([0, 0], [[5000, 0], [0, 5000]], size=(1000))
plt.plot(dense_samples[:, 0], dense_samples[:, 1], 'r+')
axes = plt.gca()
axes.set_xlim(-1000, 1000)
axes.set_ylim(-1000, 1000)
plt.show()

在这两种情况下,都会对1000来自双变量正态分布的数据点进行 采样和绘制在第二种情况下,更改协方差矩阵以绘制更密集的集群。np.random.multivariate_normal的文档可以在这里找到。希望这可以帮助!

k-Means 聚类中“误差”的含义是:如果将 k 个质心替换为实际观察值,您将获得多少差异/信息丢失。换句话说:k 质心对您的数据的近似程度如何。

有几种方法可以衡量这个“错误”。通常使用解释的方差百分比误差的簇内总和,但选择是巨大的。甚至更平庸的欧几里得距离也可以工作。