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提供了最近邻分类的命令和代码,可以直接调用。

时间: 2024-10-25 07:26:12

kNN的matlab实现的相关文章

kNN(K-Nearest Neighbor)最邻近规则分类

KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近: K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或

机器学习算法---KNN

KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近: K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或

数据挖掘之分类算法---knn算法(有matlab样例)

knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法. 注意,不是聚类算法.所以这样的分类算法必定包含了训练过程. 然而和一般性的分类算法不同,knn算法是一种懒惰算法.它并不是 像其它的分类算法先通过训练建立分类模型.,而是一种被动的分类 过程.它是边測试边训练建立分类模型. 算法的一般描写叙述步骤例如以下: 1.首先计算每一个測试样本点到其它每一个点的距离. 这个距离能够是欧氏距离,余弦距离等. 2. 然后取出距离小于设定的距离阈值的点. 这些点即为依

Python/matlab实现KNN算法

Python 算法伪码: 对未知类别属性的数据集中的每个点依次执行以下操作: 1)计算已知类别数据集中的点与当前点之间的距离: 2)按照距离递增次序排序: 3)选取与当前点距离最小的k个点: 4)确定前k个点所在类别的出现频率: 5)返回前k个点出现频率最高的类别作为当前点的预测分类. 欧氏距离计算: (1)二维平面上两点xA(x1,y1)与xB(x2,y2)间的欧氏距离: (2)三维空间两点xA(x1,y1,z1)与xB(x2,y2,z2)间的欧氏距离: (3)两个n维向量xA(x11,x12

数据挖掘之分类算法---knn算法(有matlab例子)

knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法. 注意,不是聚类算法.所以这种分类算法必然包括了训练过程. 然而和一般性的分类算法不同,knn算法是一种懒惰算法.它并非 像其他的分类算法先通过训练建立分类模型.,而是一种被动的分类 过程.它是边测试边训练建立分类模型. 算法的一般描述过程如下: 1.首先计算每个测试样本点到其他每个点的距离. 这个距离可以是欧氏距离,余弦距离等. 2. 然后取出距离小于设定的距离阈值的点. 这些点即为根据阈值环绕在测试

利用BPSO与KNN进行特征选择及matlab代码实现

这个是本人在做大创项目,师姐做完的特征提取部分代码后,我们利用接收到的结果进行特征选择操作.下面从要求和思路两个部分简单介绍一下:我们通过BPSO结合KNN进行降维的基本思路. 一.要求 学姐给我们的数据一共有4个.mat文件.分别是训练集数据.训练集标签.测试集数据和测试集标签.训练集和测试集分别是60张图片,每张图片提取了1862个特征.因此,我们得到的Train_dataH和Test_data都是60*1862的阵列,标签为60*1的列矩阵.我们观察了标签,发现训练集和测试集都分别是10类

matlab中的knn函数

knn 最邻近分类 Class = knnclassify(test_data,train_data,train_label, k, distance, rule) k:选择最邻近的数量 distance:距离度量 'euclidean'       欧几里得距离,默认的              'cityblock'        绝对差的和              'cosine'           余弦   (作为向量处理)              'correlation'  

MATLAB 图像归一化

matlab图像处理为什么要归一化和如何归一化一.为什么归一化1.   基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响.也就是转换成唯一的标准形式以抵抗仿射变换 图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的. 因为我们这次的图片有好多都是一个系列的,所以老师把这个也作为我研究的一个方向. 我们主要要通过归一化减小医学图片由于光线不均匀造成的干扰.2.matlab里图像数据有时候必须是浮

KNN PCA LDA

http://blog.csdn.net/scyscyao/article/details/5987581 这学期选了门模式识别的课.发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕了一大圈去自己查资料理解,回头看看发现,Ah-ha,原来本质的原理那么简单,自己一开始只不过被那些看似formidable的细节吓到了.所以在这里把自己所学的一些点记录下来,供备忘,也供参考. 1. K-Nearest Neighbor K-NN可以说是一种最直接的用来分类未知数据的方法.基本通过下