2016-02-15 18 views
1

我有一個多類問題:例如,我們可以採用數據集mtcars數據集,我們想要預測氣瓶的數量cyl如何指示插入符號中的xgboost使用mlogloss進行優化

data(mtcars) 

我想用xgboost和使用caret包適合它。爲此,我創建使用

xgb_grid_param = expand.grid(
    nrounds = 1000, 
    eta = c(0.01, 0.001, 0.0001), 
    max_depth = c(2, 4), 
    gamma = 0, 
    colsample_bytree =1, 
    min_child_weight =1 
) 

我可以創造培訓的控制參數的超參數電網作爲

xgb_tr_ctrl = trainControl(
    method = "cv", 
    number = 5, 
    repeats =2, 
    verboseIter = TRUE, 
    returnData = FALSE, 
    returnResamp = "all", 
    allowParallel = TRUE 

當我再嘗試使用caret運行train功能:

model <- train(factor(cyl)~., data = mtcars, method = "xgbTree", 
     trControl = xgb_grid_param, tuneGrid=xgb_grid_param) 

我得到錯誤::

Error in trControl$classProbs && any(classLevels != make.names(classLevels)) : 
    invalid 'x' type in 'x && y' 

如何解決這個錯誤,我該如何指導xgbTree使用mlogloss,優化學習。

回答

0

對於另一種方法,我可以通過將標籤屬性設置爲數據幀/矩陣的最後一列來解決'x'& y'''中的'無效'x'類型。

相關問題