首页 > 解决方案 > 尝试在测试数据集上使用 model.matrix 函数

问题描述

我正在参加一场 kaggle 比赛(房价:高级回归技术)。我一直在尝试对数据运行岭模型。我先把测试数据和训练数据结合起来,做了一些数据清洗,然后我把它们分开,用训练集想出了一个函数,把它应用到测试数据上。

traintest=rbind(train,test)

#Converting all chars into factors

library(dplyr)
traintest = traintest %>% mutate_if(is.character, as.factor)

在去掉了一些变量之后,我分离了两个数据集。

train <- traintest[is.na(traintest$SalePrice) == "FALSE",]
test <- traintest[is.na(traintest$SalePrice) == "TRUE",]

当我对训练数据使用 model.matrix 函数时,它会返回矩阵。但是当我在测试数据上尝试它时,它给了我一个包含所有变量的空行。

x <- model.matrix(SalePrice~., train)[,-1]
x.test <- model.matrix(SalePrice~.,test)[,-1]

测试数据有一列我试图预测的 NA。

标签: rmachine-learningmodel.matrix

解决方案


问题是test$SalePrice只是NA,你需要使用不同的列model.matrix

或者你可以不用SalePriceas

model.matrix(~ variable1 + variable2, test)

或者

model.matrix(~ ., test[-1])


推荐阅读