算法1-KNN算法及其matlab实现是怎样的
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,算法1-KNN算法及其matlab实现是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、算法概述1、kNN算法又称为k近邻分类(
千家信息网最后更新 2025年01月26日算法1-KNN算法及其matlab实现是怎样的
算法1-KNN算法及其matlab实现是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、算法概述
1、kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。kNN算法则是从训练集中找到和新数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:训练集、距离或相似的衡量、k的大小。
计算步骤如下:
1)算距离:给定测试对象,计算它与训练集中的每个对象的距离
2)找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻
3)做分类:根据这k个近邻归属的主要类别,来对测试对象分类
2、距离或相似度的衡量
什么是合适的距离衡量?距离越近应该意味着这两个点属于一个分类的可能性越大。距离衡量包括欧式距离、夹角余弦等。
3、类别的判定
投票决定:少数服从多数,近邻中哪个类别的点最多就分为该类。
加权投票法:根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)
clear;
clc;
K=3;
trainData = [1.0,2.0;
1.2,0.1;
0.1,1.4;
0.3,3.5];
trainClass = [1,1,2,2];
testData = [0.5,2.3];
[N,M]=size(trainData);
%计算训练数据集与测试数据之间的欧氏距离dist
dist=zeros(N,1);
for i=1:N
dist(i,:)=norm(trainData(i,:)-testData);
end
%将dist从小到大进行排序
[Y,I]=sort(dist,1);
%将训练数据对应的类别与训练数据排序结果对应
trainClass=trainClass(I);
%确定前K个点所在类别的出现频率
classNum=length(unique(trainClass));%取集合中的单值元素的个数
labels=zeros(1,classNum);
for i=1:K
j=trainClass(i);
labels(j)=labels(j)+1;
end
%返回前K个点中出现频率最高的类别作为测试数据的预测分类
[~,idx]=max(labels);
fprintf('该测试数据属于类 %d\n',idx);
%% f方法二更简单
labels=trainClass;
idx=mode(labels(1:K));%mode函数求众数
fprintf('该测试数据属于类 %d ',idx);
看完上述内容,你们掌握算法1-KNN算法及其matlab实现是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
数据
算法
类别
测试
分类
训练
对象
近邻
方法
投票
相似
内容
更多
权重
问题
频率
排序
合适
最高
束手无策
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
十诫下载软件开发
蔡甸区国际网络安全维护联系人
天象网络技术有限公司游戏
建立居民数据库
北京大学图书馆数据库资源
数据库连接配置怎么看
软件开发开箱照
全国网络安全执法大检查行动
数据库中serial什么意思
阿里云服务器异常黑洞
网络安全员入门
苹果python软件开发
奉贤区管理软件开发大概费用
计算机软件开发工程师考试科目
甲骨文的数据库
网络安全产品营销建议
重庆琢岳互联网科技电话
janus添加服务器
英国网络安全审查制度研究
数据库的ip地址
mdf 数据库还原
吉利软件开发招聘
电梯ic卡不能识别数据库
融媒体中心网络安全请示
服务器上的u盘影响起动么
数据库类型面试
河北系统软件开发多少钱
绵阳网络技术预算
南方cass建立数据库
北京软件开发学校哪家好