首页 理论教育心律失常大数据集的KMeans聚类分析结果

心律失常大数据集的KMeans聚类分析结果

【摘要】:本节在Hadoop平台上提出了一种基于MapReduce编程思想设计与优化的KMeans并行算法。图5-43KMeans聚类运行结果图5-43是KMeans聚类运行结果,运行结果的上半部分是得到的16类簇的聚类中心,如表5-13所示;下半部分是对452条数据的聚类结果,聚类结果中的数字1~16表示聚类的标签,如表5-5所示。整理统计KMeans聚类运行结果,如表5-14所示。本节在进行基于Hadoop的医学数据聚类算法研究时,以心律失常数据作为实验数据集,利用KMeans聚类算法在Hadoop平台上实现算法。

本节在Hadoop平台上提出了一种基于MapReduce编程思想设计与优化的KMeans并行算法。与传统的KMeans算法相比,设计的并行算法在聚类结果的准确性、加速比、扩展性、收敛性等方面都有显著的提高,降低了因簇密度不均引起误分的概率,提高了算法的聚类精度,并且数据规模越大、节点越多,优化的效果就越明显。

1.基于Hadoop的心律失常数据集的KMeans算法

算法执行过程如下:

Step1执行命令,准备输入文件和加载算法程序文件

Step1.1执行命令cd/usr/local/run,进入hadoop运行路径;

Step1.2执行命令hadoop fs-mkdir-p/jobs/bayes/input/data,创建输入文件目录;

Step1.3执行命令hadoop fs-put test.txt/jobs/bayes/input/data/,进入本地txt文件所在目录,上传txt文件到hdfs;

Step1.4执行命令hadoop jar hadoop-streaming.jar-D stream.non.zero.exit.is.failure=false-input/jobs/Kmeans/input/test.txt-output/output-file Kmeans.py-mapper"python Kmeans.py mapper"--reducer"python Kmeans.py reducer",运行hadoop Streaming命令。

Step2:预处理数据(Mapper阶段)

Step 2.1 line.rstrip('\n').split(',')解析全数据;

Step 2.2 x.append(list(map(eval,item))[1:280])将特征向量加入列表x;

Step 2.3 y.append(list(map(eval,item))[280])将数据特征加入列表y。

Step3在Hadoop平台进行聚类过程(Reducer阶段)

Step3.1 Kmn=KMeans(n_clusters=16,random_state=16).fit(x):设置k=16,并随机选取16个数据作为初始聚类中心,然后重新计算聚类中心,直到距离最小停止计算。

Step4输出聚类中心和聚类结果(Reducer阶段)

Step4.1 ptint(kmn.cluster_centers_)打印聚类中心;

Step4.2 print(kmn.labels_)打印聚类结果。(www.chuimin.cn)

2.实验设计

本节采用的实验环境和Hadoop平台配置与前节相同,实验数据是原数据集,具体类别如表5-5所示。

3.实验及结果本节实验过程:(1)启动hadoop-master;(2)启动hadoop-slave1;(3)启动hadoop-slave2;(4)启动MobaXterm并连接到主机;(5)启动hadoop集群;(6)启动hadoop集群;(7)创建目录并将.txt上传到HDFS中的路径;(8)运行hadoopStreaming命令,与5.5.1节相似。

KMeans聚类实验结果如图5-43所示。

图5-43 KMeans聚类运行结果

图5-43是KMeans聚类运行结果,运行结果的上半部分是得到的16类簇的聚类中心,如表5-13所示;下半部分是对452条数据的聚类结果,聚类结果中的数字1~16表示聚类的标签,如表5-5所示。整理统计KMeans聚类运行结果,如表5-14所示。

表5-13 聚类中心

表5-14 聚类结果

(续表)

表5-14是对聚类结果的统计与说明。与原数据集对比可以推测,14类簇可能代表“正常”这一类;7、8、10、12、15类簇中可能有三个类簇代表“1度房室传导阻滞”“2度房室传导阻滞”“3度房室传导阻滞”;因聚类结果不明显,无法推测出其他类簇代表的类别。

本节在进行基于Hadoop的医学数据聚类算法研究时,以心律失常数据作为实验数据集,利用KMeans聚类算法在Hadoop平台上实现算法。实验结果分为聚类中心和聚类结果两部分,因为16个初始聚类中心是随机选取的,所以每次的结果都不确定,最终的聚类效果不太理想。