首页 > 代码库 > kNN的matlab实现
kNN的matlab实现
参考(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实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。