k-Means 聚类

用你已掌握的数学构建经典模型

一张地图上有二十来个没有标签的点。没有答案,没有标签,计算机照样能找出分组。这门课到目前为止建立的每个模型都是从带标签的例子中学习的:要匹配的价格,要预测的类别。k-Means 把标签完全扔掉,只靠点与点之间挨得多近来引导自己。

季节一开始,k 辆冰淇淋车散布在小镇各处。每天早晨,每辆车都开到前一天它服务过的顾客的正中心。车一挪好位置,就有几位顾客离另一辆车稍微更近了,于是明天的势力范围也随之变化。每天早晨重复这一幕,最终车不再移动:每辆车都停在了一小片稳定街坊的中心。这套一直重复到什么都不再动的流程,就是 k-Means。

下面是一些没有标签的点,外加 k 个可以拖到任意位置的中心标记。按下步进,依次观察两件事:先是每个点染上离它最近的那个中心的颜色,然后各个中心滑向刚刚选中它们的那些点的平均位置。这里没有任何东西是预先算好的。拖一个点,拖一个中心,改一改 k,再按一次步进,看它从你留下的任意局面重新整理这批数据。

在机器学习中的应用零标签的聚类在课堂之外随处可见。把顾客按购买行为分成几个群组,把图像里每个像素的颜色换成 k 种代表色中离它最近的一种来压缩图像,在任何标签存在之前先给数据集找一个粗略的初步分组,这些跑的都是同一个循环。 这套先指派、再移动的流程还预演了一个在机器学习里反复出现的模式:选一个说得过去的初始猜测,在两个更容易的更新之间交替,每一步都能证明不会让某个目标量变差,直到什么都不再变化就停下。本模块稍后会见到的高斯混合软聚类,正是对同一想法的细化:它允许一个点同时属于几个簇,而不是只挑一个。
▶ k-Means 聚类
← Boosting:从错误中学习该分几个簇?肘部法与轮廓系数 →