k临近算法 matlab代码
时间: 2023-11-10 12:49:42 浏览: 46
K临近算法(K-nearest neighbors algorithm)是一种常用的分类算法,可以用于解决分类问题。下面是一个简单的K临近算法的Matlab代码示例:
```matlab
% 训练数据
trainData = [1, 1; 1, 2; 2, 2; 4, 3; 3, 2; 3, 4];
trainLabel = [1; 1; 1; 2; 2; 2];
% 测试数据
testData = [2.5, 3];
% 设置K值
K = 3;
% 计算测试数据与训练数据的距离
distances = zeros(size(trainData, 1), 1);
for i = 1:size(trainData, 1)
distances(i) = norm(testData - trainData(i, :));
end
% 根据距离排序并取前K个最近的样本
[sortedDist, indices] = sort(distances);
kNearestLabels = trainLabel(indices(1:K));
% 根据K个最近的样本进行投票,选取出现次数最多的类别作为预测结果
predictedLabel = mode(kNearestLabels);
disp('预测结果:');
disp(predictedLabel);
```
这段代码中,首先定义了训练数据`trainData`和对应的标签`trainLabel`,然后定义了测试数据`testData`和K值。接下来,计算测试数据与训练数据之间的距离,并根据距离排序取前K个最近的样本。最后,根据K个最近的样本进行投票,选取出现次数最多的类别作为预测结果。
请注意,这只是一个简单的示例,实际使用时可能需要根据具体情况进行修改和扩展。