常见运用包括:
用户分割:将用户划分到不同的组别中,并根据簇的特性而推送不同的。
广告敲诈检测:创造正常与非常的用户数据,识别个中的敲诈行为。

如上图,数据可以被分到红蓝绿三个不同的簇(cluster)中,每个簇应有其特有的性子。显然,聚类剖析是一种无监督学习,是在缺少标签的条件下的一种分类模型。当我们对数据进行聚类后并得到簇后,一样平常会单独对每个簇进行深入剖析,从而得到更加细致的结果。
常见的聚类方法有不少,比如K均值(K-Means),谱聚类(Spectral Clustering),层次聚类(Hierarchical Clustering),大部分机器学习参考书上都有先容,此处不再赘述。今天主要磋商实际聚类剖析时的一些技巧。
01 如何选择适宜的聚类算法
聚类算法的运算开销每每很高,以是最主要的选择标准每每是数据量。
但数据量上升到一定程度时,如大于10万条数据,那么大部分聚类算法都不能利用。最近读到的一篇比拟不同算法性能随数据量的变革很故意思。在作者的数据集上,当数据量超过一定程度时仅K均值和HDBSCAN可用。
我的履历也是,当数据量超过5万条数据往后,K均值可能是比较实际的算法。但值得把稳的是,K均值的效果每每不是非常好。
因此不丢脸出,K均值算法最大的优点便是运行速率快,能够处理的数据量大,且易于理解。但缺陷也很明显,便是算法性能有限,在高维上可能不是最佳选项。
一个比较粗浅的结论是,在数据量不大时,可以优先考试测验其他算法。当数据量过大时,可以试试HDBSCAN。仅当数据量巨大,且无法降维或者降落数量时,再考试测验利用K均值。
一个显著的问题旗子暗记是,如果多次运行K均值的结果都有很大差异,那么有很高的概率K均值不适宜当前数据,要对结果谨慎的剖析。
另一种替代方法是对原始数据进行多次随机采样得到多个小样本,并在小样本上聚类,并领悟结果。比如原始数据是100万,那么从中随机采样出100个数据量即是1万的样本,并在100个小数据集上用更为繁芜的算法进行聚类,并终极领悟结果。
此处须要把稳几点问题:
随机采样的样今年夜小很主要,也不能过小。须要足够有代表性,即小样本依然可以代表总体的数据分布。如果终极须要划分很多个簇,那么要非常小心,由于小样本可能无法表示体量很小的簇。
在领悟过程中要关注样本上的聚类结果是否稳定,随机性是否过大。要特殊把稳不同样本上的簇标号是否统一,如何证明不同样本上的簇结果是同等的。
因此我的履历是,当数据量非常大时,可以优先试试K均值聚类,得到初步的结果。如果效果不好,再通过随机采样的方法构建更多小样本,手动领悟模型提升聚类结果,进一步优化模型。
02 聚类剖析时须要利用什么变量?
这个是一个非常难回答的问题,而且充满了迷惑性,不少人都做错了。举个大略的例子,我们现在有很多客户的商品购买信息,以及他们的个人信息,是否该用购买信息+个人信息来进行聚类呢?
未必,我们须要首先回答最主要的一个问题:我们要办理什么问题?
如果我们用个人信息,如性别、年事进行聚类,那么结果会被这些变量所影响,而变成了对性别和年事的聚类。以是我们该当先问自己,“客户购物习气”更主要还是“客户的个人信息”更主要?
如果我们最在意的是客户怎么费钱,以及购物特色,那就该当完备打消客户的个人信息(如年事性别家庭住址),仅利用购买干系的数据进行聚类。这样的聚类结果才是完备由购买情形所驱动的,而不会受到用户个人信息的影响。
那该如何更好的利用客户的个人信息呢?这个该当被用在聚类之后。当我们得到聚类结果后,可以对每个簇进行剖析,剖析簇中用户的个人情形,比如高净值客户的均匀年事、居住区域、开什么车。无关变量不应该作为输入,而该当得到聚类结果后作为剖析变量。
一样平常情形下,我们先要问自己,这个项目在意的是什么?很多时候个人信息被缺点的利用在了聚类当中,聚类结果完备由个人信息所决定(比如男性和女性被分到了两个簇中),对付商业决策的意义就不大了。一样平常来说,该当由商业数据驱动,得到聚类结果后再对每个簇中的用户个人信息进行整合剖析。
但值得把稳的是,这个方法不是绝对的。在聚类中有时候也会适当引入个人信息,也可以通过调度不同变量的权重来调度每个变量的影响。
03 如何剖析变量的主要性?
首先变量选择是主不雅观的,完备依赖于建模者对付问题的理解,而且每每都是想到什么用什么。由于聚类是无监督学习,因此很难评估变量的主要性。
先容两种思考方法:
考虑变量的内在变革度与变量间的关联性:一个变量本身方差很小,那么不易对聚类起到很大的影响。如果变量间的干系性很高,那么高干系性间的变量该当被合并处理。直接采取算法来对变量主要性进行排序。
另一个鸡生蛋蛋生鸡的问题是,如果我用算法找到了主要特色,那么仅用主要特色建模可以吗?这个依然不好说,我以为最须要去除的是高干系性的变量,由于很多聚类算法无法识别高干系性,会重复打算高干系性特色,并浮夸了其影响,比如K均值。
04 如何证明聚类的结果故意义?如何决定簇的数量?
聚类剖析是无监督学习,因此没有详细的标准来证明结果是对的或者错的。一样平常的判断方法无外乎三种:
人为验证聚类结果符合商业逻辑。比如我们对***客户进行聚类,终极得到4个簇,个中分为:
“高购买力虔诚客户”:花了很多钱的虔诚客户,他们可能常年购买且花费不菲
“普通虔诚客户”:常年购买,但每次的购买额度都不大
“刺激性消费单次购买者”:只购买了几次,但是挥霍无度
“谨慎的单次购买者”:只购买了几次,每次买的都很谨慎
我们可以用通过商业逻辑来阐明聚类结果,结果该当大致符合行业专家的意见。终极你的聚类结果须要回归到现实的商业逻辑上去,这样才故意义。
预先设定一些评估标准,比如簇内的紧凑度和簇间的疏离度,或者定义好的函数如Silhouette Coefficient。一样平常来说设定一个好的评估标准并不随意马虎,以是不能去世板的纯挚依赖评估函数。
通过可视化来证明不同簇之间的差异性。由于我们一样平常有超过两个变量,以是会须要先对数据进行压缩,比如很多流形学习的方法多维缩放(multi-dimensional scaling)。
以下图为例,我把数据分成了四个簇,并用T-SNE压缩到二维并绘制出来。从直不雅观上看,不同簇间有了一定差异。类似的可视化也可以在变量间两两绘制,或者直接画pairplot。
以是如何定义一个好的聚类结果?我认为该当符合几个基本标准:
符合商业知识,大致方向上可以被领域专家所验证可视化后有一定的差异,而并非完备随机且交织在一起如果有预先设定的评估函数,评估结果较为精良。
因此决定簇的数量也该当遵照这个逻辑,适当的数量该当知足以上三点条件。如果某个簇的数量过大或者过小,那可以考虑分裂或者合并簇。
当然,聚类作为无监督学习,有很多模棱两可的地方。但应时时牢记的是,机器学习模型应做事商业决策,分开问题空谈模型是没故意义的。
End. 来源:阿萨姆谈AI 版权归原作者所有 侵权奉告删除 头条号-新社汇and微会动袁帅 转载发布
【头条号-新社汇and微会动袁帅】运营者:袁帅,互联网数据剖析运营实践者,新社汇平台联合创始人,微会动平台创始人,【静花缘·梦回古道】佳构民宿小院线上运营者。会展业信息化、数字化专家。PMP项目管理师,网络营销师,SEM搜索引擎营销师,SEO工程师,认证数据剖析师,永洪数据科学研究院MVP,中国电子商务协会认证:中国电子商务职业经理人,脱销书《互联网发卖宝典》联合出品人之一。