Matlab使用KNN分类

 KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。

如下图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。
 
https://www.cnblogs.com/ybjourney/p/4702562.html

matlab自带knnclssify
https://blog.csdn.net/boyxiaolong/article/details/7062394

matlab中的knnsearch函数
https://blog.csdn.net/qq_33596242/article/details/83689898

ClassificationKNN
https://www.mathworks.com/help/stats/classificationknn.html

ClassificationKNN.fit

mdl = ClassificationKNN.fit(X,Y):基于特征和分类标签返回分类模型。X:每行表示一个特征向量,每列表示特征向量中一个变量。Y:每行代表的是X中特征向量说代表的标签或种类。
mdl = ClassificationKNN.fit(X,Y,Name,Value):value代表K的值

预测过程:1,寻找训练集合X中最靠近Xnew 的K个点(距离的度量采用的欧式距离)

         2,记录这K个点的对应标签Y

         3,把Xnew的标签分配给所有K个标签中概率最大的那一个。
http://www.voidcn.com/article/p-ctglrhch-zb.html

K值是经验值,不同样本构建的模型K值几乎都不同,遇的较多的好像是设置成5。
https://www.tensorflowers.cn/t/484
 

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
KNN(k-最近邻)是一种简单的机器学习算法,可以用于分类和回归问题。在MATLAB中,可以使用以下步骤来使用KNN: 1. 准备数据集:将数据集分为训练集和测试集,并将其存储在MATLAB中。 2. 加载数据集:可以使用MATLAB中的load函数或csvread函数将数据集加载到MATLAB中。 3. 创建KNN分类器:使用fitcknn函数创建一个KNN分类器对象。 4. 训练分类器:使用train函数训练KNN分类器,将训练集作为输入参数。 5. 预测分类使用predict函数将测试集作为输入参数,预测测试集中的每个数据点的分类。 以下是一个简单的MATLAB示例,演示如何使用KNN分类器对Iris数据集进行分类: ```matlab % 加载数据集 load fisheriris % 将数据集分为训练集和测试集 trainIdx = 1:2:150; testIdx = 2:2:150; trainData = meas(trainIdx,:); trainLabels = species(trainIdx); testData = meas(testIdx,:); testLabels = species(testIdx); % 创建KNN分类knnModel = fitcknn(trainData,trainLabels,'NumNeighbors',5); % 训练分类knnModel = train(knnModel); % 预测分类 predictedLabels = predict(knnModel,testData); % 计算准确率 accuracy = sum(strcmp(predictedLabels,testLabels))/length(testLabels); disp(['KNN分类器的准确率为:',num2str(accuracy)]); ``` 在这个示例中,我们首先加载了Iris数据集,将其分为训练集和测试集,并使用fitcknn函数创建了一个KNN分类器对象。然后,我们使用train函数训练了这个分类器,并使用predict函数预测了测试集中的每个数据点的分类。最后,我们计算了KNN分类器的准确率。 请注意,此示例仅供参考。在实际应用中,您可能需要根据数据集和具体问题进行更改和调整。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WX Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值