R语言分类算法之线性判别分析(Linear Discriminant Analysis)

1.线性判别原理解析
基本思想是”投影”,即高纬度空间的点向低纬度空间投影,从而简化问题的处理.在原坐标系下,空间中的点可能很难被分开,如图8-1,当类别Ⅰ和类别Ⅱ中的样本点都投影至图中的”原坐标轴”后,出现了部分样本点的”影子”重合的情况,这样就无法将分属于这两个类别的样本点区分开来;而如果使用如图8-2中的”投影轴”进行投影,所得到的”影子”就可以被”类别划分线”明显地区分开来.
费希尔判别最重要的就是选择出适当的投影轴,对该投影轴方向上的要求是:保证投影后,使每一类之内的投影值所形成的类内离尽可能小,而不同类之间的投影值所形成的类间距离差尽可能大.
对线性判别来说,线将样本点投影到一维空间,即直线上,若效果不明显,则可以考虑增加一个纬度,即投影到二维空间,依此类推.
而二次判别(Quadratic Discriminant Analysis,QDA)与线性判别(Linear Discriminant Analysis,LDA)的区别就在于投影面的形状不同,二次判别使用若干次曲面,而非直线或平面来将样本划分至相应的类别中.二次判别函数是一种常用的非线性判别函数.
费希尔(Fsher)判别
2.在R语言中的应用
MASS包是Modern Applied Statistics with S 的缩写,即S语言在现代统计中的应用。线性判别分析(LDA)主要用到了lda(formula,data,…,subset,na.action)函数,二次判别分析(QDA)则用到了qda(formula,data,…,subset,na.action)函数。
3.以iris数据集为例进行线性判别分析
1)应用模型并查看模型的相应参数

library(MASS)
fit_lda1=lda(Species~.,data_train)
fit_lda1

R语言分类算法之费希尔(Fisher)判别


2)查看模型的输出结果

fit_lda1[1:length(fit_lda1)]

R语言分类算法之费希尔(Fisher)判别


3)做出模型图

plot(fit_lda1)

R语言分类算法之费希尔(Fisher)判别

plot(fit_lda1,dimen=1)

R语言分类算法之费希尔(Fisher)判别


4)对data_test进行预测,并观察预测结果

pre_ldal=predict(fit_lda1,data_test)
pre_ldal[1:length(pre_ldal)]

R语言分类算法之费希尔(Fisher)判别


5)评测预测结果

table(data_test$Species,pre_ldal$class)
error_lda1=sum(as.numeric(as.numeric(pre_ldal$class)!=as.numeric(data_test$Species)))/nrow(data_test)

R语言分类算法之费希尔(Fisher)判别

  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值