Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用方法错误(“预测”):没有适用于';预测';适用于“类”的对象;空";_R_Machine Learning_R Caret - Fatal编程技术网

R 使用方法错误(“预测”):没有适用于';预测';适用于“类”的对象;空";

R 使用方法错误(“预测”):没有适用于';预测';适用于“类”的对象;空";,r,machine-learning,r-caret,R,Machine Learning,R Caret,我尝试了回复的答案,但错误没有改变。我试图以同样的方式对训练集和测试集进行预处理。它们来自两个不同的文件,我不确定我的指导老师是否会同意我混合这些集合,所以在分割它们之前进行预处理实际上不是一个选项。为什么predict行第一次使用训练集而不是测试集工作?这两个数据帧的结构应该相同,除了行中的单个值和行总数之外 ##### Load libraries ##### library(readr) library(caret) ###### Read in data ###### trainin

我尝试了回复的答案,但错误没有改变。我试图以同样的方式对训练集和测试集进行预处理。它们来自两个不同的文件,我不确定我的指导老师是否会同意我混合这些集合,所以在分割它们之前进行预处理实际上不是一个选项。为什么
predict
行第一次使用训练集而不是测试集工作?这两个数据帧的结构应该相同,除了行中的单个值和行总数之外

##### Load libraries #####
library(readr)
library(caret)

###### Read in data ######

training = read_csv("~/Machine Learning 2/M1/buad5132-m1-training-data.csv")
test = read_csv("~/Machine Learning 2/M1/buad5132-m1-test-data.csv")

##### Preprocessing #####

### Change column classes 

#Training
training$INDEX = as.factor(training$INDEX)
training$TARGET_FLAG = as.factor(training$TARGET_FLAG)
training$PARENT1 = as.factor(training$PARENT1)
training$MSTATUS = as.factor(training$MSTATUS)
training$SEX = as.factor(training$SEX)
training$EDUCATION = as.factor(ifelse(training$EDUCATION == "<High School", "Less than High School", training$EDUCATION))
training$JOB = as.factor(training$JOB)
training$CAR_USE = as.factor(training$CAR_USE)
training$CAR_TYPE = as.factor(training$CAR_TYPE)
training$RED_CAR = as.factor(training$RED_CAR)
training$REVOKED = as.factor(training$REVOKED)
training$INCOME = suppressWarnings(as.numeric(gsub("[^0-9.]", "", training$INCOME)))
training$HOME_VAL = suppressWarnings(as.numeric(gsub("[^0-9.]", "", training$HOME_VAL)))
training$OLDCLAIM = suppressWarnings(as.numeric(gsub("[^0-9.]", "", training$HOME_VAL)))
training$BLUEBOOK = suppressWarnings(as.numeric(gsub("[^0-9.]", "", training$BLUEBOOK)))
training$URBANICITY = ifelse(grepl("Urban", training$URBANICITY), "Urban", "Rural")
training$URBANICITY = as.factor(training$URBANICITY)

#Test
test$INDEX = as.factor(test$INDEX)
test$TARGET_FLAG = as.factor(test$TARGET_FLAG)
test$PARENT1 = as.factor(test$PARENT1)
test$MSTATUS = as.factor(test$MSTATUS)
test$SEX = as.factor(test$SEX)
test$EDUCATION = as.factor(ifelse(test$EDUCATION == "<High School", "Less than High School", test$EDUCATION))
test$JOB = as.factor(test$JOB)
test$CAR_USE = as.factor(test$CAR_USE)
test$CAR_TYPE = as.factor(test$CAR_TYPE)
test$RED_CAR = as.factor(test$RED_CAR)
test$REVOKED = as.factor(test$REVOKED)
test$INCOME = suppressWarnings(as.numeric(gsub("[^0-9.]", "", test$INCOME)))
test$HOME_VAL = suppressWarnings(as.numeric(gsub("[^0-9.]", "", test$HOME_VAL)))
test$OLDCLAIM = suppressWarnings(as.numeric(gsub("[^0-9.]", "", test$HOME_VAL)))
test$BLUEBOOK = suppressWarnings(as.numeric(gsub("[^0-9.]", "", test$BLUEBOOK)))
test$URBANICITY = ifelse(grepl("Urban", test$URBANICITY), "Urban", "Rural")
test$URBANICITY = as.factor(test$URBANICITY)

### Dummy variables

#Training
trainDmyParams = dummyVars(~., training[,-c(1,2)])
training.dmy = as.data.frame(predict(trainDmyParams, training[,-c(1,2)]))
training.dmy$TARGET_FLAG = training$TARGET_FLAG 
names(training.dmy) = make.names(names(training.dmy))

#Test
testDmyParams = dummyVars(~., test[,-c(1,2)])
test.dmy = as.data.frame(predict(testDmyParams, test[,-c(1,2)]))
test.dmy$TARGET_FLAG = test$TARGET_FLAG
names(test.dmy) = make.names(names(test.dmy))

### Standardization and imputation

#Training
preProcessTrain = preProcess(training.dmy, method = c("center", "scale", "bagImpute"))
training.prepped = predict(preProcessTrain, training.dmy)

#Test
preProcessTest = preProcess(test.dmy, method = c("center", "scale", "bagImpute"))    
test.prepped = predict(preProcessTest, test.dmy)    # <--- error occurs on this line

Error in UseMethod("predict") : no applicable method for 'predict' applied to an object of class "NULL"
加载库#####
图书馆(readr)
图书馆(插入符号)
######读入数据######
training=read_csv(“~/Machine Learning 2/M1/buad5132-M1-training-data.csv”)
test=read_csv(“~/Machine Learning 2/M1/buad5132-M1-test-data.csv”)
#####预处理#####
###更改列类
#训练
培训美元指数=总系数(培训美元指数)
培训$TARGET\u标志=as.factor(培训$TARGET\u标志)
培训$PARENT1=作为系数(培训$PARENT1)
培训$MSTATUS=as.factor(培训$MSTATUS)
培训$SEX=as.因子(培训$SEX)

training$EDUCATION=as.factor(ifelse)(training$EDUCATION==“这能回答你的问题吗?
str(预测试)
?@Nareman Darwish我试过
库(插入符号)
在预处理测试数据之前。这并没有改变错误。我可能是错的,但我相信
bagImpute
属于插入符号包。该线程也让我想知道为什么预处理训练集不会出错。