当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R lda 线性判别分析


R语言 lda 位于 MASS 包(package)。

说明

线性判别分析。

用法

lda(x, ...)

## S3 method for class 'formula'
lda(formula, data, ..., subset, na.action)

## Default S3 method:
lda(x, grouping, prior = proportions, tol = 1.0e-4,
    method, CV = FALSE, nu, ...)

## S3 method for class 'data.frame'
lda(x, ...)

## S3 method for class 'matrix'
lda(x, grouping, ..., subset, na.action)

参数

formula

groups ~ x1 + x2 + ... 形式的公式即,响应是分组因子,右侧指定(非因子)鉴别器。

data

优先采用formula 中指定的变量的可选 DataFrame 、列表或环境。

x

(如果没有给出公式作为主要参数,则为必需。)包含解释变量的矩阵或 DataFrame 或矩阵。

grouping

(如果没有给出公式主参数,则为必需。)指定每个观察的类别的因子。

prior

类成员资格的先验概率。如果未指定,则使用训练集的类别比例。如果存在,则应按因子水平的顺序指定概率。

tol

决定矩阵是否奇异的容差;它将拒绝方差小于 tol^2 的变量和 unit-variance 变量的线性组合。

subset

指定训练样本中使用的案例的索引向量。 (注意:如果给出,则必须命名该参数。)

na.action

指定在找到 NA 时要采取的操作的函数。默认操作是过程失败。另一种方法是 na.omit ,这会导致拒绝任何所需变量缺失值的情况。 (注意:如果给出,则必须命名该参数。)

method

"moment" 用于均值和方差的标准估计,"mle" 用于 MLE,"mve" 用于使用 cov.mve ,或 "t" 用于基于 分布的稳健估计。

CV

如果为 true,则返回留一交叉验证的结果(类和后验概率)。请注意,如果估计先验,则使用整个数据集中的比例。

nu

method = "t" 的自由度。

...

传递给其他方法或从其他方法传递的参数。

细节

该函数尝试检测 within-class 协方差矩阵是否为奇异矩阵。如果任何变量的组内方差小于tol^2,它将停止并将该变量报告为常量。这可能是由于问题的扩展性较差造成的,但更可能是由于常量变量造成的。

指定 prior 将影响分类,除非 predict.lda 中的 over-ridden 。与大多数统计包不同,它还会影响线性判别式在其空间内的旋转,因为使用了加权组间协方差矩阵。因此,前几个线性判别式强调了具有先验给出的权重的组之间的差异,这可能与其在数据集中的普遍性不同。

如果提供的数据中缺少一个或多个组,则会将其删除并发出警告,但生成的分类是相对于原始级别集的。

如果 CV = TRUE 则返回值是一个包含组件 class 、MAP 分类(因子)和 posterior 、类的后验概率的列表。

否则它是类"lda"的对象,包含以下组件:

prior

使用的先验概率。

means

团体的意思。

scaling

将观察值转换为判别函数的矩阵,经过标准化,使得组内协方差矩阵是球形的。

svd

奇异值,给出线性判别变量的组间和组内标准差之比。它们的方格是规范的F-statistics。

N

使用的观察数。

call

(匹配的)函数调用。

注意

可以调用此函数,给出公式和可选 DataFrame ,或矩阵和分组因子作为前两个参数。所有其他参数都是可选的,但 subset=na.action= (如果需要)必须完整命名。

如果给出一个公式作为主要参数,则可以使用 update() 以通常的方式修改该对象。

例子

Iris <- data.frame(rbind(iris3[,,1], iris3[,,2], iris3[,,3]),
                   Sp = rep(c("s","c","v"), rep(50,3)))
train <- sample(1:150, 75)
table(Iris$Sp[train])
## your answer may differ
##  c  s  v
## 22 23 30
z <- lda(Sp ~ ., Iris, prior = c(1,1,1)/3, subset = train)
predict(z, Iris[-train, ])$class
##  [1] s s s s s s s s s s s s s s s s s s s s s s s s s s s c c c
## [31] c c c c c c c v c c c c v c c c c c c c c c c c c v v v v v
## [61] v v v v v v v v v v v v v v v
(z1 <- update(z, . ~ . - Petal.W.))

参考

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

Ripley, B. D. (1996) Pattern Recognition and Neural Networks. Cambridge University Press.

也可以看看

predict.lda , qda , predict.qda

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Linear Discriminant Analysis。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。