Я пытаюсь построить модель, чтобы предсказать, будет ли продукт продаваться на веб-сайте электронной торговли с 1 или 0, являющимся результатом.Ошибки при запуске пакета Caret в R
Мои данные представляют собой несколько категориальных переменных: один с большим количеством уровней, пару двоичных и один непрерывный (цена) с выходной переменной 1 или 0, независимо от того, продан ли товар ,
Это мой код:
inTrainingset<-createDataPartition(C$Sale, p=.75, list=FALSE)
CTrain<-C[inTrainingset,]
CTest<-C[-inTrainingset,]
gbmfit<-gbm(Sale~., data=C,distribution="bernoulli",n.trees=5,interaction.depth=7,shrinkage= .01,)
plot(gbmfit)
gbmTune<-train(Sale~.,data=CTrain, method="gbm")
ctrl<-trainControl(method="repeatedcv",repeats=5)
gbmTune<-train(Sale~.,data=CTrain,
method="gbm",
verbose=FALSE,
trControl=ctrl)
ctrl<-trainControl(method="repeatedcv", repeats=5, classProbs=TRUE, summaryFunction = twoClassSummary)
gbmTune<-trainControl(Sale~., data=CTrain,
method="gbm",
metric="ROC",
verbose=FALSE ,
trControl=ctrl)
grid<-expand.grid(.interaction.depth=seq(1,7, by=2), .n.trees=seq(100,300, by=50), .shrinkage=c(.01,.1))
gbmTune<-train(Sale~., data=CTrain,
method="gbm",
metric="ROC",
tunegrid= grid,
verebose=FALSE,
trControl=ctrl)
set.seed(1)
gbmTune <- train(Sale~., data = CTrain,
method = "gbm",
metric = "ROC",
tuneGrid = grid,
verbose = FALSE,
trControl = ctrl)
Я бегу в двух вопросах. Во-первых, когда я пытаюсь добавить summaryFunction = twoClasssummary, а затем настроить я получаю это:
Ошибка в trainControl (Продажа ~, данных = CTrain, метод = "GBM", метрический = "РПЦ",:. неиспользованными аргументы (данные = CTrain, метрика = «РПЦ», trControl = Ctrl)
вторая проблема, если я решу выполняется в обход summaryFunction, когда я пытаюсь запустить модель я получаю эту ошибку:
ошибка в evalSummaryFunction (y, wts = weight, ctrl = trControl, lev = classLevels,: Для использования кодов ROC для использования (() ROC требуется класс вероятности. См. параметр classProbs для trainControl() Кроме того: предупреждение: В train.default (х, у, вес = ш, ...): cannnot вычисления вероятности класса для регрессии
Я попытался изменить выходную переменную с числовым значением 1 или 0 , только текстовое значение, в excel, но это не изменило ситуацию.
Любая помощь будет принята с благодарностью за то, как исправить факт, что она интерпретирует эту модель как регрессию или первое сообщение об ошибке, с которым я сталкиваюсь.
Бест,
Will [email protected]
Пожалуйста, ознакомьтесь с [как сделать воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Вы включили кучу кода, но без выборочных данных, поэтому мы не можем запустить его, чтобы воспроизвести ту же ошибку. Это затрудняет вам помощь. – MrFlick
Правильно, я сделаю это! Спасибо –
@WillBunker, это довольно близко к воспроизводимому, если вы можете просто использовать один из встроенных наборов данных, убедитесь, что ваши ошибки все еще существуют с этими данными, и дайте нам знать, какой из них использовать. Вы можете запустить 'data()', чтобы увидеть наборы данных в 'caret', например' GermanCredit' –