GBDT演算法原理及常見面試問題

2021-10-04 01:44:12 字數 1208 閱讀 8696

gbdt是一種基於boosting整合方法的加法模型,在每一輪迭代中,產生一棵cart回歸樹來擬合損失函式在當前模型—也就是前t-1棵樹疊加構成的模型下的負梯度值。

訓練過程描述如下:

輸入:訓練資料,損失函式

輸出:提公升樹模型

(1)初始化,估計使得損失函式最小化的常數值

f 0(

x)=a

rgmi

nc∑i

nl(y

i,c)

f_0(x)=arg min_c\sum_^nl(y_i,c)

f0​(x)

=arg

minc

​∑in

​l(y

i​,c

) (2)迭代產生m棵cart回歸樹,具體過程如下:

a )計算損失函式在當前模型上的負梯度值,擬合負梯度的值,生成一棵有j個葉子結點的cart樹。

b)計算生成的cart樹各個葉子結點最優的輸出值,當損失函式為平方損失函式時,最優輸出值為各結點標籤的平均值

(在初始計算平方誤差時,計算與標籤的誤差,之後擬合負梯度的值實際上就是計算葉子結點最優輸出值與屬於此葉子結點的樣本的負梯度值的平方誤差)

c)將新生成的樹與前面t-1棵樹的結果疊加,從而更新模型,進入步驟a.

(3)迭代結束後,得到最終的梯度提公升樹模型

gbdt如何做特徵選擇其實就是說的cart回歸樹的產生過程

a)遍歷樣本的特徵,對於每個特徵,遍歷樣本的切分點,選擇最優的特徵的最優切分點

d)判斷最優時使用平方誤差。使用乙個特徵及其切分點可將樣本分為兩部分,每部分都計算乙個標籤的平均值,計算標籤平均值與標籤的平方誤差之和,平方誤差最小的特徵–切分點組合即是最優的。

gbdt本身不能產生特徵,但能夠產生特徵的組合,樣本進入gbd模型之後,樣本落在gbdt多課樹的哪些葉結點上可以作為樣本高維特徵。

gbdt無論進行分類還是回歸,使用的都是cart回歸樹,這是由其訓練方式決定的。gbdt每一輪迭代都是擬合上一輪迭代的殘差,這裡也可以說是損失函式的負梯度值。這就要求每輪迭代中弱分類器相減的結果是有意義的。如果使用分類樹,類別之間相減一般沒有意義。

使用gbdt做分類時,針對每乙個類別都訓練乙個分類器。通過比較樣本屬於哪一類的概率大,從而將樣本判定為概率大的那一類。

計算概率時可以使用softmax方法,將概率進行歸一化,容易比較。

SVM常見面試問題

答 幾何間隔與樣本的誤分次數間存在關係 其中的分母就是樣本到分類間隔距離,分子中的r是所有樣本中的最長向量值 答 會,超平面會靠近樣本少的類別。因為使用的是軟間隔分類,而如果對所有類別都是使用同樣的懲罰係數,則由於優化目標裡面有最小化懲罰量,所以靠近少數樣本時,其懲罰量會少一些。比如 假設理想的分隔...

C 常見面試問題

一 抽象與介面的區別 1,抽象 abstract 1 抽象類中可以有抽象方法,也可沒有 2 抽象方法包含實現,也可以由子類實現 3 抽象類不能被sealed修飾,只能使用abstract關鍵字 4 抽象方法不能在抽象類外部宣告 5 抽象類只能單繼承 6 可以有虛方法 virtual 在不同的繼承中,...

SpringMVC 常見面試問題

springmvc流程 原理 流程圖 亂碼問題 重定向和 在返回值前面加 redirect 或 forward return forward 跳轉的頁面或路由 重定向和 的區別 全域性異常 自定義實現spring的全域性異常解析器handlerexceptionresolver springboot...