正如其他人已经回答的那样,k-means 需要有关集群计数的先验信息。这在开始时可能看起来不是很有帮助。但是,我将引用以下我曾使用过并发现非常有帮助的场景。
颜色分割
想象一张包含 3 个信息通道的图片。 (红、绿、蓝)您想将颜色量化为 20 个不同的波段,以减少维度。我们称之为向量量化。
每个像素都是一个具有红色、绿色和蓝色分量的 3 维向量。如果图像是 100 x 100 像素,那么您有 10,000 个向量。
R,G,B
128,100,20
120,9,30
255,255,255
128,100,20
120,9,30
.
.
.
根据您打算执行的分析类型,您可能不需要所有的 R、G、B 值。处理序数表示可能更简单。
在上面的示例中,可能会为 RGB 值分配一个平面积分表示
R,G,B
128,100,20 => 1
120,9,30 => 2
255,255,255=> 3
128,100,20 => 1
120,9,30 => 2
您对这 10,000 个向量运行 k-Means 算法并指定 20 个集群。 结果 - 您已将图像颜色减少到 20 个大桶。显然有些信息丢失了。然而,这种损失是可以接受的直觉是,当人眼凝视着一片绿色草地时,我们不太可能记录所有 1600 万种 RGB 颜色。
YouTube 视频
https://www.youtube.com/watch?v=yR7k19YBqiw
我已经嵌入了该视频中的关键图片以供您理解。 注意!我不是这个视频的作者。
原图
K均值分割后