2016-09-26 8 views
1

我在插入符號上使用GBM的這兩個派生詞。 我在同一個數據集上嘗試了兩種算法,它們返回不同的準確度並在不同的時間執行。通過名稱,我可以認爲第一個在某處使用線性函數,而另一個使用樹。 無論如何,我不明白它在哪裏使用線性而不是樹。 我知道GBM算法使用樹作爲預測器,可以說第一種情況下使用不同的結構像訓練? 我在哪裏可以找到關於此主題的一些文檔?插頁xgbLinear和xgbTree

感謝

回答

5

你可以找到其中的車型中的所有代碼位於尖號GitHub的頁面上獨立models更多細節。插入符號文檔位於here

但是你應該意識到這一點是在2個模型之間使用參數的差異:

  • xgbLinear用途:nrounds,λ,α,ETA
  • xgbTree用途:nrounds,MAX_DEPTH,ETA, gamma,colsample_bytree, min_child_weight

這些選擇會影響模型的結果,並會導致不同的預測結果。因此也有不同的準確度。 xgboost中提供的其他選項將與xgboost的默認設置一起使用。

插入模型包含dotdotdot(...)選項。所以如果你想訓練gammaxgbLinear,你可以在火車功能中指定。但不在網格參數中。其他xgboost參數也一樣。

(非常糟糕)例如:

grid = expand.grid(nrounds = c(10,20), lambda= c(0.1), alpha = c(1), eta = c(0.1)) 
train(Species ~ ., data = iris, method = "xgbLinear", tuneGrid = grid, gamma = 0.5)