码迷,mamicode.com
首页 > 其他好文 > 详细

kNN的matlab实现

时间:2016-11-06 17:27:00      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:http   调用   查找   行修改   sina   记录   类别   alt   需要   

参考(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   调用   查找   行修改   sina   记录   类别   alt   需要   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!