clear all;
%导入数据
load x;
load y;
COL1 = size(x,2);
COL2 = size(y,2);
%确定k,testData,trainData,label_train的值
trainData = [x y];
a = ones(1,COL1);
b = 2*ones(1,COL2);
label_train = [a b];
%划分剪辑样本集和参考样本集
data_edited_x = x(:,1:(0.5*COL1));
data_edited_y = y(:,1:(0.5*COL2));
data_refer_x = x(:,(0.5*COL1+1):COL1);
data_refer_y = y(:,(0.5*COL2+1):COL2);
data_edited = [data_edited_x data_edited_y];
data_refer = [data_refer_x data_refer_y];
a1 = ones(1,(0.5*COL1));a2 = 2*ones(1,(0.5*COL2));
a3 = ones(1,(0.5*COL1));a4 = 2*ones(1,(0.5*COL2));
label_edited = [a1 a2];
label_refer = [a3 a4];
%对剪辑样本集进行剪辑
k1 = 5;
[label_edited_test,class_edited1,class_edited2] = KNN(k1,data_refer,label_refer,data_edited);
unlike = find(label_edited ~= label_edited_test);
data_edited(:,unlike) = [];
label_edited(:,unlike) = [];
datax_edited = find(label_edited == 1);
datay_edited = find(label_edited == 2);
%确定k,testData,trainData,label_train的值
testData = [-0.7303 1.4445 -1.2587 1.2617 0.7302;2.1624 -0.1649 0.9187 -0.2086 1.6587];
k2_1 = 5;
k2_2 = 7;
k2_3 = 13;
%k-近邻法判断测试点的类别
[label_test_k5,class1_k5,class2_k5] = KNN(k2_1,trainData,label_train,testData);
[label_test_k7,class1_k7,class2_k7] = KNN(k2_2,trainData,label_train,testData);
[label_test_k13,class1_k13,class2_k13] = KNN(k2_3,trainData,label_train,testData);
%剪辑近邻法判断测试点的类别
[label_test_e5,class1_e5,class2_e5] = KNN(k2_1,data_edited,label_edited,testData);
[label_test_e7,class1_e7,class2_e7] = KNN(k2_2,data_edited,label_edited,testData);
[label_test_e13,class1_e13,class2_e13] = KNN(k2_3,data_edited,label_edited,testData);
%——————————————————————————————————————————————————————————————
%————————————————————————图 像 绘 制 区————————————————————————
%画图初始样本集和分类结果
figure(1);
subplot(2,3,1);
plot(x(1,:),x(2,:),'ro');
hold on
plot(y(1,:),y(2,:),'b*');
hold on
plot(testData(1,class1_k5),testData(2,class1_k5),'bo');
hold on
plot(testData(1,class2_k5),testData(2,class2_k5),'r*');
title('k=5时k-近邻法样本点和测试点的分布情况')
subplot(2,3,2);
plot(x(1,:),x(2,:),'ro');
hold on
plot(y(1,:),y(2,:),'b*');
hold on
plot(testData(1,class1_k7),testData(2,class1_k7),'bo');
hold on
plot(testData(1,class2_k7),testData(2,class2_k7),'r*');
title('k=7时k-近邻法样本点和测试点的分布情况')
subplot(2,3,3);
plot(x(1,:),x(2,:),'ro');
hold on
plot(y(1,:),y(2,:),'b*');
hold on
plot(testData(1,class1_k13),testData(2,class1_k13),'bo');
hold on
plot(testData(1,class2_k13),testData(2,class2_k13),'r*');
title('k=13时k-近邻法样本点和测试点的分布情况')
%画图剪辑后样本集和分类结果
subplot(2,3,4);
plot(data_edited(1,datax_edited),data_edited(2,datax_edited),'ro');
hold on
plot(data_edited(1,datay_edited),data_edited(2,datay_edited),'b*');
hold on
plot(testData(1,class1_e5),testData(2,class1_e5),'bo');
hold on
plot(testData(1,class2_e5),testData(2,class2_e5),'r*');
title('k=5时剪辑近邻法样本点和测试点的分布情况')
subplot(2,3,5);
plot(data_edited(1,datax_edited),data_edited(2,datax_edited),'ro');
hold on
plot(data_edited(1,datay_edited),data_edited(2,datay_edited),'b*');
hold on
plot(testData(1,class1_e7),testData(2,class1_e7),'bo');
hold on
plot(testData(1,class2_e7),testData(2,class2_e7),'r*');
title('k=7时剪辑近邻法样本点和测试点的分布情况')
subplot(2,3,6);
plot(data_edited(1,datax_edited),data_edited(2,datax_edited),'ro');
hold on
plot(data_edited(1,datay_edited),data_edited(2,datay_edited),'b*');
hold on
plot(testData(1,class1_e13),testData(2,class1_e13),'bo');
hold on
plot(testData(1,class2_e13),testData(2,class2_e13),'r*');
legend('第一类样本点','第二类样本点','第一类测试点','第二类测试点');
title('k=13时剪辑近邻法样本点和测试点的分布情况')
%——————————————————————————————————————————————————————————————
%——————————————————————————————————————————————————————————————
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
有两个类别的样本 x 和 y,两类样本的分布规律服从正态分布,其均值和方差 分别为(2,2),(-2,4),每个类别里面分别有 100 个样本。可以利用下面阐述的 Matlab 程序产生上述数据。每一类的数据都是二维数据形式,若设数据格式为第一 行为横坐标,相应的下一行对应的是纵坐标请使用 k-近邻法判断下列 sample 中样本的分类情况 (-0.7303,2.1624),(1.4445,-0.1649),(-1.2587,0.9187),(1.2617,-0.2086),(0.7302, 1.6587) 1、要求用 Matlab 编程,来确定分类的情况,并以图形的方式表示出来。附 Matlab 程序以及对应程序说明。 2、分析k值的不同对分类的情况是否有影响,并把结果用图形的方式表示出来。 3、 请根据剪辑方法近邻的原理,对样本的空间进行剪辑,再确定上述样本点的 分类情况。并对两种分类结果进行分析(选作)。
资源推荐
资源详情
资源评论
收起资源包目录
experiment5.zip (7个子文件)
experiment5
x.mat 2KB
KNN.m 744B
data_acquisition.m 187B
y.mat 2KB
k_edit_near.m 5KB
result.mat 275B
l2_distance.m 482B
共 7 条
- 1
资源评论
Universe&Black
- 粉丝: 2
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功