LDA 和最大特征数的一个示例
关于线性判别分析
最小判别分析的一个经典例子是 RA Fisher 1936 年的文章“分类问题中多重测量的使用”。这是基于 iris 数据集并且很容易绘制的。
### load library
### with Edgar Anderson's Iris data set
### and the lda function
library(MASS)
### Perform lda
lda <- lda(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width , data = iris)
### Compute the discriminant
predict(lda)
### Plot histogram with result from first discriminant
plot(lda, dimen=1, breaks = seq(-10,10,0.5))
### Plot histogram with only one variable
layout(matrix(1:3,3))
hist(iris$Sepal.Length[iris$Species == "setosa"], breaks = seq(3,9,0.25),
main = "", xlab = "group setosa", freq = 0)
hist(iris$Sepal.Length[iris$Species == "versicolor"], breaks = seq(3,9,0.25),
main = "", xlab = "group versicolor", freq = 0)
hist(iris$Sepal.Length[iris$Species == "virginica"], breaks = seq(3,9,0.25),
main = "", xlab = "group virginica", freq = 0)
第一线性判别式的结果
单个变量的结果(萼片长度)
Fisher 的想法是使用变量的线性组合,以使类之间的距离更大。这个距离被认为是相对于组的方差。(要了解更多信息,请考虑以下问题:MANOVA 何时最有用)
当参数 > 样本时
因此,LDA 背后的直觉是找到组间距离/方差大于组内距离/方差的参数的线性组合。
当你有比样本量更多的参数时,你将能够找到一个完美的线性组合。其内距离为零的一种。
这种线性组合可以通过找到参数的线性组合来找到,其中一类中的线性组合等于 0,而另一类中的线性组合等于 1。
这与解决线性回归问题有关
在哪里是一个有 1 和 0 的列,具体取决于类,是具有特征的矩阵,并且是要找到的系数。
当特征数量大于样本数量时,这个问题是超定的。这意味着您将能够找到许多特征的线性函数,其中一类等于 0,另一类等于 1(只要没有具有完全相同特征的不同类成员)。
您需要的特征数量与精确拟合回归问题所需的特征数量相似。哪个是. 例如,如果你有两个数据点,那么一条直线,一个只有一个特征的函数(和两个参数的函数,因为除了斜率之外,截距也包括在内),将完全适合这些点。
所以特征将足以找到 LDA 问题的完美解决方案
正则化
因此,当特征数量大于样本时,问题类似于回归问题。
对于这种过度确定的情况,你可以说功能就足够了,但它不是唯一的解决方案。确切的答案将取决于您如何权衡不同的解决方案。您可以通过多种方式做到这一点。正则化是一种方法。如果问题通过套索回归或逐步回归(逐步添加回归量/特征,建立从零回归量开始的解决方案)解决,那么我可以想象极限是特征。如果问题通过岭回归(从一开始就使用所有回归量/特征)解决,则情况并非如此。