Обратное преобразование переменной Йео Джонсона, выполненное функцией предварительной обработки в пакете Caret для получения оригинальных целевых и прогнозируемых значений - PullRequest
0 голосов
/ 10 ноября 2019

Я сделал преобразование Йео Джонсона, используя препроцесс из пакета Caret. Я предсказал целевую переменную с помощью линейной регрессии. Теперь я хочу обратить преобразование как для цели, так и для прогнозируемых значений. Я знаю, что на этот вопрос уже был дан ответ, но я так и не смог решить свою проблему. На этот вопрос ответили здесь: Отменить каркас препроцесса преобразования , а здесь: https://rdrr.io/github/jknowles/ModelEWS/src/R/exportPrep.R Я не смог изменить его для Йео Джонсона.

Ссылка на набор данных -: https://drive.google.com/file/d/1MePcWhe9zghozgZ90flRMBBTH0wR-aJ0/view?usp=sharing

#Yeo Johnson transformation through preprocess in caret package

#calculating transforming parameters
normModel<-preProcess(dataset[,-c(4,39,40)], method="YeoJohnson") 
#Excluding categorical variables

#transform the dataset using the parameters
norm.dataset<-predict(normModel, dataset[,-c(4,39,40)])
norm.dataset<-cbind(dataset[,c(4,39,40)], norm.dataset)

#Paritioning the data into training and test dataset
set.seed(2000)
n=nrow(norm.dataset)
split= sample(c(TRUE, FALSE), n, replace=TRUE, prob=c(0.70, 0.30))
ptrain = norm.dataset[split, ]
ptest = norm.dataset[!split,]

#After treating outliers, imputing missing values and performing factor analysis, we perform regression

#Linear model for prediction
fmla <- as.formula(paste("Target.Variable ~ ", paste(colnames(ptrain[,-1]), collapse=" +")))
linearmod<-lm(formula = fmla, data = ptrain)
summary(linearmod)
ptest$lmPred <- predict(linearmod, ptest)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...