实习报告-近邻法.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习报告-近邻法

K-近邻法 系别: 数学系 专业: 班级: 组员: PAGE \* MERGEFORMAT 5 题目内容 样本 ω1 ω2 ω3 x1 x2 x3 x1 x2 x3 x1 x2 x3 1 0.28 1.31 -6.2 0.011 1.03 -0.21 1.36 2.17 0.14 2 0.07 0.58 -0.78 1.27 1.28 0.08 1.41 1.45 -0.38 3 1.54 2.01 -1.63 0.13 3.12 0.16 1.22 0.99 0.69 4 -0.44 1.18 -4.32 -0.21 1.23 -0.11 2.46 2.19 1.31 5 -0.81 0.21 5.73 -2.18 1.39 -0.19 0.68 0.79 0.87 6 1.52 3.16 2.77 0.34 1.96 -0.16 2.51 3.22 1.35 7 2.2 2.42 -0.19 -1.38 0.94 0.45 0.6 2.44 0.92 8 0.91 1.94 6.21 -0.12 0.82 0.17 0.64 0.13 0.97 9 0.65 1.93 4.38 -1.44 2.31 0.14 0.85 0.58 0.99 10 -0.26 0.82 -0.96 0.26 1.94 0.08 0.66 0.51 0.88 编写K-近邻法程序,对样本点(-0.41,0.82,0.88),(0.14,0.72,4.1),(-0.81,0.61,-0.38)进行分类。 相关概念 在很多情况下,把决策建立在一个最近的样本上有一定风险[1] ,当数据分布复杂或是数据中噪声严重时尤其如此。一种很自然的改进就是引入投票机制,选择前若干个离新样本最近的已知样本,用它们的类别投票来决定新样本的类别,这种方法称作K-近邻法。 其基本结论是:随着K的增加,错误率上逐渐降低;当K趋近于无穷大时,此法的错误率即为贝叶斯错误率。 具体实现 主程序(MATLAB-R2009a)[2] for i=1:30 a(:,i)=Kfenlei(shuju,daifenlei,i); end b=a; 分类(M文件) function [ lei ] = Kfenlei( chushi,dangqian,n ) juli=[]; %%存储各点到当前点的距离 for m=1:3 %%三个未知分类点 for i=1:size(chushi) juli(i,m)=((chushi(i,1)-dangqian(m,1))^2+(chushi(i,2)-dangqian(m,2))^2+(chushi(i,3)-dangqian(m,3))^2)^0.5; %%计算各点到当前点的距离并存储 end geshu=zeros(3,1); %%存储投票数 for j=1:n %%查找n个近邻 a=minx(juli,m); %%查找当前距离最近的 geshu(chushi(a,4),1)=geshu(chushi(a,4),1)+1; %%最近的那组票数加1 juli(a,m)=inf; %%将当前最小值为极大值,以查找下一个最小值 end max=geshu(1,1); %%以第一组的票数作为初始值 zu=1; %%记录下组号 if geshu(2,1)=max %%如果第二组票数大于等于第一组票数 max=geshu(2,1); zu=2; end if geshu(3,1)=max %%如果第三组票数大于等于当前最大票数 max=geshu(2,1); zu=3; end lei(m,1)=zu; %%返回分类结果 end end 求最小值所在行数(M文件) function [a] = minx(juli,m) %%用于只输出单个结果,便于程序运行 zuixiao=inf; %%赋初值为极大值 for i=1:size(juli) if juli(i,m)zuixiao a=i; %%存下当前最小值所对应的行数 zuixiao=juli(i,m);

文档评论(0)

youshen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档