R语言 判别分析小结

判别分析是用于分类的技术,包括距离判别、Fisher判别和Bayes判别。R语言中的MASS包提供了lda和qda函数进行线性和二次判别分析,但需满足正态总体和协方差条件。文章介绍了如何在R中进行判别分析,并提到了贝叶斯判别分析的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判别分析(discriminant analysis)是一种分类技术。它通过一个已知类别的“训练样本”来建立判别准则,并通过预测变量来为未知类别的数据进行分类。

判别分析的方法大体上有三类,即距离判别、Fisher判别和Bayes判别和。距离判别思想是根据已知分类的数据计算各类别的重心,对未知分类的数据,计算它与各类重心的距离,与某个重心距离最近则归于该类。Fisher判别思想是投影降维,使多维问题简化为一维问题来处理。选择一个适当的投影轴,使所有的样品点都投影到这个轴上得到一个投影值。对这个投影轴的方向的要求是:使每一组内的投影值所形成的组内离差尽可能小,而不同组间的投影值所形成的类间离差尽可能大。Bayes判别思想是根据先验概率求出后验概率,并依据后验概率分布作出统计推断。

用R进行判别分析的方法在MASS包,里面有lda(线性)和qda(二次)
注意使用条件:1、正态总体,2、协方差相同(线性)/不同(二次)

1、线性的判别分析

#载入相关包和数据集
library(MASS)
library(sampling)
#把iris重新赋值,并加入分类标记和行号标记
i<-iris
i$lv<-as.numeric(i$Species)
i$lv<-as.factor(i$lv)
i$id<-c(1:150)
#进行分层抽样,每个类别随机抽出10个作为预测集,剩下的作为训练集
i.s<-strata(data=i,stratanames="lv",size=c(10,10,10),method="srswor",description=F)
i.train<-i[!(i$id %in% i.s$ID_unit),]
i.predict<-i[(i$id %in% i.s$ID_unit),]
#拟合线性判别lda
fit<-lda(lv~.-id-Species,data=i.train)
#预测训练集和预测集
Y<-predict(fit,i.train)
YN<-predict(fit,i.predict)
#查看拟合情况
table(Y$class,i.train$lv)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Sevan_Li

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

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

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

打赏作者

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

抵扣说明:

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

余额充值