求助,r语言中的判别分析

Python020

求助,r语言中的判别分析,第1张

Fisher判别分析,即 LDA

相应的R实现为:

MASS包中的 lad() 函数,qda() 函数

lad(x, grouping, prior = proportions ,tol = 1.0e-4, method , CV = FALSE, nu, .....)

lad(formula, data, .... ,subset , na.action )

1)当对象为数据框data.frame时

lda(x,grouping,prior = propotions,tol = 1.0e-4,method,CV = FALSE,nu,...)

2) 当对象为公式Formula时

lda(formula,data,...,subnet,na.action)

3) 当对象为矩阵Matrix时

lda(x,group,...,subnet,na.action)

线性判别方法(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上因为最早由(Fisher)提出,亦称为“Fisher判别分析”。       (严格说来LDA与Fisher判别分析稍有不同,前者假设了各类样本的协方差矩阵相同且满秩)。

4.1.投影降维

LDA的思想非常朴素:给定训练设法将样例投影到一条直线上,使得同类的样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。如下图是一个二维示意图:

上面二维示意图中的‘+’、‘-’分别代表正例和反例,椭圆表示数据簇的外轮廓,虚线表示投影,红色实心圆和红色实心三角形分别表示两类样本投影后的中心点。

以下先给出Fisher判别分析的步骤,以后会添加原理的内容。