knn二分类算法matlab
时间: 2023-06-11 10:09:33 浏览: 164
用matlab实现knn分类
4星 · 用户满意度95%
KNN(K-Nearest Neighbors)是一种简单的分类和回归算法,其基本思想是:对于一个新的测试样本,根据其与已知样本的距离,找到距离最近的K个样本,然后根据这K个样本的类别进行投票,将得票最多的类别作为测试样本的类别。
下面是一个简单的KNN二分类算法的MATLAB代码示例:
```matlab
% 加载数据集
load iris_dataset
% 将数据集分为训练集和测试集
[trainInd, testInd] = dividerand(size(irisInputs,2), 0.7, 0.3);
trainInputs = irisInputs(:,trainInd);
trainTargets = irisTargets(:,trainInd);
testInputs = irisInputs(:,testInd);
testTargets = irisTargets(:,testInd);
% 设置K值
K = 5;
% 对测试集中的每个样本进行分类
for i = 1:size(testInputs,2)
% 计算测试样本与训练集中每个样本的距离
distances = sqrt(sum((testInputs(:,i) - trainInputs).^2, 1));
% 找到距离最近的K个样本
[~, indices] = sort(distances);
kNearestTargets = trainTargets(:,indices(1:K));
% 对K个样本的类别进行投票
predictedTarget = mode(kNearestTargets);
% 输出预测结果和真实结果
fprintf('Predicted target: %d, True target: %d\n', find(predictedTarget), find(testTargets(:,i)));
end
```
在这个示例中,我们使用了鸢尾花数据集作为示例数据集。首先,我们将数据集分为训练集和测试集。然后,我们设置K值为5,对于测试集中的每个样本,计算其与训练集中每个样本的距离,找到距离最近的K个样本,并对这K个样本的类别进行投票。最后,输出预测结果和真实结果。
阅读全文