MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
全文链接:http://tecdat.cn/?p=30766
原文出处:拓端数据部落公众号
本文就将采用改进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.
相关文章
- matlab怎么fprintf,matlab中的fprintf函数怎么用「建议收藏」
- 手眼标定 matlab源码,经典手眼标定算法matlab
- lasso回归matlab,机器学习Lasso回归重要论文和Matlab代码「建议收藏」
- matlab怎么对语音信号处理,语音信号处理MATLAB程序
- matlab中如何求插值点,MATLAB插值「建议收藏」
- matlab之simulink仿真入门
- matlab 矩阵除法
- matlab矩阵拼接
- 神经网络 – BP神经网络与RBF神经网络模型解决实际问题 – (Matlab建模)
- 遗传算法经典实例matlab_蚁群算法matlab实例
- 遗传算法经典实例matlab代码_遗传算法编码方式
- matlab将txt数据分类,MATLAB读取txt文件,txt里面有字符串和数值两种类型
- matlab维纳滤波器函数_逆滤波器
- matlab plot函数详解_MATLAB的plot
- MATLAB的循环_matlab循环输出
- matlab中的imwrite_medfilt2函数
- matlab画三维约束图命令,Matlab画三维图的方法[通俗易懂]
- MATLAB循环_matlab如何循环计算
- matlab如何通过命令查看主机相关信息
- MATLAB数据挖掘用改进的K-Means(K-均值)聚类算法分析高校学生的期末考试成绩数据
- 人工智能算法:Matlab遗传算法工具箱使用方法
- 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
- 【数字信号处理】线性常系数差分方程 ( 卷积 与 “ 线性常系数差分方程 “ | 使用 matlab 求解 “ 线性常系数差分方程 “ )