2017-08-06 229 views
0

我想了解catboost過度檢測器。在此描述:如何使用catboost overfitting檢測器

https://tech.yandex.com/catboost/doc/dg/concepts/overfitting-detector-docpage/#overfitting-detector

另外一種梯度增強包,比如lightgbm和xgboost使用一個名爲early_stopping_rounds參數,這是很容易理解(它停止訓練,一旦驗證錯誤並沒有在early_stopping_round步驟減少) 。

但是,我很難理解catboost使用的p_value方法。任何人都可以解釋這個過度檢測探測器是如何工作的,以及何時停止培訓?

回答

2

它沒有在Yandex網站或github存儲庫中記錄,但是如果仔細查看發佈到github上的python代碼(特別是here),您會看到過度配合檢測器是通過設置「od_type」參數。回顧最近在github上提交的內容,catboost開發者最近還實現了一個類似於lightGBM和xgboost所使用的「early_stopping_rounds」參數的工具,名爲「Iter」。 要在停止前最近一次最佳迭代之後設置輪次數,請在「od_wait」參數中提供一個數值。

例如:

fit_param <- list(
    iterations = 500, 
    thread_count = 10, 
    loss_function = "Logloss", 
    depth = 6, 
    learning_rate = 0.03, 
    od_type = "Iter", 
    od_wait = 100 
) 

我使用catboost庫,其中R 3.4.1。我發現在fit_param列表中設置「od_type」和「od_wait」參數對我而言非常合適。

我意識到這並不是回答你關於如何使用由catboost開發人員實現的p_value方法的問題;不幸的是我無法幫到你。希望別人能夠向我們解釋這一點。

+0

非常感謝分享!我不知道od_type和od_wait參數。這真的很感謝! – ftiaronsem

+0

沒問題! Yandex文檔並不完美,所以我在週末開始瀏覽python代碼,以查看可能丟失的內容。對我來說這也是一個非常開心的發現。 – babbeuf