K最邻近法KNN分类算法(多点分类预测)

代码及数据下载地址:https://download.csdn.net/download/weixin_37928884/87239775

clear;clc;close all;
% 多点分类预测
X=load('datingTestSet2.txt');

ratio=0.1;%测试数据所占比例
[N,M]=size(X);
K=4;
trainData=X(:,1:3);
trainClass=X(:,4);
num_test=N*ratio;
% KNN分类归一化处理仅对训练数据归一化即可
% newData=(oldData-minValue)/(maxValue-minValue);
minValue=min(trainData);
maxValue=max(trainData);

trainData=(trainData-repmat(minValue,N,1))./(repmat(maxValue-minValue,N,1));

error=0;
for i=1:num_test
    idx=FUNKNN(trainData(num_test+1:N,:),trainClass(num_test+1:N,:),trainData(i,:),K);
    fprintf('该测试数据的真实类为:%d\n',trainClass(i,:));
    if idx~=trainClass(i,:);
        error=error+1;
    end
end

fprintf('准确率为:%f\n',1-error/num_test);

你可能感兴趣的:(算法,分类,KNN,MATLAB)