⛄一、1KNN算法思想

K近邻算法(KNN,K nearest neighbor algorithm)是机器学习中一种基本的分类与回归方法,其主要原理是通过对不同测试样本之间的距离进行量测,而后寻找最为相近的K个样本来进行分类,具有简单、直观、实用、分类准确的特点。整个过程主要为首先对样本之间距离进行测量计算,随后选择合适的超参数(在算法运行前需要决定的参数也就是需要决定的K值)对整个原始数据集(包含训练数据集和测试数据集)进行数据归一化处理(即将所有数据映射到同一标准),最终在确定近邻列表后进行分类预测。K近邻算法的核心在于K的选择、距离度量、分类规则的确定。该算法易于理解和实现,在诸如体育、通信、人工智能图像识别等领域有着广泛的应用。在医疗领域,K近邻算法同样也有着广泛的分类应用。

⛄二、部分源代码

close all
clear
clc
addpath(genpath(cd))
%% load the data
% load winedata.mat
load breast-cancer-wisconsin
% load ionosphere
% load Parliment1984
% load heartdata
load lymphography
%%
% preprocess data to remove Nan entries
for ii=1:size(Tdata,2)
nanindex=isnan(Tdata(:,ii));
Tdata(nanindex,:)=[];
end
labels=Tdata(:,end); %classes
attributesData=Tdata(:,1:end-1); %wine data
% for ii=1:size(attributesData,2) %normalize the data
% attributesData(:,ii)=normalize(attributesData(:,ii));
% end
[rows,colms]=size(attributesData); %size of data
%% seprate the data into training and testing
[trainIdx,~,testIdx]=dividerand(rows,0.8,0,0.2);
trainData=attributesData(trainIdx,:); %training data
testData=attributesData(testIdx,:); %testing data
trainlabel=labels(trainIdx); %training labels
testlabel=labels(testIdx); %testing labels
%% KNN classification
Mdl = fitcknn(trainData,trainlabel,‘NumNeighbors’,5,‘Standardize’,1);
predictedLables_KNN=predict(Mdl,testData);
cp=classperf(testlabel,predictedLables_KNN);
err=cp.ErrorRate;
accuracy=cp.CorrectRate;

⛄三、运行结果

【KNN分类】基于matlab模拟退火优化KNN、蝗虫算法优化KNN数据分类【含Matlab源码 2275期】-LMLPHP
【KNN分类】基于matlab模拟退火优化KNN、蝗虫算法优化KNN数据分类【含Matlab源码 2275期】-LMLPHP
【KNN分类】基于matlab模拟退火优化KNN、蝗虫算法优化KNN数据分类【含Matlab源码 2275期】-LMLPHP

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]王景文,李伟,李永彬.基于KNN的中医胃疼病患者分类研究[J].电脑与信息技术. 2019,27(05)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

12-18 08:08