- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)