首页 / 新闻

12.

14

2015

【干货】分布式机器学习与实战:Transwarp Discover K-means聚类算法

技术博客

 

聚类是研究数据间逻辑上或物理上的相互关系的技术,其分析结果不仅可以揭示数据间的内在联系与区别,还可以为进一步的数据分析与知识发现提供重要依据。在商务上,聚类能帮助市场分析人员从客户基本库中发现不同的客户群,并且用不同的购买模式来刻画不同的消费群体的特征。目前Transwarp Discover中实现的聚类算法包括:K-means、混合高斯、快速迭代和LDA等,用户可以根据数据的类型和特点选择适合的算法进行分析,挖掘出有用的信息。今天我们将要介绍的是如何在Transwarp Discover中使用K-means算法。

 

K-means介绍

 

K-means算法是聚类分析中使用最广泛的算法之一。它把n个对象根据他们的属性分为k个聚类以便使得聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。基本思想如下:

 

Transwarp Discover中的K-means算法:txKmeans

 

Transwarp Discover实现了分布式的K-means算法,名为txKmeans。它通过对输入文件中的训练数据进行学习,生成一个kmeans聚类模型, 具体用法见下:

 

实战用例

 

Transwarp Discover可以从HDFS和Transwarp Inceptor中读取数据。并且可以将数据直接用于txKmeans进行计算,同时Transwarp Discover支持可视化展现,下面以一个简单数据为例进行演示:

 

示例代码:

 

代码执行效果如图。

 

 

右图中,彩色的实心点为数据的散点图,通过txKmeans计算后得到数据的中心为KPoints,蓝色的空心点就是聚类后的中心,该图清晰的展现了txKmeans的聚类效果。

 

实际应用

 

实际生产中,K-means被大量运用的领域之一是电商的商品标签系统。星环科技在为一家大型旅游产品电商打造旅游线路推荐系统时就用到了K-means算法。这家电商数据库中有海量景点,打造推荐系统的第一步是将这些景点进行粗略的聚类,为每一类打上标签,以便下一步的细分。星环科技的系统会从各个景点的描述中获取主题,例如“人文”、“户外”、“美食”等等,得到类似下面的数据:

 

这样,每个景点对应的数据都可以看做一个高维向量:

 

上海东方明珠:(1,0,1,0,…)

上海云南路:(1,1,0,1,...)

上海科技馆:(1,0,1,0,...)

 

这些向量可以让我们将一个个景点看做高维空间中的一个个点。对这些点使用K-means算法,就能够将描述相近的景点聚在一起,得到初步的景点聚类。接下来,利用Transwarp Discover中的其他机器学习算法,比如Apriori算法、协同过滤等,可以进一步打造旅游线路推荐系统。

 

想要了解Transwarp Discover中的Apriori算法、协同过滤等算法吗?请继续关注我们的Transwarp Discover分布式机器学习算法专题