R

时间:2018-01-11 14:14:55

标签: r lda

我对R包MASS中实现的交叉验证函数lda(..., CV = TRUE)有一点问题。

示例' test1'下面我可以运行几次并且总是得到相同的pa值(=准确分类的概率)但是如果我用我自己的数据集运行这个脚本,我会得到几个不同的结果。

有人为什么数据集会产生不同的结果?

据我所知,结果应该是稳定的,因为这个lda函数中的交叉验证应该是一个重复采样,每次系统地省略一个观察/行,用其余的计算LDA,评估使用左侧观察/行来区分函数并重复此操作,直到每个观察/行被遗漏一次为止。

我也考虑将共线性作为理由,但对我而言,这种方式不适合这个问题......

不幸的是,我不知道在R中实现的任何标准数据集都会重现这个问题......

非常感谢提前。

#test1 (without problem)
library(MASS) #load MASS
data(iris) #load stardard dataset
pred <- lda(formula = Species ~ ., 
          data = iris, 
          prior = c(1,1,1)/3,
          CV = TRUE) #run LDA with equal priors
ct <- table(iris$Species, pred$class) #make a crosstable to see crassification success
pa <- sum(diag(prop.table(ct))); pa #summarize the diagonal (=correct classifications) 
# from the corresponding probalility crosstable and print the result

0 个答案:

没有答案