错误:预处理插补过程中的BoxCox错误R语言
我正在查看应用预测建模书Max Kuhn中第6章练习3问题的答案,我在插补预测步骤中得到了一个错误(尽管完全遵循了他们的答案)。可再现代码和问题如下:错误:预处理插补过程中的BoxCox错误R语言,r,transformation,r-caret,predict,imputation,R,Transformation,R Caret,Predict,Imputation,我正在查看应用预测建模书Max Kuhn中第6章练习3问题的答案,我在插补预测步骤中得到了一个错误(尽管完全遵循了他们的答案)。可再现代码和问题如下: library(AppliedPredictiveModeling) library(caret) library(RANN) data(ChemicalManufacturingProcess) predictors <- subset(ChemicalManufacturingProcess,s
library(AppliedPredictiveModeling)
library(caret)
library(RANN)
data(ChemicalManufacturingProcess)
predictors <- subset(ChemicalManufacturingProcess,select= -Yield)
yield <- subset(ChemicalManufacturingProcess,select="Yield")
# Impute
#Split data into training and test sets
set.seed(517)
trainingRows <- createDataPartition(yield$Yield,
p = 0.7,
list = FALSE)
trainPredictors <- predictors[trainingRows,]
trainYield <- yield[trainingRows,]
testPredictors <- predictors[-trainingRows,]
testYield <- yield[-trainingRows,]
#Pre-process trainPredictors and apply to trainPredictors and testPredictors
pp <- preProcess(trainPredictors,method=c("BoxCox","center","scale","knnImpute"))
ppTrainPredictors <- predict(pp,newdata=trainPredictors)
ppTestPredictors <- predict(pp,newdata=testPredictors) # This results in an error
库(AppliedPredictiveModeling)
图书馆(插入符号)
图书馆(RANN)
数据(化学制造过程)
预测值由于boxcox变换的值不为零,所以会出现这种错误。如果您查看帮助页面,它会写入:
如果有的话(好的,非常感谢,种子问题似乎是本书中常见的问题。干杯
cbind(colSums(trainPredictors==0,na.rm=TRUE),colSums(testPredictors==0,na.rm=TRUE))
[,1] [,2]
BiologicalMaterial01 0 0
BiologicalMaterial02 0 0
BiologicalMaterial03 0 0
BiologicalMaterial04 0 0
BiologicalMaterial05 0 0
BiologicalMaterial06 0 0
BiologicalMaterial07 0 0
BiologicalMaterial08 0 0
BiologicalMaterial09 0 0
BiologicalMaterial10 0 0
BiologicalMaterial11 0 0
BiologicalMaterial12 0 0
ManufacturingProcess01 1 2
ManufacturingProcess02 29 6
ManufacturingProcess03 0 0
ManufacturingProcess04 0 0
ManufacturingProcess05 0 0
ManufacturingProcess06 0 0
ManufacturingProcess07 0 0
ManufacturingProcess08 0 0
ManufacturingProcess09 0 0
ManufacturingProcess10 0 0
ManufacturingProcess11 0 0
ManufacturingProcess12 104 38
ManufacturingProcess13 0 0
ManufacturingProcess14 0 0
ManufacturingProcess15 0 0
ManufacturingProcess16 1 0
ManufacturingProcess17 0 0
ManufacturingProcess18 1 0
set.seed(517)
trainingRows <- createDataPartition(yield$Yield,
p = 0.7,
list = FALSE)
trainPredictors <- predictors[trainingRows,]
trainYield <- yield[trainingRows,]
testPredictors <- predictors[-trainingRows,]
testYield <- yield[-trainingRows,]