模式识别(KNNKMEANSFCM).pdf

上传人:qwe****56 文档编号:69629350 上传时间:2023-01-07 格式:PDF 页数:15 大小:313.39KB
返回 下载 相关 举报
模式识别(KNNKMEANSFCM).pdf_第1页
第1页 / 共15页
模式识别(KNNKMEANSFCM).pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《模式识别(KNNKMEANSFCM).pdf》由会员分享,可在线阅读,更多相关《模式识别(KNNKMEANSFCM).pdf(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-1-一、一、K K K K 近邻算法近邻算法1.1.1.1.算法思想算法思想取未知样本的 x 的 k 个近邻,看这 k 个近邻中多数属于哪一类,就把 x 归于哪一类。具体说就是在 N 个已知的样本中,找出 x 的 k 个近邻。设这 N 个样本中,来自1w类的样本有1N个,来自2w的样本有2N个,.,来自cw类的样本有cN个,若ckkk,21分别是 k 个近邻中属于cwww,21类的样本数,则我们可以定义判别函数为:cikxgii,2,1,)(=决策规则为:若iijkxgmax)(=,则决策jwx2.2.2.2.程序代码程序代码%KNN 算法程序function error=knn(X,Y,K

2、)%error 为分类错误率data=X;M,N=size(X);Y0=Y;m0,n0=size(Y);t=1 2 3;%3 类向量ch=randperm(M);%随机排列 1Merror=0;for i=1:10Y1=Y0;b=ch(1+(i-1)*M/10:i*M/10);X1=X(b,:);X(b,:)=;Y1(b,:)=;c=X;m,n=size(X1);%m=15,n=4m1,n=size(c);%m1=135,n=4for ii=1:mfor j=1:m1ss(j,:)=sum(X1(ii,:)-c(j,:).2);endz1,z2=sort(ss);%由小到大排序hh=hist(

3、Y1(z2(1:K),t);w,best=max(hh);yy(i,ii)=t(best);%保存修改的分类结果end-2-error=error+sum(Y0(b,:)=yy(i,:);X=data;enderror=error/M;%算法主程序:clcclear allload iris.mat%iris.mat 中存放 X 为 150*4 的 iris 数据,Y 为 150*1 的分类结果,以下均使用该数据n=0;for i=1:10error=knn(X,Y,1);n=n+error;endcorrect=1-n/103.3.3.3.程序运行结果程序运行结果做十折交叉验证得到:当 K=

4、1 时,正确分类概率为:0.9587当 K=3 时,正确分类概率为:0.9613当 K=5 时,正确分类概率为:0.9640当 K=7 时,正确分类概率为:0.9653当 K=10 时,正确分类概率为:0.9667当 K=30 时,正确分类概率为:0.9480当 K=60 时,正确分类概率为:0.90274.4.4.4.结果分析结果分析从以上的结果我们可以看出当 k 较小时,随着 k 的增加,其正确分类的概率也逐渐增加;然而当 k 增加到一定的值时,即 k 取较大的值时,随着 k 的增加,其正确率并没有随之增加,反而大大降低了。因此在实际中选择 K 的值时应慎重考虑,结合实际结果,选取合适的

5、K值。二、二、K K K K 均值算法均值算法1.1.1.1.算法思想算法思想K-means 算法是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点,通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类内紧凑,类间独立。在下面的算法中,在计算数据样本之间的距离时,采用的欧式距离。其步骤如下:(1)为每一个聚类确定一个初始的聚类中心,这样就有 K 个聚类中心。(2)将样本集中的样本按照最小距离准则分配到最临近聚类(3)使用每个聚类中的样本均值作为新的聚类中心(4)重复步骤 2,3 直到聚类中心不再变化。(5)结束,得到 K 个聚类2.2.2.2.程

6、序代码程序代码-3-%K 均值算法程序function class,num,center=kmeans(x,k,start)n,d=size(x);class=zeros(1,n);%设置 class 为分类结果显示矩阵num=zeros(1,k);%num 保存每一类的个数maxgn=10000;iter=1;while iter maxgn%计算每个数据到聚类中心的距离for i=1:ndist=sum(repmat(x(i,:),k,1)-start).2,2);m,ind=min(dist);class(i)=ind;%将当前聚类结果存入 class 中endfor i=1:k%找到每

7、一类的所有数据,计算他们的平均值,作为下次计算的聚类中心ind=find(class=i);start(i,:)=mean(x(ind,:);num(i)=length(ind);%统计每一类的数据个数enditer=iter+1;endmaxiter=2;iter=1;move=1;while iter 1 是一个可以控制的聚类结果的模糊程度的常数。在不同的隶属度定义方法下最小化损失函数,就可以得到不同的模糊聚类方法。模糊 C 均值 算 法,它 要 求 一 个 样 本 对 于 各 个 聚 类 的 隶 属 度 之 和 为 1,即 满 足:nixucjij,2,1,1)(1=-7-算法的步骤如下

8、:(1)设定聚类数目 c、算法停止阈值和参数 b(2)随机初始化隶属度矩阵 U(3)用当前的聚类中心计算隶属度函数,若隶属度函数小于所给阈值,算法停止。(4)用当前的隶属度函数更新计算各类的聚类中心,转(3)2.2.2.2.程序代码程序代码%模糊 C 均值程序function Correct,Class,Center,Distance,U,Fvalue,Count=fcm(Data,C)%Correct:正确分类概率%Data:聚类的原始数据%C:聚类数目%Center:聚类中心%Distance:聚类中心到各样本点的距离%U:隶属度矩阵%Class:聚类结果,共 C 行,每一行对应一类%Fv

9、alue:目标函数值%Count:算法迭代次数eps=1.0e-10;%算法的迭代停止阈值M=2;%加权指数N,S=size(Data);m=2/(M-1);Count=0;Distance(C,N)=0;U(C,N)=0;Center(C,S)=0;U0=rand(C,N);%随机初始化隶属度矩阵U0=U0./(ones(C,1)*sum(U0);%FCM 的迭代算法while 1Count=Count+1;%迭代次数%计算或更新聚类中心Um=U0.M;Center=Um*Data./(ones(S,1)*sum(Um);%更新隶属度矩阵for i=1:Cfor j=1:NDistance(

10、i,j)=norm(Center(i,:)-Data(j,:);endendU=1./(Distance.m.*(ones(C,1)*sum(Distance.(-m);%计算新的隶属度值Fvalue(Count)=sum(sum(Um.*Distance.2);%聚类损失函数值:类内加权平方误差和ifnorm(U-U0,Inf)N/C*(i-1)&Class.h;%目标函数绘图figure(1),plot(Fvalue)title(目标函数值变化曲线,fontsize,8)-9-figure(2),plot3(Center(:,1),Center(:,2),Center(:,3),rs),h

11、old onfor i=1:Cv=Data(find(Res=i),:);plot3(v(:,1),v(:,2),v(:,3),str(rem(i,12)+1)endgrid on,title(聚类结果图,fontsize,8),hold off%算法主程序:clear all;clc;load iris.mat;fcm(X,3)3.3.3.3.程序运行结果程序运行结果-10-11-12-13-14-画图结果:-15-4.4.4.4.结果分析结果分析从上面运行结果我们可以得到其识别率大致为 89.33%,在迭代了 36 次后,目标损失函数最终收敛于 60.5760。从准确率来看,模糊 c 均值的识别率还是相对较高的,对于类别一的样本可以准确的分类,而对于二、三类的样本中相交叠的部分样本点存在着部分错分情况。由于引进了归一化条件,因此,当样本集不理想的情况下,可能会导致效果不好。比如某个样本点远离各类的聚类中心,本来它严格属于各类的隶属度都很小,但是由于归一化的条件要求,将会使它对各类都有较大的隶属度,从而将会影响迭代结果。另外,由于是一种迭代算法,若初始点设置不当,也容易造成局部最优而非全局最优的情况,从而得到较差的分类结果。故应多次选取不同初始点,运行 FCM 算法,才能得到较为准确的分类结果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com