温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何理解R语言分类算法中的距离判别

发布时间:2021-11-22 14:15:44 来源:亿速云 阅读:225 作者:柒染 栏目:云计算

如何理解R语言分类算法中的距离判别,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1.距离判别原理分析
根据待判定样本与已知类别样本之间的距离远近做出判断.根据已知类别样本信息建立距离判别函数式,再将各待判定样本的属性数据逐一代入式中计算,得到距离值,再根据此将样本判入距离值最小的类别的样本簇.
K最近邻算法则是距离判别法中使用最为广泛的,他的思路是如果 一个样本在特征空间中的K个最相似/最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别.
图中3个实心表示样本点,其周围分布着若干分别用圆形,三角形,正方形空心点表示出的三种已知类别的样本点.现在我们取K=5,即圈出与待分类样本点最相近的5个样本点,然后查看他们的类别.这5个点中属于哪个类别的样本多,该未知样本就属于哪个类别.易得未知样本(从左到右)依次属于圆形,三角形,正方形.
K最近邻方法进行判别时,由于其主要依靠周围有限邻近样本的信息,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待份样本集来说,该方法较其他方法更为合适.
如何理解R语言分类算法中的距离判别
2.在R语言中的应用
在K最近邻(K-Nearest Neighbor,KNN)算法中我们主要用到了class包里面的
knn(train,test,cl,k=1,1=0,prob=FALSE,use.all=TRUE)函数。
而在有权重的k最近邻(Weighted K-NearestNeighbor,KKNN)我们主要用到了kknn包里的
kknn(formula=formula(train),train,test,na.action=na.omit(),k=7,distance=2,kernel=”optimal”,ykernel=NULL,scale=TRUE,contrasts=c(‘unordered’=”contr.dummy”,ordered=”contrl.rodinal”))函数。
3.以iris数据集为例进行判别分析
1)应用模型并观察输出结果

library(kknn)
fit_pre_kknn=kknn(Species~.,data_train,data_test[,-5],k=5)fit_pre_kknn[1:length(fit_pre_kknn)]

如何理解R语言分类算法中的距离判别
如何理解R语言分类算法中的距离判别
如何理解R语言分类算法中的距离判别


2)检测模型准确度

table(data_test$Species, fit_pre_kknn$fitted.values)
sum(as.numeric(as.numeric(fit_pre_kknn $fitted.values)!=as.numeric(data_test$Species)))/nrow(data_test)

如何理解R语言分类算法中的距离判别

看完上述内容,你们掌握如何理解R语言分类算法中的距离判别的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI