日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

第八章xgboost/lightGBM

發(fā)布時(shí)間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第八章xgboost/lightGBM 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 1 xgboost
    • 1.1 基本用法
      • 1.1.1 通用參數(shù)
      • 1.1.2 集成參數(shù)
      • 1.1.3 任務(wù)參數(shù)
    • 1.2 例子
    • 1.3 當(dāng)評(píng)價(jià)函數(shù)不在默認(rèn)范圍內(nèi)
  • 2 lightGBM

1 xgboost

1.1 基本用法

xgboost有三類參數(shù):通用參數(shù)、集成參數(shù)和任務(wù)參數(shù)。

1.1.1 通用參數(shù)

booster:可選值gbree、gblinear。默認(rèn)值是gbree。這是指定用哪種基模型。
silent,可選值0,1。默認(rèn)是0,表示有輸出。
nthread 線程數(shù)

1.1.2 集成參數(shù)

eta 學(xué)習(xí)率。默認(rèn)值0.3,范圍[0,1]。
gamma [default=0, alias: min_split_loss]為了對(duì)樹的葉子節(jié)點(diǎn)做進(jìn)一步的分割而必須設(shè)置的損失減少的最小值,該值越大,算法越保守range: [0,∞]

max_depth [default=6]用于設(shè)置樹的最大深度range: [1,∞]

min_child_weight [default=1]表示子樹觀測(cè)權(quán)重之和的最小值,如果樹的生長(zhǎng)時(shí)的某一步所生成的葉子結(jié)點(diǎn),其觀測(cè)權(quán)重之和小于min_child_weight,那么可以放棄該步生長(zhǎng),在線性回歸模式中,這僅僅與每個(gè)結(jié)點(diǎn)所需的最小觀測(cè)數(shù)相對(duì)應(yīng)。該值越大,算法越保守range: [0,∞]

max_delta_step [default=0]如果該值為0,就是沒(méi)有限制;如果設(shè)為一個(gè)正數(shù),可以使每一步更新更加保守通常情況下這一參數(shù)是不需要設(shè)置的,但是在logistic回歸的訓(xùn)練集中類極端不平衡的情況下,將這一參數(shù)的設(shè)置很有用,將該參數(shù)設(shè)為1-10可以控制每一步更新range: [0,∞]

subsample [default=1]表示觀測(cè)的子樣本的比率,將其設(shè)置為0.5意味著xgboost將隨機(jī)抽取一半觀測(cè)用于數(shù)的生長(zhǎng),這將有助于防止過(guò)擬合現(xiàn)象range: (0,1]

colsample_bytree [default=1]表示用于構(gòu)造每棵樹時(shí)變量的子樣本比率range: (0,1]

colsample_bylevel [default=1]用來(lái)控制樹的每一級(jí)的每一次分裂,對(duì)列數(shù)的采樣的占比。一般不太用這個(gè)參數(shù),因?yàn)閟ubsample參數(shù)和colsample_bytree參數(shù)可以起到相同的作用。range: (0,1]

lambda [default=1, alias: reg_lambda]L2 權(quán)重的L2正則化項(xiàng)

alpha [default=0, alias: reg_alpha]L1 權(quán)重的L1正則化項(xiàng)

1.1.3 任務(wù)參數(shù)

objective [ default=reg:linear ] 這個(gè)參數(shù)定義需要被最小化的損失函數(shù)。

base_score [ default=0.5 ]

eval_metric [ 默認(rèn)是根據(jù) 損失函數(shù)/目標(biāo)函數(shù) 自動(dòng)選定的 ]。評(píng)估函數(shù)。

seed [ default=0 ] random number seed.

1.2 例子

## 引入包 from numpy import loadtxt from xgboost import XGBClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score ## 分出變量和標(biāo)簽 dataset = loadtxt('data/Pima-Indians-Diabetes.csv', delimiter=",",skiprows=1) X = dataset[:,0:8] Y = dataset[:,8] ## 分出訓(xùn)練集和測(cè)試集 seed = 7 test_size = 0.33 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size,random_state=seed) ## 開始訓(xùn)練 model = XGBClassifier() model.fit(X_train, y_train) y_pred = model.predict(X_test) predictions = [round(value) for value in y_pred] accuracy = accuracy_score(y_test, predictions) print("Accuracy: %.2f%%" % (accuracy * 100.0))

1.3 當(dāng)評(píng)價(jià)函數(shù)不在默認(rèn)范圍內(nèi)

此時(shí)需要調(diào)用xgboost的native方法進(jìn)行訓(xùn)練。
需要將訓(xùn)練集和測(cè)試集變?yōu)閤gb.DMatrix數(shù)據(jù)格式。
可以自己定義的損失函數(shù),需要給定損失函數(shù)的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。
可以自定義評(píng)估標(biāo)準(zhǔn)
參考 鏈接

2 lightGBM

lightGBM是微軟開源的一個(gè)庫(kù)。與xgboost相似,但可以處理數(shù)據(jù)量更大、特征維度更高的數(shù)據(jù)。
lightGBM與xgboost樹的生長(zhǎng)方式不同。

總結(jié)

以上是生活随笔為你收集整理的第八章xgboost/lightGBM的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。