1. 算法流程
1) 通过Matlab产生高斯分布产生两类数据,并标明类别
2) 数据初始化:设置K=某个常数(一般为奇数)
3) 对于每个测试数据,
计算其到两类数据的所有点的距离
对于上述求得的距离,选出K个最小的,
检测这选出的K个值中属于类别1和类别2的个数
If Cnt1>Cnt2
属于类别1;
Else
属于类别2;
2、实验代码:
clear all;
close all;
clc;
%%第一个类数据和标号
mu1=[0 0]; %均值
S1=[0.3 0;0 0.35]; %协方差
data1=mvnrnd(mu1,S1,100); %产生高斯分布数据
plot(data1(:,1),data1(:,2),'+');
label1=ones(100,1); %产生100行1列的单位矩阵
hold o