本文就将采用改进Fuzzy C-means算法对基于用户特征的微博数据进行聚类分析。
去年,我们为一位客户进行了短暂的咨询工作,他正在构建一个主要基于微博用户特征聚类研究的分析应用程序。
首先对聚类分析作系统介绍。
其次对改进Fuzzy C-means算法进行文献回顾,对其概况、基本思想、算法进行详细介绍。
再是应用了改进Fuzzy C-means算法,本文的数据是由所设计地软件在微博平台上获取的数据,最后得到相关结论和启示。
改进Fuzzy C-means 聚类算法是由 Steinhaus1955 年 Lloyd195年Ball&Hall1965 年 McQueen1967 年分别在各自的不同的科学研究领域独立的提出。 改进Fuzzy C-means聚类算法被提出来后,在不同的学科领域被广泛研究和应用 并发展出大量不同的改进算法。它是研究比较多且应用比较广泛的一种基于划分的聚类算法。具有算法简单、易于实现、品于扩展,并且能够处理大数据集的特点。
聚类分析法概述
目前文献中存在着大量的聚类算法,大体上,聚类分析算法主要分成如下几种,图显示了一些主要的聚类算法的分类。
可下载资源
改进 Fuzzy C-means 算法
Fuzzy C-means算法概述
Fuzzy C-means算法是聚类算法中主要算法之一,它是一种基于划分的聚类算法,是最为经典的,同时也是使用最为广泛的一种基于划分的聚类算法,它属于基于距离的聚类算法。
1967年,J.B.MacQueen提出的Fuzzy C-means算法是目前为止在工业和科学应用中一种极有影响的聚类技术。Fuzzy C-means 算法实现非常简单,运算效率也非常的高,适合对大型数据集进行分析处理。缺点是聚类结果不能重复,聚类结果跟初始点的选择有很大的关系,且不能作用于非凸集的数据。Fuzzy C-means算法对类球形且大小差别不大的类簇有很好的表现,但不能发现形状任意和大小差别很大的类簇,且聚类结果易受噪声数据影响。
应用
为了进一步验证改进Fuzzy C-means算法,本文将采集一批微博数据,通过根据微博用户特征属性对其进行聚类,并得出结论。
数据采集
新浪微博,作为中国的较大的用户使用较受欢迎的微博使用平台之一,从其平台上抽取的微博一定程度上可以反映国内微博平台用户的好友圈子情况。总共获取了130条微博用户数据。为保证数据的有效性,剔除了一部分缺损和低质量的数据后,保留了109条数据。
借鉴已有的相关研究和理论,进一步对数据进行标准化,数据中指标的取值如表所示。
指标 | 取值范围 |
---|---|
你的兴趣爱好是 | 0或1 |
您的朋友中大部分属于 | 同性或异性 |
你觉得自己个性如何 | 内向或者开朗 |
你是否愿意和兴趣相投的人成为朋友 | 愿意或者不愿意 |
您一般选择交什么样的朋友 | 0或1 |
你是否经常参与学生会或者社团组织的活动 | 经常或者偶尔 |
根据本文需求,采用编程软件在新浪微博平台上收集到的相关数据,具体样本实例如图所示,其中,对数据进行标准化
随时关注您喜欢的主题
改进 Fuzzy C-means 过程
本文采用MATLAB软件对数据进行改进Fuzzy C-means聚类分析。
数据挖掘是一个三级过程: 读入数据:通过一系列操作运行数据:把数据送到目的地。
操作的这个顺序被称为数据流,通过每次操作数据流都会随着相关操作发生相关变化,最后,令那些目标数据输出一个模型或者可视化的结果。在MATLAB中,所有流程都与创建和修改数据流有关。本文具体过程如图所示。
结果
具体结果如图所示,将该数据集分为了三类。
[center,U,obj_fcn] =FCMClu(data,4);
plot(data(:,1), data(:,2),'o');
hold on;
index1 = find(U(1,:) == maxU);
index2 = find(U(2,:) == maxU);
改进Fuzzy C-means算法将该样本集分为三类,其中最多的为cluster-3,其次是cluster-2,再者是cluster-1。为了验证该结果的可行性,又采用了R统计软件对样本进行了聚类分析。具体代码如下所示:
得到聚类结果如图所示。
> x=read.table("clipboard"):
> c<-hclust(dist(x),"single")
> plot(c):
结论
本文研究了数据挖掘的研究背景与意义,讨论了聚类算法的各种基本理论包括聚类的形式化描述和定义,聚类中的数据类型和数据结果,聚类的相似性度量和准则函数等。同时也探讨学习了基于划分的聚类方法的典型的聚类方法。本文重点集中学习了研究了 改进Fuzzy C-means聚类算法的思想、原理以及该算法的优缺点。并运用改进Fuzzy C-means算法对所采集的数据进行聚类分析,深化了对该算法的理解。
但是本文也存在非常多的不足,例如未对较多的对改进Fuzzy C-means的改进算法作深刻剖析,数据量较少,再者对改进Fuzzy C-means实验的结果分析还并不到位。在后期中,这些都是值得深刻挖掘的。
参考文献
[1] 中国互联网络信息中心(CNNIC).第33次中国互联网络发展状况统计报告[EB/OL].
[2] 郭宇红,童云海,唐世渭等.数据库中的知识隐藏 [ J ].软件学报,2007, 11 (18) : 278222797.
[3] hehroz S.Khan,Amir Ahmad.Cluster center initialization algorithm for Fuzzy C-means clustering[J].Pattern Recognition Letters 25(2004): 1293-1302.
[4] 王春风,唐拥政.结合近邻和密度思想的K-均值算法的研究[J] 计算机工程应用.2011 年,47(19).147-149.
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!