GBDT原理例項演示 1

2021-09-06 22:04:01 字數 2263 閱讀 9498

考慮乙個簡單的例子來演示gbdt演算法原理

下面是乙個二分類問題,1表示可以考慮的相親物件,0表示不考慮的相親物件

特徵維度有3個維度,分別物件

身高,金錢,顏值

這個例子僅僅為了試驗,資料量很小沒有更多統計意義。

0,1,2,3對應可以考慮的相親物件

4,5,6,7 對應不考慮的相親物件

先看一下gbdt訓練的結果

mlt dating.txt -cl gbdt -ntree 2 -nl 3 -lr 0.1 -mil 1 -c train -vl 1 -mjson=1

設定2棵樹,葉子節點最多3個

也就是最多2次**,learning rate設定為0.1,

葉子節點中的最少樣本數設定為1(僅供試驗,一般不會設定為1,避免過擬合)

為了列印二叉樹設定輸出json格式的模型

per feature gain:

0:face 1

1:hight 0.730992

2:money 0.706716

sigmoid/plattcalibrator calibrating [ 8 ] (0.00011 s)100% |******************************************|

i0324 16:57:53.240083 17630 time_util.h:113] train! finished using: [1.486 ms] (0.001486 s)

i0324 16:57:53.240094 17630 time_util.h:102] test itself! started

test positive ratio:        0.5000 (4/(4+4))

confusion table:

||******************************=||

|| predicted ||

truth || positive | negative || recall

||******************************=||

positive|| 4 | 0 || 1.0000 (4/4)

negative|| 0 | 4 || 1.0000 (4/4)

||******************************=||

precision 1.0000 (4/4) 1.0000(4/4)

log loss/instance:                0.2981

test-set entropy (prior ll/in):        1.0000

log-loss reduction (rig):        70.1854%

overall 0/1 accuracy:        1.0000 (8/8)

pos.precision:                1.0000

ppos.recall:                1.0000

neg.precision:                1.0000

neg.recall:                1.0000

f1.score:                 1.0000

auc: [1.0000]

對應這個例子,訓練結果是perfect的,全部正確,

特徵權重可以看出,對應這個例子訓練結果顏值的重要度最大,看一下訓練得到的樹。

opencv 例項演示

1.腐蝕膨脹 main.cpp include opencv2 imgproc imgproc.hpp include opencv2 highgui highgui.hpp include highgui.h include include erosion腐蝕 dilation膨脹 滑動條用來控制...

CSS例項演示

css背景 設定頁面的背景顏色 設定不同元素的背景顏色 設定乙個影象作為頁面的背景 錯誤的背景 如何在水平方向重複背景影象 如何定位背景影象 乙個固定的背景 這個不會隨頁面的其餘部分滾動 宣告背景屬性 高階的背景例子 css文字 設定不同元素的文字顏色 文字對齊 移除鏈結下劃線 裝飾文字 控制文字中...

梯度提公升樹GBDT原理

原文 提公升方法實際採用加法模型 即基函式的線性組合 與前向分布演算法。以決策樹為基函式的提公升方法稱為提公升樹 boosting tree 對分類問題決策樹是二叉分類樹,對回歸問題決策樹是二叉決策樹。提公升樹模型可以表示為決策樹的加法模型 其中,回歸問題提公升樹使用以下前向分布演算法 在前向分布演...