K-Means 算法的 10 个有趣用例



转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com

AIQ 机器学习大数据 知乎专栏 点击关注

源 | AI Zone

K-means 算法具有悠久的历史,并且也是最常用的聚类算法之一。K-means 算法实施起来非常简单,因此,它非常适用于机器学习新手爱好者。首先我们来回顾 K-Means 算法的起源,然后介绍其较为典型的应用场景。

起源

1967 年,James MacQueen 在他的论文《用于多变量观测分类和分析的一些方法》中首次提出 “K-means”这一术语。1957 年,贝尔实验室也将标准算法用于脉冲编码调制技术。1965 年,E.W. Forgy 发表了本质上相同的算法——Lloyd-Forgy 算法。

什么是 K-Means 算法?

聚类,是将数据分成若干组,使得相同组中的数据点之间比其他组中的数据点更具有相似性。简而言之,聚类就是将具有相似特征的数据点分割成一个个组,也就是一个个聚类中。K-means 算法的目标是在数据中查找一个个组,组的数量由变量 K 表示。根据数据所提供的特征,通过迭代运算将每个数据点分配给 K 个组中的其中一个组。下图中 K = 2,因此可以从原始数据集中识别出两个聚类。

在一个数据集上执行 K-means 算法,其输出分别是:

1.K 中心点:从数据集中识别的 k 个聚类的每一个中心点。

2. 数据集的完全标记,以确保每个数据点都可以分配给其中一个聚类。

K-Means 算法的十大用例

K-means 算法通常可以应用于维数、数值都很小且连续的数据集,比如:从随机分布的事物集合中将相同事物进行分组。

1. 文档分类器

根据标签、主题和文档内容将文档分为多个不同的类别。这是一个非常标准且经典的 K-means 算法分类问题。首先,需要对文档进行初始化处理,将每个文档都用矢量来表示,并使用术语频率来识别常用术语进行文档分类,这一步很有必要。然后对文档向量进行聚类,识别文档组中的相似性。 这里是用于文档分类的 K-means 算法实现案例。

2. 物品传输优化

使用 K-means 算法的组合找到无人机最佳发射位置和遗传算法来解决旅行商的行车路线问题,优化无人机物品传输过程。这是该项目的白皮书。

3. 识别犯罪地点

使用城市中特定地区的相关犯罪数据,分析犯罪类别、犯罪地点以及两者之间的关联,可以对城市或区域中容易犯罪的地区做高质量的勘察。这是基于德里飞行情报区犯罪数据的论文。

4. 客户分类

聚类能过帮助营销人员改善他们的客户群(在其目标区域内工作),并根据客户的购买历史、兴趣或活动监控来对客户类别做进一步细分。这是关于电信运营商如何将预付费客户分为充值模式、发送短信和浏览网站几个类别的白皮书。对客户进行分类有助于公司针对特定客户群制定特定的广告。

5. 球队状态分析

分析球员的状态一直都是体育界的一个关键要素。随着竞争越来愈激烈,机器学习在这个领域也扮演着至关重要的角色。如果你想创建一个优秀的队伍并且喜欢根据球员状态来识别类似的球员,那么 K-means 算法是一个很好的选择。具体细节和实现请参照这篇文章。

6. 保险欺诈检测

机器学习在欺诈检测中也扮演着一个至关重要的角色,在汽车、医疗保险和保险欺诈检测领域中广泛应用。利用以往欺诈性索赔的历史数据,根据它和欺诈性模式聚类的相似性来识别新的索赔。由于保险欺诈可能会对公司造成数百万美元的损失,因此欺诈检测对公司来说至关重要。这是汽车保险中使用聚类来检测欺诈的白皮书。

7. 乘车数据分析

面向大众公开的 Uber 乘车信息的数据集,为我们提供了大量关于交通、运输时间、高峰乘车地点等有价值的数据集。分析这些数据不仅对 Uber 大有好处,而且有助于我们对城市的交通模式进行深入的了解,来帮助我们做城市未来规划。这是一篇使用单个样本数据集来分析 Uber 数据过程的文章。

8. 网络分析犯罪分子

网络分析是从个人和团体中收集数据来识别二者之间的重要关系的过程。网络分析源自于犯罪档案,该档案提供了调查部门的信息,以对犯罪现场的罪犯进行分类。这是一篇在学术环境中,如何根据用户数据偏好对网络用户进行 cyber-profile 的论文。

9. 呼叫记录详细分析

通话详细记录(CDR)是电信公司在对用户的通话、短信和网络活动信息的收集。将通话详细记录与客户个人资料结合在一起,这能够帮助电信公司对客户需求做更多的预测。在这篇文章中,你将了解如何使用无监督 K-Means 聚类算法对客户一天 24 小时的活动进行聚类,来了解客户数小时内的使用情况。

10.IT 警报的自动化聚类

大型企业 IT 基础架构技术组件(如网络,存储或数据库)会生成大量的警报消息。由于警报消息可以指向具体的操作,因此必须对警报信息进行手动筛选,确保后续过程的优先级。对数据进行聚类可以对警报类别和平均修复时间做深入了解,有助于对未来故障进行预测。


更多高质资源 尽在AIQ 机器学习大数据 知乎专栏 点击关注

转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com