周继成 蔡冠宇 高尚
摘 要: 从客户信息多维考虑,结合K-means算法原有思想,通过多维聚合来实现对大量客户信息的分类聚合,通过比较数据伸缩率及扩展率来比较了Hadoop上的性能。
关键词: 数据挖掘;K-means;BI;客户信息;聚类算法
中图分类号: TP391.1 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.07.012
本文著录格式:周继成,蔡冠宇,高尚. 基于K-means的多维聚类算法在客户信息中的应用[J]. 软件,2020,41(07):61-65
Application of Multidimensional Clustering Algorithm Based onK-means in Customer Information
ZHOU Ji-cheng1, CAI Guan-yu2, GAO Shang1*
(1. School of Computer Science and Engineering, Jiangsu University of Science and Technology, Zhenjiang 212003, China;2. Zhenjiang Dantu District Science and Technology Bureau, Zhenjiang 212003, China)
【Abstract】: From the customer information multi-dimensional considerations, combined with the original idea of K-means algorithm, through multidimensional aggregation to achieve a large number of customer information clas?sification, through the comparison of data expansion rate and expansion rate to compare the performance of Hadoop.
【Key words】: Data mining; K-means; BI; Customer information; Clustering algorithm
0 引言
在數据越来越重要的时代,如何快速有效的利用现有的大量数据,挖掘潜在的商业机会,为立足先机,成为企业规划未来数据发展战略的重中之重。客户信息是企业最核心且最具有竞争力的,往往最能理解客户需求,针对客户来发展产品,则在市场上就能够占得先机[1-7]。而要做到产品追随客户需求,则需要对市场的客户分布、客户群类做到很精确的判断。在探讨市场发展趋势时,需要对市场的客户群体进行分类聚合,此时就需要数据挖掘的聚类算法对海量的客户历史数据进行处理。在商务智能中,聚类分析算法可以对企业大量的客户信息进行分类,相同类组中的客户在属性特征上就会有高度的相似性,这样有利于针对不同类群的客户开发
针对性的客户产品。但是由于客户属性特征往往都是高达数十个,同时数据量也是数据聚类处理的一个难点,现有的聚类算法在处理多维及大批量数据时,在准确度及时间、空间复杂度上遇到了瓶颈[8-9]。针对这一问题研究的思路是将并行处理技术及多维聚类分析与现有的比较常用的聚类分析算法K-means相结合,探究更加高效的聚类分析方法,提高客户信息分析的准确度。
1 客户数据的预处理
这里以某地产行业客户信息作为例子。该地产公司的客户信息数据来源ERP系统和移动端的APP系统,细分为线索登记、来访及跟进信息、交易阶段相关信息、入伙登记信息、APP会员推广和推荐信息等。在这一阶段需要将所有系统的有关客户信息抽取到对应的目标表中,主要分为客户身份信息和客户事件。地产客户信息结构其执行的过程如下图1所示,设计的客户数据结构如表1。
2 基于Hadoop的多维聚类算法K-means设计
针对客户信息属性多维的特点,以及结合Hadoop的MapReduce算法的设计,以常规的K-means算法为基础,对其进行多维化的扩展。常规的串行K-means算法包含以下几个步骤[10-11]。
(1)从数据对象中有针对性的选择k个客户对象作为初始化聚类中心。
(2)设定最小距离的初步临界值,通过计算每个数据对象与聚类中心的距离,进行初步的分类划分。
(3)根据划分后分聚类中心,重新计算每个聚类的均值,这个均值是可以重新按照第二步骤进行变化的。
(4)计算每一次划分后是否满足函数收敛,如果满足,则算法终止运行,如果条件不满足,则继续2、3步骤。
从上述算法步骤可以看出,K-means算法的主要计算工作是根据设定的最小距离,计算每一个数据对象距离聚类中心的距离,从来能够将数据对象按照不同的簇类进行划分。每一次迭代都是执行在前一次划分的基础之上在初始化聚类中心,从而能够在每次迭代之后对数据对象更细一步的划分。
常见的划分方法有两种,一种是k-均值;另一种是k-中心点,后一种比前一种鲁棒性更优,但是其复杂度相对更高,尤其是大批量的数据。所以从数据量大和客户信息属性较多的状况,采用多维K-means聚类,并为每一个属性聚类加权重,权重按照客户属性的重要性赋值。k-means算法的迭代是通过Map函数及Reduce函数来实现的。
并行处理技术现在最常见的应用是Hadoop架构体系,其是一个成本比较低,开发难度较小,并行处理大规模数据性能较好的云计算平台,特点是可靠性较高、成本相对较低、效率高等[12]。Hadoop平台框架最核心的两个部分:为大量的数据提供存储的HDFS(分布式文件系统);为大数据提供计算模型的MapReduce。Hadoop平台最大的特点集群化体现在它的HDFS集群。集群中会有一个主节点(Namenode)作为集群管理中心,多个从节点作为数据节点。每个节点都可以是一台普通的PC机。MapReduce是一种编程模型,用于大批量数据的并行计算。其主要思想有两个部分,Map(映射)、Reduce(归约)。Map端的主要作用如下。
(1)当数据Input后,会根据分节点的个数来安排数据分片的大小,每一个数据分片对应一个map,Map的输出结果暂且放在内存缓冲区中。这些数据会根据自定义的Map函数生成新的(key,value)键值对。不同类型的类键值对也是不同的。
(2)Shuffle是在Reduce端之前,用于确保输入是Map已经处理排好序的。
(3)Reduce端:会对从Map端传送过来的键值对做递归归约,输入参数是(key,{list value}),通过自定义的Reduce函数处理后,生成新的(key,value)键值对。
Map函数默认的键值对(Key,value)。为了便于计算,可以将客户信息数据按照属性导成文本形式。这里的key即当前文本的数据相对于起始点的位移,value则是对应的位移字符串。文本遍历后,通过value值计算对象与各个中心点的距离,从而找到距離最短的中心簇类。其设计的Map函数如下。
Map((key,value),(key,value))
{
初始时解析value值得到初始值firstvalue;
距离中心聚类的最短距离定义为minvalue,初始化时为最大值;
Dex变量作为key;
K定义为初始聚类中心的个数;
For m=0 to k-1
Do{
Dis=firstvalue;定义每一个对象与第m个聚类中心的距离;
If dis { minValue=dis; index=i; } } Key=index;每一次map函数执行之后将index赋值给key; Value=dis;将dis作为value的值; 输出(key,value) } Reduce函数的输入来源Map之后的分类合并,即(key,V);这里的key是合并后聚类的下标,V是同一聚类的对象值即Map函数得到的value;通过对同一聚类的各个对象value值得相加除以同一聚类的对象个数,即为新的聚类中心的值。伪代码如下。 Reduce((key,V),(key,value)) { SUM[];初始化数组作为每一个聚类对象坐标的累加值。 NUM=0;初始化变量NUM,作为同聚类的对象个数; While(V.hasNext())//hasNext()用于判断是否有下一个同聚类对象; { V.next(num);从next()函数中解析同聚类各位位移及对象个数; NUM+=num; } 数组SUM[]的每一个值与NUM相除,得到各个聚簇中心新的坐标值; 即key变为key; Value的值即各个对象对应的坐标值; 返回(key,value) } 重复Map函数及Reduce,直到达到收敛条件。 3 Hadoop环境下对客户信息的处理 3.1 Hadoop环境和数据来源介绍 本论文探究的是运用K-means实现对地产客户信息的聚类分析,基于数据量及探究的主题,部署的Hadoop环境基于五台PC机,其中一台为服务器虚机,内存为32G。其他四台为PC机和笔记本,配置PC机为双核8G内存,笔记本为12G内存。Hadoop是V2.7.0版本。机器是通过千兆以太网及交换机建立的局域网进行连接互通。 数据来源于某地产客户,其需求是基于现有的客户信息、来访登记信息、客户买房信息等挖掘客户潜在的客户需求,通过对客户不同属性之间的关系的分析,调整市场分布。 由于客户信息属性是多维的,所以在这里主要研究一些带有决策性的属性进行研究。包括以下几个属性:性别、年龄、省份、城市、所属行业、教育程度、婚姻状况、购房用途、工作区域、居住区域、收入水平、家庭状况、职业、兴趣爱好、需求面积、意向楼层、意向单价、线索来源(媒体广告等)等。 3.2 评价指标 指标性能往往基于数据量及平台性能发生变化的,所以在实验环境中通过控制数据量的变化及平台来探讨处理机制的性能,将扩展率、加速比和数据伸缩率作为评价指标,同时潜在的客户信息关联也作为评价条件。 3.3 聚类结果分析 3.3.1 K-means算法性能分析 从数据量级来看,千万级的数据量运行时间比例要比百万级的数据在同等节点数的效率更高,对于Hadoop来说,节点数的变化导致的运行时间及准确率的变化更能体现其集群化并行运算的优势。 图2是K-means算法在Hadoop平台并行运算的加速比,从图中可以看到,加速比随着节点的增加是逐渐增大,Hadoop并行运算提高了K-means聚类分析的效率,但从图中也可以看出,从2个节点到3个节点的时候加速比的增大比例是最大的,影响加速比提高的另一个原因是随着节点的增多,节点之间的通讯开销也是逐渐增大。所以在部署Hadoop集群环境时,节点之间的通讯方式和设备也是需要重点考虑的。同时在图中可以看出百万级的数据量在同等Hadoop环境下,其加速比要比千万级数据量要低一些。 从图3可以看出随着Hadoop平台节点数的增加,K-means算法的扩展率逐渐的降低,这主要是由于Hadoop节点数的增加,导致节点之间的通讯代价增大。但是通过两条折线比较,一条是五百万级别的数据量,另一条是一千万级别的数据量,随着数据量的翻倍,扩展率反而有一定得提高,所以在遇到数据量比较大的情况时,Hadoop平台在做聚类分析时对算法的性能会有一定得提高。 3.3.2 客户信息挖掘分析 首先针对部分客户数据的三个比较重要的属性:性别、收入水平、购房意愿做分析。其中收入水平有一般、中等、较高三个等级;购房意愿有较低、一般、强烈三个等级。可以看出大致可以分为三类,一类是高收入的意愿强烈的男性人群;一类是中等收入的购房意愿一般的女性人群;还有一类是收入较低购房意愿较低的男性人群。 针对客户信息分析结果进行统计,由于该地产公司的主要业务集中在江苏苏南及上海等地,所以统计的客户信息也主要集中在这些地方。从图4到图10可以看出客户主要几个属性所占的比例,结合表3可以看出地产客户群的类别受年龄及地域影响比较大,客户群中又以25-40之间的男性居多,而且需求大多数是为了结婚使用。同时收入水平也是影响购房意愿的重要一个属性。其中中等收入水平的在南京无锡苏州等二三线城市的购房意愿更为强烈。所以针对地产市场,可以增大住宅区的建设,推广人群以25到40岁的人群为主。 4 结论 通过对Hadoop平台及K-means聚类算法的研究,实现了在Hadoop平台上使用K-means对地产客户信息的聚类分析,通过比较运行时间、K-means算法的扩展率以及Hadoop下K-means算法并行运算的加速比,可以发现大批量数据(至少千万级的数据)在多节点的集群Hadoop平台中效率更高,准确率也更好。同时K-means多维属性聚类算法更适合于属性众多的客户信息数据的分析。 参考文献
Gustavo E A, Batista P A, Monard M C. An Analysis of Four Missing Data Treatment Methods for Supervised Learning[J]. Applied Artificial Intelligence, 2003, 17(5/6): 519-533.
Mohameds, Abdelkriml, Alibh, et al. A segmentation method to handwritten word recognition[J]. Neural Network World, 2007, 17(3): 225-236.
Xiang S, Nie F, Zhang C S. Learing a Mahalanobis distance metric for data clustering a classification[J]. Pattern Recognition, 2008.
Yuan S T, Sun J. Ontology-based structured cosine similarity in document summarization: with applications to mobile audio-based knowledge management[J]. System, Man, and Cybernetics, Part B: Cybernetics, IEEE Transaction od, 2005, 35(5): 1028-1040.
Tuomo Korenius, Jorma Laurikkala, Martti Juhola. On principal component analysis, cosine and Euclidean measures in information retrieval. Information Sciences, No. 177, 2007, pp. 4893-4905.
Jun Ye. Cosine similarity measures for intuitionistic fuzzy sets and their applications. Mathematical and Computer Mo?d?eling, 2011, 53: 91-97.
Nikolova E, Jecheva V. Some similarity coefficients and app?lication of data mining techniques to the anomaly-bases IDS [J]. Telecommunication Systems, 2012, 50(2): 127-135.
Gan G., J. Wu, A convergence theorem for the fuzzy subspace clustering (FSC) algorithm, Pattern Recognition, 2008, 41(6): 1939-194.
牛新征, 佘堃. 面向大規模数据的快速并行聚类划分算法研究[J]. 计算机科学, 2012, 39(1): 134-137, 151.DOI:10. 3969/j.issn.1002-137X.2012.01.030.
柳静, 郭红山. 云计算中K-means聚类中心优化求解方法[J]. 科技通报, 2015, 31(10): 100-102.
江小平, 李成华, 向文, 等. K-means聚类算法的MapReduce并行化实现[J]. 华中科技大学学报(自然科学版), 2011, 39(z1): 120-124.
曾令英. 云计算中MapReduce并行计算平台的研究[D]. 哈尔滨工业大学, 2013.