Appearance
K-means算法
聚类算法是无监督学习算法中最常见的一种。之前的分类算法,都要求我们的训练数据带有最终的标签,或者是分类的结果。这些训练数据中带有标签的,我们就把它们叫做 有监督学习。
K-means 算法,是一种无监督学习的算法。事先你不需要知道数据的类别或着标签,根据数据的特征去学习,找到那些相似的数据,然后划分为一类。
一、算法原理
K-means 的算法思路:
- 对于 n 个样本点,首先根据距离公式去计算远近,距离越近就越相似。按照这样的规则,把它们划分到 K 个类别中,每个类别中的样本点都是最相似的。
- “簇”: 相似度很高的样本点集合。
- 质心: 一个簇中所有样本点的中心点,也就是均值。
二、算法工作流程
假设我们现在要对 9 个样本点进行聚类,每个样本都有两个特征,我们把它们表示在一个二维平面里。
1、实现步骤
- 第一步,先随机从这 9 个点中选取三个点,作为质心。
- 第二步,计算 所有点到这三个点的距离,每个点都选择离它最近的质心作为它们组的中心点。这样一来,就可以把数据分成三个组。
- 第三步,在划分好的每一个组内,计算每一个数据到质心的距离,取平均值,用这个平均值 作为下一轮迭代的中心点。
- 第四步,不断重复第二步和第三步进行迭代,直到所有的点已经无法再更新到其他分类, 也就是聚类中心中心不会再改变的时候,算法结束。
在这个过程中,有两个问题需要我们注意,
- K 值的选择: K-means 算法中的 K 值选择非常重要,因为它直接决定了最终模型的聚类结果。K 值确定了数据将被分成多少个簇,也就是说,它定义了我们寻找数据内部结构的粒度。
- 初始质心的选择: 如果初始质心选得不好,可能导致算法收敛到一个非常差的局部最优解,而不是一个全局的最优解。而且,一个好的初始质心,可以加快算法的收敛速度。如果初始质心一开始就非常接近最终的真实质心位置,那么算法需要的迭代次数会更少。
K-means算法可视化网站:Visualizing K-Means Clustering
三、应用案例
电商平台精细化运营:对用户进行分层,针对不同层次的用户采取不同的运营策略。
运营同学经常会按照自己的经验,比如按照用户的下单次数,通过制定的一些分类规则给用户进行分层,如下表格,我们就可以得到 三种不同价值的用户。
以上划分的不科学性:
- 评价维度单一
- 阈值确认过于随机
更加科学的划分方法
- RFM模型:客户分析及衡量客户价值的重要模型
- R 表示最近一次消费(Recency),F 表示消费频率 (Frequency),M 表示消费金额(Monetary)。
(1)可以将每个维度分为高低两种情况,如 R 的高低、F 的高低,以及 M 的高低,构建出 一个三维的坐标系。
(2)这样一来,就把客户分为了 2 的 3 次方,也就是 8 个群体,
(3)然后,通过用户历史数据(订单数据、日志),统计出每个用户的 RFM 数据:
- USER-ID:每个用户唯一对应的 ID;
- R:最后一次消费日期距现在的时间,比如最近一次消费时间到现在距离 5 天,则 R 就是 5;
- F:消费频率,比如近一年内,某个用户消费了 20 次,则 F 就是 20;
- M:消费金额,比如近一年内,用户累计消费了 1000 元钱,则 M 就是 1000;
这样,就有了 8000 个样本数据,每个样本数据包含三个特征,分别为 R、F,M。
(4) 接下来,就可以使用 K- means 算法,将这些样本数据分到不同的类别里去。
具体的计算过程:
- 通过 RFM 模型把用户分为 8 个用户群体,那就定义 K 值=8;
- 选择合适的质心,根据一些经验,选择那些明显是不同类别的数据,把它当作质心;
- 调用 K-means 算法,迭代计算;
- 最后根据数据的类型,给每一个类别命名。
这就是 K-means 算法对用户进行聚类的全部过程。
四、其他应用场景
- 文本聚类: 根据文档内容或主题对海量的文章进行聚类。
- 游戏匹配:根据玩家的技能水平、游戏风格或游戏时间来进行分组
- 相册分类:根据照片颜色、地点或出现的人物,自动分成不同的相册
五、算法优缺点
优点:
- 算法原理简单,程序容易实现,运算效率高
- 无需数据标注即可进行,实现成本低
缺点:
- 模型的准确性较低
- 受噪声影响较大
六、扩展题目
题目描述
你常用的 APP 中,哪些场景可能应用到了 K-means 聚类算法?
参考答案
- 哔哩哗哩、小红书的主页内容的推荐可能用到:
- 根据用户的自然属性、行为属性将用户进行聚类,根据该用户群体再统计观看频率较高的内容,推荐给用户。
- 根据用户经常观看的内容,计算选择 k-means 的筷中心,再推荐该筷群内的视频。
- 电商的商家标签系统可能用到:
- 根据商家的自然属性(地域、一般纳税人/小规模纳税人等)、经营属性(销售的品类、GMV、客户评价、客服数量等等)进行不同的聚类,可为其
- 商家增值服务、业务可提供不同运营扶持、或在商家成长体系中应用。