共计 1230 个字符,预计需要花费 4 分钟才能阅读完成。
如何理解 R 语言分类算法中的线性判别分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1. 线性判别原理解析
基本思想是”投影”, 即高纬度空间的点向低纬度空间投影, 从而简化问题的处理. 在原坐标系下, 空间中的点可能很难被分开, 如图 8 -1, 当类别Ⅰ和类别Ⅱ中的样本点都投影至图中的”原坐标轴”后, 出现了部分样本点的”影子”重合的情况, 这样就无法将分属于这两个类别的样本点区分开来; 而如果使用如图 8 - 2 中的”投影轴”进行投影, 所得到的”影子”就可以被”类别划分线”明显地区分开来.
费希尔判别最重要的就是选择出适当的投影轴, 对该投影轴方向上的要求是: 保证投影后, 使每一类之内的投影值所形成的类内离尽可能小, 而不同类之间的投影值所形成的类间距离差尽可能大.
对线性判别来说, 线将样本点投影到一维空间, 即直线上, 若效果不明显, 则可以考虑增加一个纬度, 即投影到二维空间, 依此类推.
而二次判别 (Quadratic Discriminant Analysis,QDA) 与线性判别 (Linear Discriminant Analysis,LDA) 的区别就在于投影面的形状不同, 二次判别使用若干次曲面, 而非直线或平面来将样本划分至相应的类别中. 二次判别函数是一种常用的非线性判别函数.
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
2)查看模型的输出结果
fit_lda1[1:length(fit_lda1)]
3)做出模型图
plot(fit_lda1)
plot(fit_lda1,dimen=1)
4)对 data_test 进行预测,并观察预测结果
pre_ldal=predict(fit_lda1,data_test) pre_ldal[1:length(pre_ldal)]
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 语言分类算法中的线性判别分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。