本文介绍了K均值聚类算法(K-Means Clustering Algorithm,以下简称K-Means)相关内容。
简介
K-Means算法是一种迭代求解的聚类分析算法。该算法原理为:先将数据分为K组,随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,将每一个对象分配给距离它最近的聚类中心, 聚类中心以及分配给它们的对象就代表一个聚类。即K-Means算法将输入表的某些列作为特征,根据用户指定的相似度计算方式,将原始数据聚成若干类。
使用场景
K-Means算法被广泛应用于需要对数据记录进行聚类的场景。以下列出了六类使用场景:
文档分类
根据标签、主题和文档内容将文档分为多个不同的类别。
首先,需要对文档进行初始化处理,将每个文档都使用矢量来表示,并采用术语频率识别常用术语的方式来进行文档分类,然后对文档向量进行聚类来识别文档组中的相似性。
客户分类
K-Means算法能帮助营销人员改善他们的客户群(在其目标区域内工作)。并根据客户的购买历史、兴趣或活动监控来对客户类别做进一步分析。
例如:使用K-Means算法可以将电信预付费客户的付费方式分为充值模式、发送短信和浏览网站几个类别。对客户进行分类有助于公司针对特定客户群制定特定的广告。
欺诈检测
K-Means算法在欺诈检测中也扮演着一个至关重要的角色,被广泛应用于汽车、医疗保险和保险欺诈检测领域。利用以往欺诈性索赔的历史数据,根据它和欺诈性模式聚类的相似性来识别新的欺诈。
警报的自动化聚类
大型企业IT基础架构技术组件(如网络、存储或数据库)会生成大量的警报消息,由于警报消息可以指向具体的操作,因此必须对警报信息进行手动筛选,确保后续操作的优先级。对数据进行K-Means聚类可以对警报类别和平均修复时间做深入分析,有助于对未来故障进行预测。
通话记录分析
通话记录(CDR)是电信公司对用户的通话、短信和网络活动信息的记录。将通话详细记录与客户个人资料结合在一起,能够帮助电信公司对客户需求做更多的预测。
识别犯罪地点
K-Means算法可以对城市中特定地区的相关犯罪数据进行分析。分析内容包括犯罪类别、犯罪地点以及两者之间的关联等,可以对城市或区域中容易犯罪的地区做高质量的勘察。
参数说明
下表中的参数为创建模型CREATE MODEL
语法中model_parameter
参数的取值,您可以根据当前需求选择对应的参数。
参数 | 说明 |
n_clusters | 类数量。默认值为4。 |
示例
创建模型与模型离线训练:
/*polar4ai*/CREATE MODEL test_kmeans WITH
(model_class = 'kmeans', x_cols = 'dx1,dx2',
y_cols='',model_parameter=(n_clusters=2))
AS (select * from db4ai.testdata1);
模型预测:
/*polar4ai*/select dx1,dx2 FROM
PREDICT(MODEL test_kmeans,
select * from db4ai.testdata1 limit 10)
WITH (x_cols = 'dx1,dx2',
y_cols='');
x_cols
中的列数据类型必须是浮点型或整型。