在 K-means 集群中寻找最小方差
Finding the minimum variance in K-means cluster
我有一组二维点,我想在其中使用 K-means 算法划分出正确数量的簇。
我读到,对于固定数量的聚类,我应该 运行 几次并找到给出最小方差的结果。
例如,假设我知道 "correct" 个簇数为 4。因此此示例的伪代码:
List<kmeansResult> result;
for(int i = 0 ; i < numIteration; ++i)
{
result.Add(kmeans.Compute(4));
}
我会得到 10 种不同的方法来获得 result
中的 4 个聚类,每个聚类都有其单独的聚类方差。
在这种情况下,我的问题是如何量化 "minimum" 方差。由于方差是二维的,即 var(X)
和 var(Y)
,可能存在 var(X)
被最小化而不是 var(Y)
的情况。什么是 "lump" 2 一起的好措施?
常见的做法是尽量减少 sum { (C_i - x_i) \cdot (C_i - x_i) i=1,...,n}
,其中:
C_i
- 点 i 的簇中心
x_i
- 点 i
\cdot
- 点积
n
- 样本数
我们的想法是最小化与集群的 L2 距离,从而使每个集群更紧密地结合在一起。
简而言之,它基本上是将每个点与其质心的欧几里得距离相加 - 但没有 euclidean distance metric.
中的平方根
我有一组二维点,我想在其中使用 K-means 算法划分出正确数量的簇。
我读到,对于固定数量的聚类,我应该 运行 几次并找到给出最小方差的结果。
例如,假设我知道 "correct" 个簇数为 4。因此此示例的伪代码:
List<kmeansResult> result;
for(int i = 0 ; i < numIteration; ++i)
{
result.Add(kmeans.Compute(4));
}
我会得到 10 种不同的方法来获得 result
中的 4 个聚类,每个聚类都有其单独的聚类方差。
在这种情况下,我的问题是如何量化 "minimum" 方差。由于方差是二维的,即 var(X)
和 var(Y)
,可能存在 var(X)
被最小化而不是 var(Y)
的情况。什么是 "lump" 2 一起的好措施?
常见的做法是尽量减少 sum { (C_i - x_i) \cdot (C_i - x_i) i=1,...,n}
,其中:
C_i
- 点 i 的簇中心
x_i
- 点 i\cdot
- 点积n
- 样本数
我们的想法是最小化与集群的 L2 距离,从而使每个集群更紧密地结合在一起。
简而言之,它基本上是将每个点与其质心的欧几里得距离相加 - 但没有 euclidean distance metric.
中的平方根