xgboost中的min child weight是什麼意思

時間 2022-01-15 20:32:16

1樓:boom

我說一下自己的理解。參考https://

stats.stackexchange.com

1、對於回歸問題,假設損失函式是均方誤差函式,每個樣本的二階導數是乙個常數,這個時候 min_child_weight就是這個葉子結點中樣本的數目。如果這個值設定的太小,那麼會出現單個樣本成乙個葉子結點的情況,這很容易過擬合。

2、對於分類問題,假設為二分類問題,損失函式為交叉熵,則每個樣本的二階導數可以寫成幾個因子相乘的形式,其中一項為sigmoid(y_hat)*(1-sigmoid(y_hat))。對分類問題,我們考慮葉子結點的純度。假設某個葉子節點只包含一類,y = 1,那個這個節點有很大的可能是:

該節點包含的yhat非常正,也就是我們給這個節點打分非常正,這個時候sigmoid(y_hat)非常接近1,上面的式子接近0;反之,假設某個葉子節點只包含y=0,情況也是類似的。從分析中可知,如果某個葉子結點的二階導之和越小,或者越接近0,這個節點就越純,這種情況下容易過擬合。

以上是自己的理解,如有漏洞,希望大家指正,共同學習。我驗算過一次樣本二階導公式,後面會貼上來。

2樓:張澤榮

官網api給出的定義:Python API Reference其中:instance是葉子節點,weight(hessian)是不帶正則項的損失函式的二階導,也就是這個:

那麼sum of instance weight(hessian)也就是對應這個:

直觀理解,一般來說,我們定義的不帶正則項的損失函式是這個:

的話,那麼hi=1,Hj即葉子節點上的樣本數,min_child_weight就是葉子上的最小樣本數啦

xgboost是用二階泰勒展開的優勢在哪?

蘇三 xgboost使用二階泰勒展開的目的和優勢有一下兩方面 1 xgboost是以mse為基礎推導出來的,在mse的情況下,xgboost的目標函式展開就是一階項 二階項的形式,而其他類似logloss這樣的目標函式不能表示成這種形式。為了後續推導的統一,所以將目標函式進行二階泰勒展開,就可以直接...

Angular中import from 中的 的作用是什麼?

1.因為NPM上的公共包需要命名,而命名存在重名情況,對應特定專案下使用的包或者防止重名,可以用下scope package。有點類似於JS防止全域性變數汙染的,比如a是個全域性變數,但是怕被其他程式設計師寫的汙染,就會弄個dog.a或者pig.a 2.npm上管理的還有種情況也是scope pac...

計算化學中的metadynamics中的collective varible如何選取?

找這東西已經過時了 危言聳聽一下子,被嚇跑我不負責 現在用弦方法 string method 暴力算即可。弦方法是中中國人的驕傲,應用數學家鄂維南 於2000年左右開發的非常抽象的方法,在近年來漸漸被一些基礎好的人應用到生物模擬中,著名人物有Benoit Roux Eric Vanden Eijnd...