Ich habe das ada
R-Paket für eine Weile verwendet, und seit kurzem caret
. Laut der Dokumentation sollte die caret
train()
Funktion eine Option haben, die ada verwendet. Aber, caret kotzt mich an, wenn ich die gleiche Syntax verwende, die in meinem ada()
Anruf sitzt.Verwenden von adaboost wihin R Caret-Paket
Hier ist eine Demonstration mit dem wine
Beispieldatensatz.
library(doSNOW)
registerDoSNOW(makeCluster(2, type = "SOCK"))
library(caret)
library(ada)
wine = read.csv("http://www.nd.edu/~mclark19/learn/data/goodwine.csv")
set.seed(1234) #so that the indices will be the same when re-run
trainIndices = createDataPartition(wine$good, p = 0.8, list = F)
wanted = !colnames(wine) %in% c("free.sulfur.dioxide", "density", "quality",
"color", "white")
wine_train = wine[trainIndices, wanted]
wine_test = wine[-trainIndices, wanted]
cv_opts = trainControl(method="cv", number=10)
###now, the example that works using ada()
results_ada <- ada(good ~ ., data=wine_train, control=rpart.control
(maxdepth=30, cp=0.010000, minsplit=20, xval=10), iter=500)
##this works, and gives me a confusion matrix.
results_ada
ada(good ~ ., data = wine_train, control = rpart.control(maxdepth = 30,
cp = 0.01, minsplit = 20, xval = 10), iter = 500)
Loss: exponential Method: discrete Iteration: 500
Final Confusion Matrix for Data:
Final Prediction
etc. etc. etc. etc.
##Now, the calls that don't work.
results_ada = train(good~., data=wine_train, method="ada",
control=rpart.control(maxdepth=30, cp=0.010000, minsplit=20,
xval=10), iter=500)
Error in train.default(x, y, weights = w, ...) :
final tuning parameters could not be determined
In addition: Warning messages:
1: In nominalTrainWorkflow(dat = trainData, info = trainInfo, method = method, :
There were missing values in resampled performance measures.
2: In train.default(x, y, weights = w, ...) :
missing values found in aggregated results
###this doesn't work, either
results_ada = train(good~., data=wine_train, method="ada", trControl=cv_opts,
maxdepth=10, nu=0.1, iter=50)
Error in train.default(x, y, weights = w, ...) :
final tuning parameters could not be determined
In addition: Warning messages:
1: In nominalTrainWorkflow(dat = trainData, info = trainInfo, method = method, :
There were missing values in resampled performance measures.
2: In train.default(x, y, weights = w, ...) :
missing values found in aggregated results
Ich vermute, es ist, dass Zug() will zusätzlichen Eingang, aber die Warnung geworfen gibt mir keine Hinweise auf das, was fehlt. Außerdem könnte ich eine Abhängigkeit fehlt, aber es gibt keinen Hinweis auf das, was es sein sollte ....
werfen Sie einen Blick auf den letzten Aufruf von train(), den ich gemacht habe - er enthält alle von Ihnen erwähnten Parameter. 'results_ada = train (gut ~., data = wine_train, methode =" ada ", trControl = cv_opts, maxdepth = 10, nu = 0.1, iter = 50)' – Bryan
Ich habe auch versucht, 'trControl = cv_opts' zu entfernen, aber es gab keinen Unterschied. Immer noch der Fehler. – Bryan