首页 > 其他 > 详细

kNN的matlab实现

时间:2016-11-06 17:26:43      阅读:217      评论:0      收藏:0      [点我收藏+]

参考(http://blog.sina.com.cn/s/blog_8bdd25f80101d93o.html),最后几行修改为

%k近邻,取k=7,交叉验证法如何确定k的值???? %选取7个最小值,用最简单的比较法试

M=[];

for i=1:210    

M=[M distance(x,y,xnew(i,1),xnew(i,2))];

end

Mnew=sort(M);

for i=1:7 array(i)=find(M==Mnew(i)); end

plot(xnew(array,1),xnew(array,2),‘r‘)

技术分享
 
方块点 是测试点,对应的7个最近邻用红线相连。
 
可见,为了得到测试点的分类结果,需要把最近邻的下标记录下来,进而能查到最近邻的类别。其方法是,首先计算测试点到所有点的距离,再由小到大排序,可得到多个最小的距离;进而用find函数查找这些值在所有距离数据中的位置,也就是对应的最近邻的下标。进一步可得到最近邻的类别。简单扩展后,能得到分类成功率,评价最近邻数目的影响,得到更合适的参数。
 
当然,matlab提供了最近邻分类的命令和代码,可以直接调用。

kNN的matlab实现

原文:http://www.cnblogs.com/machine-learning-cwz/p/6035475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!