


























这篇文章,我们来学习无监督学习算法中的K均值聚类算法。希望大家看完后能了解其基本原理和应用场景,以便在工作中更好地应用。

K均值聚类算法也叫K-means聚类算法,是一种无监督学习算法。
假设有一个新开办的大学,即便还没有开设任何的社团,有不同兴趣爱好的同学们依然会不自觉的很快聚在一起,比如喜欢打篮球的、喜欢打乒乓球的、喜欢音乐的等等。
这时候就可以顺势开设篮球社团、乒乓球社团、音乐社团,再有同学想加入社团的时候,就可以直接根据自身兴趣选择社团了。
把这个场景迁移到机器学习上,拥有不同兴趣的学生就是数据样本,我们来试着来给他们归类。

向量空间中,距离近的样本意味着有更高的相似度,我们就把它们归为一类,然后用该类型所有样本的中心位置标识这个类别,再有新样本进来的时候,新样本离哪个类别的中心点更近,就属于哪个类别,然后再重新计算确定新的中心点。
不断重复上述操作,就能把所有的数据样本分成一个个无交集的簇,也就是对所有数据样本完成了归类。
这就是K-means算法的思路及原理:将数据集划分为K个不重叠的独立聚类,再找出这个K个类别的中心位置,新的样本离中心位置最近则归属哪个类别。
这里生成的新簇中,需重新计算每个簇的中心点,然后在重新进行划分,直到每次划分的结果保持不变。在实际应用中往往经过很多次迭代仍然达不到每次划分结果保持不变,甚至因为数据的关系,根本就达不到这个终止条件,实际应用中往往采用变通的方法设置一个最大迭代次数,当达到最大迭代次数时,终止计算。
需要注意的是,K-means算法中的K表示要分成K个聚类,那么如何确定K值就是一个绕不开的问题了。其实没有统一的标准,这里一般两种办法:
1、我们一般根据个人经验来设定K值(可用观察法看粗略地看有多少簇)。
2、尝试每一个K值,然后在不同的K值情况下,通过每个待测点到质心的距离之和,来计算平均距离。着K值的变化,最终会找到一个点,让平均距离变化放缓,这个时候基本就可以确定K值了。
如下图划分数在4-15之间,簇内间距变化很小,基本上是水平直线,因此可以选择K=4(拐点附近位置)作为划分数。

K-Means算法涉及到簇中心的计算,对于第i个簇,其簇中心(质心)的计算公式为:


K均值聚类的目标是最小化簇内平方误差,即找到K个簇,使每个数据点与其所属簇中心的距离之和最小。目标函数的数学公式是:


从公式可见,E值越小则簇内数据(样本)相似度越高。K-Means算法通过迭代更新簇中心,不断优化这个目标函数,来达到更好的聚类效果。
K均值聚类算法,可以帮我们完成大量数据的分类任务。
商业务中,精细化运营的前提是对用户进行分层,然后根据不同层次的用户采取不同的运营策略。这时候可以收集用户的消费频率、消费金额、最近消费时间等消费数据,并使用K-means算法将用户分为不同的层级,然后针对高价值用户,可以提供专享活动或个性化服务,提高用户价值感和忠诚度,针对将要流失的用户,可以采用发放优惠券等挽留策略,尽可能留住用户。
以下是一些更多应用场景:
K-means算法的优点:
K-means算法的缺点:
参考文档:
1、8000字详解“聚类算法”,从理论实现到案例说明-人人都是产品经理-果酿
2、K-means聚类算法:用“物以类聚”的思路挖掘高价值用户
作者:厚谦,公众号:小王子与月季
本文由@厚谦 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。