Sto cercando di analizzare il mio modello con R con xgboost. Il modello di allenamento in generale funziona bene, ma con il caret è un problema con la metrica.R Metric RMSE non applicabile per i modelli di classificazione
Ho provato a impostare un fattore per una colonna di classe, bit non c'è ancora alcun risultato.
I miei dati
ID var1var2TARGET
1 5 0 1
2 4 3 1
3 4 2 0
4 3 1 0
5 2 4 1
6 1 2 1
7 5 3 1
8 4 1 0
9 4 1 0
10 2 4 1
11 5 5 1
Per questo lo faccio
train <- read.csv()
train.y <- train$TARGET
train$TARGET <- NULL
train$ID <- NULL
train.y <- lapply(train.y, factor)
Poi mi preparano i parametri del modello
xgb_grid_1 = expand.grid(
nrounds = 1000,
eta = c(0.01, 0.001, 0.0001),
max_depth = c(2, 4, 6, 8, 10),
gamma = 1
)
# pack the training control parameters
xgb_trcontrol_1 = trainControl(
method = "cv",
number = 5,
verboseIter = TRUE,
returnData = FALSE,
returnResamp = "all", # save losses across all models
classProbs = TRUE, # set to TRUE for AUC to be computed
summaryFunction = twoClassSummary,
allowParallel = TRUE
)
E dopo tutto questo, io chiamo la funzione treno
xgb_train_1 = train(
x = train,
y = train.y,
trControl = xgb_trcontrol_1,
tuneGrid = xgb_grid_1,
method = "xgbTree"
)
mi dà
Error in train.default(x = train, y = train.y, trControl = xgb_trcontrol_1, :
Metric RMSE not applicable for classification models
Perché potrebbe essere?
rmse viene utilizzato per variabili dipendenti continue – user20650
@ user20650 Puoi suggerire cosa dovrei cambiare? Ho preso questo esempio da un sito con lo stesso problema di classificazione. Sembra che mi sia sfuggito qualche punto – paveltr
Non ho familiarità con il caret, ma guardando '? Train' sembra che l'argomento' metric' sia impostato su 'rmse' (*' metric = ifelse (is.factor (y), " Precisione "," RMSE "' *),. Quindi proverei a impostare il mio risultato su un fattore di 'treno.y <- fattore (treno $ TARGET)' oppure impostare esplicitamente 'metric =" Precisione "' – user20650