簡體   English   中英

帶有插入符號包的GBM分類

[英]GBM classification with the caret package

當使用插入符號的訓練函數擬合GBM分類模型時,函數predictFunction根據概率閾值0.5將概率預測轉換為因子。

      out <- ifelse(gbmProb >= .5, modelFit$obsLevels[1], modelFit$obsLevels[2])
      ## to correspond to gbmClasses definition above

如果用戶試圖最大化ROC曲線(AUROC)下的面積,則此轉換似乎為時過早。 盡管靈敏度和特異性對應於單個概率閾值(因此需要進行因子預測),但我還是更喜歡使用gbmPredict輸出的原始概率來計算AUROC。 以我的經驗,我很少關心分類模型的校准。 我希望提供盡可能多信息的模型,而不考慮模型預測“ 1”與“ 0”的概率閾值。 是否可以將原始概率強加到AUROC計算中? 這似乎很棘手,因為無論使用什么匯總功能,都將傳遞已經為二進制的預測。

“由於使用了任何匯總函數,都會傳遞已經是二進制的預測”

絕對不是這樣。

它不能使用這些類來計算ROC曲線(除非您竭盡所能)。 請參閱下面的注釋。

train可以預測作為因素的類(使用您顯示的內部代碼)和/或類概率。

例如,此代碼將計算類概率,並使用它們來獲得ROC曲線下的面積:

library(caret)
library(mlbench)
data(Sonar)

ctrl <- trainControl(method = "cv", 
                     summaryFunction = twoClassSummary, 
                     classProbs = TRUE)
set.seed(1)
gbmTune <- train(Class ~ ., data = Sonar,
                 method = "gbm",
                 metric = "ROC",
                 verbose = FALSE,                    
                 trControl = ctrl)

實際上,如果省略classProbs = TRUE位,則會得到錯誤:

train()'s use of ROC codes requires class probabilities. See the classProbs option of trainControl()

馬克斯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM