- 6
- 0
- 约2.01千字
- 约 7页
- 2018-08-28 发布于贵州
- 举报
模式识别的报告书
模式识别实验报告(2)
姓名:某某某
班号:
学号:xxxx
指导老师:马丽
基于kNN算法的遥感图像分类
一、目标:
1. 掌握KNN算法原理
2. 用MATLAB实现kNN算法,并进行结果分析
算法分析:
所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用她最接近的k个邻居来代表。kNN算法的核心思想是如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
三、实验内容:
1.利用所有带标记的数据作为train数据,调用KNN分类函数KNN_Cla()对整个图像进行分类,得到整个图像的分类结果图。
2.随机在所有带标记的数据中选择train和test数据(50%train数据,50%test数据)然后进行kNN分类。随机选择10次,计算总体分类精度OA,然后求平均结果,作为最终对算法的评价。K值依次选择1,3,5,7,9,11,分别用这6种K的取值进行kNN算法,得到每种K值下的总体分类精度OA,然后进行比较。
分类结果:
四、数据介绍:
zy3sample1:资源三号卫星遥感图,Img为读入遥感图生成的400*400*4矩阵。
xy3roi:ROI数据,GT为读入ROI生成的400*400矩阵。
INP_200:INP高光谱数据145*145*200。
92AV3GT_cls:ROI数据45*145。
实验程序:
function [result,OA]=knn_classifier(X_train,Y_train,X_test,Y_test,options)
%% 实现KNN分类
% 输入参数
% X_train : N*D
% Y_train : 1*N
% X_test : N*D
% 输出参数
% result : N*1
% OA : 精确度
for k=1:len%一次处理1个点
len=length(X_test);
d=Euclidian_distance(X_train,X_test(k,:);%计算所有待分类点到所有训练点的距离
[D,n]=sort(d);
ind=n(1:option.K);%找到所有距离中最小的K个距离
for k=1:len%一次处理1个点
C(k)=length(find(Y_train(ind)==k);
end
indc=find(max(C));
result(k)=indc(1);
end;
error=length(find(result~=Y_test));%求出差错率
OA=1-error/len;
实验结果:
zy3sample数据KNN分类结果(K=1):
不同k值下的OA变化曲线图:
心得体会:
这次的程序主要是弄懂KNN算法的思想就可以画出流程图
求出其差错率 找到所有距离中最小的K个距离。
求出其差错率
找到所有距离中最小的K个距离。
算所有待分类点到所有训练点的距离
其实最主要的就是搞清楚中间迭代部分的写法。
基于LDA降维的遥感图像分类
一、实验目标:
1. 掌握PCA和LDA算法原理
2. 用MATLAB实现PCA或者LDA算法,并进行结果分析
(任选一种,也可以都做)
二、算法分析:(LDA)
LDA是线性有监督的降维算法,使得降维后的数据具有最好的类别可分性。
计算类间离差阵SB;
计算各类的类内离差阵SW;
求SW的转置与SB的积的特征值和特征向量;
Y1就等于最大的特征值对应的特征向量的转置与降维前数据矩阵相乘,Y2等于第二大的特征值对应的特征向量的转置与降维前数据矩阵相乘,依次类推,降维后数据的特征数为类别数减一。
三、数据介绍:
INP_200:INP高光谱数据145*145*200。
92AV3GT_cls:ROI数据45*145。
四、实验结果:
第一维 第二维
第三维 第四维
第五维
LDA降维后K
原创力文档

文档评论(0)