【问题标题】:R predict function returning NULL valueR预测函数返回NULL值
【发布时间】:2022-11-22 02:43:42
【问题描述】:

因此,我正在尝试使用线性判别分析来获取混淆矩阵,但我的预测函数在环境中的值一直为“NULL”。

我的代码是

data=mydata
mydata$Class = as.factor(mydata$Class)
mynewdata=na.omit(mydata)

set.seed(1); TrData = sample(nrow(mynewdata), nrow(mynewdata)*0.5)
TrSet = mynewdata[TrData,]
fit= lda(Class ~ ., data=TrSet)

fit.p = predict(fit,newdata=TrSet[,-c(8)])$Class

fit.p 的值为 NULL 所以我无法获得混淆矩阵 我哪里错了?

【问题讨论】:

  • 请阅读r标签页顶部的发帖说明。特别是发布的代码应该是完整的,以便其他人可以运行它。这意味着包括所有 library 语句和使用 dput 的输入,以便其他任何人都可以简单地将其复制并粘贴到他们的会话中以运行它。

标签: r null statistics classification


【解决方案1】:

因此,您子集 $Class 而不是 $class,因为列表或环境中不存在的文件会给您 NULL。

来自 MASS::lda 的例子,最后一个赞是 $class NOT $Class

library(MASS)
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

在您的示例中,请更新 fit.p = predict(fit,newdata=TrSet[,-c(8)])$Classfit.p = predict(fit,newdata=TrSet[,-c(8)])$class

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    相关资源
    最近更新 更多