function K_Nearest_Neighbor_Classification
%偶4年前的《模式识别》作业:2008年4月24日
%采用K-近邻法,距离为欧氏距离
%算法视线见《模式识别》P140-P142(各类样本的协方差不相等)
%本问题中取的测试样本数均为50
%N=input('测试样本数 N= ');
K=input('选择近邻的个数(K<=200) K= ');
%随机生成二维正态分布
% X1(:,1)=normrnd(2,sqrt(2),300,1);X1(:,2)=normrnd(3,1,300,1); %N X 2
% X2(:,1)=normrnd(5,2,200,1);X2(:,2)=normrnd(7,sqrt(2),200,1);
X1=mvnrnd([2 3],[2 0;0 1],300);
X2=mvnrnd([5 7],[4 0;0 2],200);
%测试样本
X10=mvnrnd([2 3],[2 0;0 1],50);
X20=mvnrnd([5 7],[4 0;0 2],50);
% N=length(X10);%测试样本个数
% %描绘测试样本各点分布图
for i=1:length(X10)
if i<=length(X20)
plot(X10(i,1),X10(i,2),'rO','LineWidth',2),hold on
plot(X20(i,1),X20(i,2),'b+','LineWidth',2),hold on
else
&
%偶4年前的《模式识别》作业:2008年4月24日
%采用K-近邻法,距离为欧氏距离
%算法视线见《模式识别》P140-P142(各类样本的协方差不相等)
%本问题中取的测试样本数均为50
%N=input('测试样本数 N= ');
K=input('选择近邻的个数(K<=200) K= ');
%随机生成二维正态分布
% X1(:,1)=normrnd(2,sqrt(2),300,1);X1(:,2)=normrnd(3,1,300,1); %N X 2
% X2(:,1)=normrnd(5,2,200,1);X2(:,2)=normrnd(7,sqrt(2),200,1);
X1=mvnrnd([2 3],[2 0;0 1],300);
X2=mvnrnd([5 7],[4 0;0 2],200);
%测试样本
X10=mvnrnd([2 3],[2 0;0 1],50);
X20=mvnrnd([5 7],[4 0;0 2],50);
% N=length(X10);%测试样本个数
% %描绘测试样本各点分布图
for i=1:length(X10)
if i<=length(X20)
plot(X10(i,1),X10(i,2),'rO','LineWidth',2),hold on
plot(X20(i,1),X20(i,2),'b+','LineWidth',2),hold on
else
&

这是一个使用Matlab实现的K-近邻(K-Nearest Neighbor, KNN)分类算法。该算法基于欧氏距离,用于处理两类不同分布的二维正态数据。代码包括了数据生成、测试样本分布图绘制以及KNN分类过程,通过比较测试样本到两类样本点的距离,确定其分类。结果以判别矩阵形式展示分类效果。"
115286248,10832410,使用栈遍历地图的C语言实现,"['数据结构', '栈', 'C语言', '算法', '地图遍历']
最低0.47元/天 解锁文章
8816

被折叠的 条评论
为什么被折叠?



