成品网站怎么新建网页,鄂州做网站,网站推广基本方法,淘宝内部卷网站怎么做1. 算法流程1) 通过Matlab产生高斯分布产生两类数据#xff0c;并标明类别2) 数据初始化#xff1a;设置K某个常数(一般为奇数)3) 对于每个测试数据#xff0c;计算其到两类数据的所有点的距离对于上述求得的距离#xff0c;选出K个最小的#xff0c;检…1. 算法流程1) 通过Matlab产生高斯分布产生两类数据并标明类别2) 数据初始化设置K某个常数(一般为奇数)3) 对于每个测试数据计算其到两类数据的所有点的距离对于上述求得的距离选出K个最小的检测这选出的K个值中属于类别1和类别2的个数If Cnt1Cnt2属于类别1Else属于类别22、实验代码clear all;close all;clc;%%第一个类数据和标号mu1[0 0]; %均值S1[0.3 0;0 0.35]; %协方差data1mvnrnd(mu1,S1,100); %产生高斯分布数据plot(data1(:,1),data1(:,2),);label1ones(100,1); %产生100行1列的单位矩阵hold on;%%第二个类数据和标号mu2[1.25 1.25];S2[0.3 0;0 0.35];data2mvnrnd(mu2,S2,100);plot(data2(:,1),data2(:,2),ro);label2label11; %产生100行1列的全为2的矩阵data[data1;data2];%数据合并label[label1;label2];grid on;K11; %两个类K取奇数才能够区分测试数据属于那个类%测试数据KNN算法看这个数属于哪个类for ii-3:0.1:3for jj-3:0.1:3test_data[ii jj]; %测试数据label[label1;label2];%%下面开始KNN算法显然这里是11NN。%求测试数据和类中每个数据的距离欧式距离(或马氏距离)distancezeros(200,1); %产生200行1列的零矩阵for i1:200distance(i)sqrt((test_data(1)-data(i,1)).^2(test_data(2)-data(i,2)).^2); %(xi-X)2(yj-Y)2end%选择排序法只找出最小的前K个数据,对数据和标号都进行排序for i1:Kmadistance(i);for ji1:200if distance(j)madistance(j);label_malabel(j);tmpj;endenddistance(tmp)distance(i); %排数据distance(i)ma;label(tmp)label(i); %排标号主要使用标号label(i)label_ma;endcls10; %统计类1中距离测试数据最近的个数for i1:Kif label(i)1cls1cls11;endendcls2K-cls1; %类2中距离测试数据最近的个数if cls1cls2plot(ii,jj); %属于类1的数据画小黑点endendend3、结果说明本算法的测试数据是坐标轴上的点范围是x[-3,3], y[-3,3];最终结果一类用黑点表示一类用空白表示4、算法结果