当前位置:首页 > 数据的多流形结构分析 - 图文
4.4.3结果分析
对于图(a),我们运用了不同的算法进行处理,通过计算不同算法的聚类错误率,我们得到如下表格:
表4 不同算法的聚类错误率比较 算法 LRR SSC LRSSC 本章算法 聚类错误率 34.3% 27.8% 15.7% 4.2% 从上面的表格可以看出,我们所选用的算法的聚类错误率是最低的,因此对这组数据的分类是有效的。
对于图(b),我们选用类内类间距离来评判把数据分为几类是最优的。 在点集X?{x1,x2,?xn}中,x是X的中心,X?为m个类的数据点集,
X?{a1,a2,?,am},||ai||?ni,?ni?n,ai为类ai的中心,ai?{xi1,xi2?xin},其中ai*i?1m为中心点构成,根据类间偏差平方和和类内偏差平方和之间的差的绝对值越小,分类效果越好。类间偏差平方和为Sbetween??ni(ai?x)2,类内偏差平方和为
i?1mSinter???(xij?ai)。分别计算将题中图像分为两类、三类、四类的类间偏差平方和和
i?1j?1mni2类内偏差平方和之间的差的绝对值,通过计算|Sbetween?Sinter|,发现分成两类的的值最小,所以,分成两类的效果最优。
五、模型的评价
本文主要对数据进行聚类,通过很多聚类的算法对各种数据类型进行聚类。 5.1模型的优点
(1) 拉普拉斯特征映射降维的算法可以将高维数据进行降低维数,降低了算法的复杂度。
(2) 谱聚类的算法不用对数据的全局结构作假设,并且具有识别非凸分布聚类的能力,非常适合于许多实际问题。
(3) 流形距离能更好地反映这种空间的复杂分布特性。
(4) 基于拓扑距离度量的流形聚类考虑了数据集的整体分布。
(5) 分类之后的类间偏差平方和和类内偏差平方和之间的差的绝对值能更好地评价分类结果。
5.2模型的缺点
(1) 对许多真实世界中的数据集,由于采样密度稀疏,会使得所寻找的局部邻域结构产生偏差。 (2) 多流形上存在噪声时,数据点并不是精确地位于某一个流形上,将会影响数据的划分。
20
六、参考文献
[1]韩晓红,胡彧.K-means聚类算法的研究[J].太原理工大学学报,2009,40(3).
[2] G. Liu, Z. Lin, S. Yan, J. Sun, Y. Yu, and Y. Ma. Robust recovery of subspace structures by low-rank representation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 35(1):171–184, 2013.
[3] B. Cheng, G. Liu, J. Wang, Z. Huang, and S. Yan, Multi-task low rank affinity pursuit for image segmentation, ICCV, 2011.
[4] 刘建华. 基于隐空间的低秩稀疏子空间聚类[J].西北师范大学学报,2015,51(3) [5]Xiang yang Liu,Hongtao Lu,Multi—Manifold Modeling for Head Pose Estimation,in Proc.IEEE International Conference on Image Processing (ICIP),I:3277-3280,Hong Kong,Sep.2010.
[6]郭启勇.流形聚类的算法研究及其应用[D].复旦大学,2009.
[7]黄启宏.流形学习方法理论研究及图像中应用[D].电子科技大学,2007.
[8]Guillaume Obozinski,Ben Taskar,Michael I. Jordan. Joint covariate selection and joint subspace selection for multiple classification problems[J].Statistics and Computing . 2010 (2).
21
七、附录
问题1主要程序:
load('C:\\Users\\jsw\\Downloads\\2015研究生试题\\2015赛题\\B\\0915版本\\数据\\第1题数据\\1.mat') >> data=data';
>> [u re]=KMeans(data,2); 问题2(a)图主要程序:
load('C:\\Users\\jsw\\Downloads\\2015研究生试题\\2015赛题\\B\\0915版本\\数据\\第2题数据\\2a.mat') >> X=data;
CMat = admmLasso_mat_func(X,true,100); C = CMat;
CKSym = BuildAdjacency(thrC(C,1)); grps = SpectralClustering(CKSym,2); data=data’; for i=1:340 if(grps(i,1)==1)
plot(data(i,1),data(i,2),'*'); hold on else
plot(data(i,1),data(i,2),'r+'); hold on end end
问题2(b)图主要程序:
CMat = admmLasso_mat_func(X,false,20); C = CMat;
CKSym = BuildAdjacency(thrC(C,1)); grps = SpectralClustering(CKSym,3); data=data’; for i=1:300 if(grps(i,1)==1)
plot3(data(i,1),data(i,2),data(i,3),'*'); hold on
else if(grps(i,1)==2)
plot3(data(i,1),data(i,2),data(i,3),'r+'); hold on else
plot3(data(i,1),data(i,2),data(i,3),'g.'); hold on end end end end
问题2(c)图主要程序:
>> load('C:\\Users\\jsw\\Downloads\\2015研究生试题\\2015赛题\\B\\0915版本\\数据\\第2题数据\\2c.mat')
>> CMat = admmLasso_mat_func(X,false,20);
22
C = CMat;
CKSym = BuildAdjacency(thrC(C,1)); grps = SpectralClustering(CKSym,3); data=data’; d=pdist(data);
>> W=squareform(d); >> N=tril(W,0); >> s=sum(N); >> D=diag(s); >> L=D-N;
>> [Q,A]=eigs(L,2); >> [u re]=KMeans(Q,2); for i=1:400 if(grps(i,1)==1)
plot(data(i,1),data(i,2),'*'); hold on else
plot(data(i,1),data(i,2),'r+'); hold on end end
问题2(d)图主要程序:
load('C:\\Users\\jsw\\Downloads\\2015研究生试题\\2015赛题\\B\\0915版本\\数据\\第2题数据\\2d.mat')
>> CMat = admmLasso_mat_func(X,false,20); C = CMat;
CKSym = BuildAdjacency(thrC(C,1)); grps = SpectralClustering(CKSym,3); data=data’; d=pdist(data);
>> W=squareform(d); >> N=tril(W,0); >> s=sum(N); >> D=diag(s); >> L=D-N;
>> [Q,A]=eigs(L,2); >> [u re]=KMeans(Q,2); for i=1:400 if(grps(i,1)==1)
plot(data(i,1),data(i,2),'*'); hold on else
plot(data(i,1),data(i,2),'r+'); hold on
23
共分享92篇相关文档