MATLAB数据发掘用改进的K-Means(K-均值)聚类算法阐发高校学生的期末测验功效
全文链接:
原文出处:拓端数据部落公家号
本文起首阐了然聚类算法的根本概念,介绍了几种比力典型的聚类算法,然后重点论述了K-均值算法的根本思惟,对K-均值算法的优缺点做了阐发,回忆了对K-均值改进办法的文献,最初在Matlab中利用了改进的K-均值算法对数据停止了阐发。
常用的聚类算法
常用的聚类算法有:K-MEANS、K-MEDOIDS、BIRCH、CURE、DBSCAN、STING。
次要聚类算法分类
类别包罗的次要算法划分的办法K-MEANS算法(K均匀)、K-MEDOIDS算法(K中心点)、CLARANS算法(基于抉择的算法)条理的办法BIRCH算法(平衡迭代规约和聚类)、CURE算法(代表点聚类)、CHAMELEON算法(动态模子)基于密度的办法DBSCAN算法(基于高密度毗连区域)、DENCLUE算法(密度散布函数)、OPTICS算法(对象排序识别)基于收集的办法STING算法(统计信息收集)、CLIQUE算法(聚类高维空间)、WAVE-CLUSTER算法(小波变更)基于模子的办法统计学办法、神经收集办法聚类算法的性能比力
聚类算法合适数据类型算法效率发现的聚类外形能否处置大数据集能否受初始聚类中心影响对反常数据灵敏性对输进数据挨次灵敏性K-MEANS数值型较高凸形或球形能长短常灵敏不灵敏K-MEDOIDS数值型一般凸形或球形否否不灵敏不灵敏BIRCH数值型高凸形或球形能否不灵敏不太灵敏CURE数值型较高肆意外形能否不灵敏不太灵敏DBSCAN数值型一般肆意外形能是灵敏灵敏STING数值型高肆意外形能否一般不灵敏
由表可得到以下结论:1)大部门常用聚类算法只合适处置数值型数据;2)若考虑算法效率、初始聚类中心影响性和对反常数据灵敏性,此中BIRCH算法、CURE算法以及STING算法能得到较好的成果;3)CURE算法、DBSCAN算法以及STING算法能发现肆意外形的聚类。
改进聚类的次要步调
聚类的次要步调由以下几个方面构成:
(1)数据预处置:根据聚类阐发的要求,对输进数据集停止特征原则化及降维等操做。
(2)特征抉择及特征提取:将由数据预处置过程得到的最后始的特征中的最有效的特征抉择出来,并将拔取出来的最有效特征存放于特定的向量中,然后对那些有效特征停止响应的转换,得到新的有效凸起特征。
(3)聚类(分组):根据需要抉择适宜的类似性度量函数对数据集中的数据对象类似水平停止度量,以此停止数据对象的聚类(分组)。
(4)对聚类成果停止评估:根据特定的评判原则对聚类的成果停止有效评估,评估聚类成果的好坏,以此对聚类阐发过程停止进一步的改进和完美。
聚类的次要步调能够用图来表达。
展开全文
改进聚类阐发中的数据类型及聚类原则函数
聚类算法的数据构造:数据矩阵、相异度矩阵。
相异度矩阵:相异度矩阵用来存储的是实体之间的差别性,n个实体的相异度矩阵表达为 n×n维的矩阵,用d(A,B)来表达实体A与实体B的相异性,一般来讲,是一种量化的表达体例,则含有n个实体的聚集X={x1,x2,…,xn}的相异度矩阵表达如下:
d(i,j)表达对象i和j之间的相异性的量化表达,凡是它是一个非负的数值,当对象i和j 越类似或接近,其值越接近0;两个对象越差别,其值越大。而且有d(i,j)=d(j,i),d(i,i)=0。目前最常用的的类似性度量函数为欧式间隔
在MATLAB中利用K-MEANS算法
数据的预处置
本研究的数据是某高校学生的期末测验功效,功效表包罗以下字段: x1为“电子商务”科目功效,x2为“C语言概论”科目根底常识。此中,数据已经颠末原则化和中心化的预处置:
(1)填补缺失值。对退学、转学、休学、缺考形成的数据缺失摘用均匀值法,以该科目标均匀分数填充。
(2)标准化数据。运用最小-更大标准化办法对数据停止标准化处置,将数据映射到[0,1]区间,计算公式如下。
过程及成果阐发
(1)读取数据
抉择MATLAB的Data.mat,通过ImpoMatlabt Files,将所有数据读进。
load('data1.mat')
k = 6;
figure;
%数据原则化
data = zeros(size(data1));
[data(:,1) me(1) va(1)] = dataNormalization(data1(:,1));
(2)K-Means 模子设置
1)NumbeRs of clusteR:造定生成的聚类数目,那里设置为3.
2)定义了朋分数据集,抉择操练数据集做为建模数据集,并操纵测试数据集对模子停止评判。
[idx c] = kmeansOfMy(data,k);
c = dataRecovery(c,me,va);
%画出各个区域中的散点
count = 0;
for i = 1 : k
if i == 1
plot(data1(idx == i,1),data1(idx == 1,2),'r*');
elseif i == 2
plot(data1(idx == i,1),data1(idx == i,2),'g*');
elseif i == 3
(3)施行和输出
设置完成后,选中Execute 按钮,即可得到改进聚类施行并看察到成果。
%kOfVertex = randKOfVertex(k);
kOfVertex = electedInitialCentroid(k);
for i = 1 : size(data,1)
index(i) = minOfDistans(i,kOfVertex);
能够以图表的形式来展现模子的统计信息以及各个属性在各簇中的散布信息,成果如下图所示。
(4)聚类成果
成果表白:簇1中的学生都是测验功效中等的,簇2中的学生测验功效较高,簇2中的学生测验功效较差,可见,大部门学生的期末测验功效处于中等程度;各变量在各簇中的显著水平均较大,表白学生对各科目标进修分化水平较高,差别显著。
参考文献
[1] 贺玲, 吴玲达, 蔡益朝. 数据发掘中的聚类算法综述[J]. 计算机利用研究, 2007(1).
[2] 蒋帅. K-均值聚类算法研究[D]. 陕西师范大学, 2010.
[3] 周涓, 熊忠阳, 张玉芳, 等. 基于更大最小间隔法的多中心聚类算法[J]. 计算机利用, 2006, 26(6).
[4] A.K.Jain, MATLAB.C.Dubes. AlgoMatlabithms foMatlab ClusteMatlabing Data [J]. PMatlabentice-Hall Advanced MATLABefeMatlabence SeMatlabies, 1988(1).
更受欢迎的观点
1.R语言k-Shape算法股票价格时间序列聚类
2.R语言基于温度对城市条理聚类、kmean聚类、主成分阐发和Voronoi图
3.R语言对用电负荷时间序列数据停止K-medoids聚类建模和GAM回回
4.r语言鸢尾花iris数据集的条理聚类
5.Python Monte Carlo K-Means聚类实战
6.用R停止网站评论文本发掘聚类
7.R语言KMEANS均值聚类和条理聚类:亚洲国度地域生活幸福量量异同可视化
8.PYTHON用户流失数据发掘:成立逻辑回回、XGBOOST、随机丛林、决策树、撑持向量机、纯朴贝叶斯模子和KMEANS聚类用户画像
9.R语言基于Keras的小数据集深度进修图像分类