我试图执行使用逻辑回归multinom()
的nnet
过度使用R中的以下数据包:
列车数据
测试数据
每个训练文件和测试文件都有10,000行数据和144个变量,其中最后一列是“预测”,这是应该在测试数据中预测的列。由于predict仅包含两个值0和1(二进制),因此我开始使用来将火车数据拟合为逻辑回归模型multinom()
。大多数行是连续的数字值,而少数字段包含名称字段,例如工作日的名称(“星期日”,“星期一”,...),它们被认为是因素。
这是使用的以下代码:
train_data <- read.csv("train_data.csv")
test_data <- read.csv("test_data.csv")
library(nnet)
my_multinom <- multinom(formula= as.factor(Predict) ~ ., data= train_data)
predictions <- predict(my_multinom, test_data[,1:143])
输出为:
> summary(predictions)
0 1 NA's
130 52 9818
哪里,NA's
在的Predict
列中没有train_data
:
> summary(as.factor(train_data$Predict))
0 1
9734 266
我想知道发生如此大量NA's
(超过98%)的原因是什么,以及如何进一步进行处理以免发生这些情况NA's
?
查看您的测试数据。预测为的每一行都NA
包含一个NA
值:
all(apply(sapply(test_data[is.na(predictions),1:143], is.na),1,any))
#[1] TRUE
其他行不包含任何NA
值:
any(apply(sapply(test_data[!is.na(predictions),1:143], is.na),1,any))
#[1] FALSE
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句