當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。