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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

L2R 三:常用工具包介绍之 XGBoost与LightGBM

發(fā)布時(shí)間:2024/9/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 L2R 三:常用工具包介绍之 XGBoost与LightGBM 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

L2R最常用的包就是XGBoost 和LightGBM,xgboost因?yàn)槠湫阅芗翱焖偬幚砟芰?#xff0c;在機(jī)器學(xué)習(xí)比賽中成為常用的開源工具包, 2016年微軟開源了旗下的lightgbm(插句題外話:微軟的人真是夠謙虛的,開源的包都是light前綴,公司更是micro),對(duì)標(biāo)xgboost,在結(jié)果相差不大的前提下,顯著縮短了訓(xùn)練時(shí)間。

?

先占個(gè)坑,等有空展開寫寫。

?

下面分別介紹下兩者:

  一、XGBoost

  1.git地址:https://github.com/dmlc/xgboost? ?參數(shù)說明:http://xgboost.readthedocs.io/en/latest/python/python_api.html

  2.改進(jìn)思想

    2.1 算法方面

      2.1.1?SPLIT FINDING ALGORITHMS

?

    2.2 系統(tǒng)實(shí)現(xiàn)

      2.2.1?Column Block for Parallel Learning

?

      2.2.2?Cache-aware Access

  3.參數(shù)說明?    

xgboost參數(shù) params = {'seed':0, 'objective':'reg:tweedie', 'eval_metric':'tweedie-nloglik@1.2', 'tweedie_variance_power':1.2} params = {'seed':0, 'objective':'reg:linear', 'eval_metric':'rmse'}param = { 'eta':0.1, #為了防止過擬合,更新過程中用到的收縮步長。在每次提升計(jì)算之后,算法會(huì)直接獲得新特征的權(quán)重。 eta通過縮減特征的權(quán)重使提升計(jì)算過程更加保守。 #缺省值為0.3'max_depth':3, #數(shù)的最大深度。缺省值為6'silent':0, #取0時(shí)表示打印出運(yùn)行時(shí)信息,取1時(shí)表示以緘默方式運(yùn)行,不打印運(yùn)行時(shí)信息。缺省值為0'objective':'reg:gamma','tweedie_variance_power':1.7, #parameter that controls the variance of the Tweedie distribution var(y) ~ E(y)^tweedie_variance_power #取值range: (1,2) 2為gamma分布、1為Poisson分布"tree_method":"approx", "colsample_bytree":1.0, #在建立樹時(shí)對(duì)特征采樣的比例。缺省值為1"subsample":1, #用于訓(xùn)練模型的子樣本占整個(gè)樣本集合的比例。如果設(shè)置為0.5則意味著XGBoost將隨機(jī)的沖整個(gè)樣本集合中隨機(jī)的抽取出50%的子樣本建立樹模型, 這能夠防止過擬合。'sketch_eps':0.03, (默認(rèn)值)"updater":'grow_histmaker,prune', #‘grow_histmaker’: distributed tree construction with row-based data splitting based on global proposal of histogram counting. #‘prune’: prunes the splits where loss < min_split_loss (or gamma).'lambda': 0.1 #Parameter for Linear Booster L2 正則的懲罰系數(shù) default為0 "alpha":0.5, #Parameter for Linear Booster L1 正則的懲罰系數(shù) default為0num_round = tree_num train階段進(jìn)行設(shè)置 #The number of rounds for boosting

  

?

  二、LightGBM

  1.git地址:https://github.com/Microsoft/LightGBM? ? 入門安裝文檔:https://lightgbm.readthedocs.io/en/latest/? ? 中文文檔:http://lightgbm.apachecn.org/cn/latest/Quick-Start.html

  2. 改進(jìn)思想

    2.1 histgram 算法

    2.2 GOSS

?

?

  3.lightgbm模型文件解析

  配置文件備注1:? 配置文件根據(jù)不同任務(wù)在examples中各個(gè)子文件夾中都有示例,額外的參數(shù)是可以指定categorical_column,這個(gè)主要是區(qū)別于連續(xù)變量,這兩種類型的變量在lightgbm中可以都只占一列,而不需特別進(jìn)行離散化。

  配置文件備注2:? categorical特征和continuous特征的缺失值分別用'NA'和‘-1’表示。

?

  首先,模型文件主要分三部分:模型基本概況 、各個(gè)子樹的信息以及各個(gè)特征重要性說明。

  3.1 模型基本概況

    主要包括:

      num_class=1(二分類與listwise均為1,轉(zhuǎn)換成概率),

      label_index(目標(biāo)所在的列序號(hào)),

      max_feature_idx(特征最大列數(shù),從0開始計(jì)數(shù),和feature_names呼應(yīng))

      feature_infos(列出每個(gè)特征的取值范圍,連續(xù)變量用中括號(hào)區(qū)間表示, 離散值用冒號(hào)分隔,挨個(gè)枚舉列出來, 沒有發(fā)揮作用就用none表示)

      tree_sizes(每棵樹的size)

      version=v2

?

配置信息:

categorical_column = 12,13,14,15,16,17,19,21,23,26,28,30,32,33,34,36,37,40,41,42,43,44,45,46,47,48,49,50,51,52,66,67,160,164,202,203,214,230,231,233,236,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,276,277

?

  3.2 各子樹基本信息

    Tree = 0 :第一棵樹

    num_leaves=128: 葉子節(jié)點(diǎn)數(shù),N個(gè)。

    num_cat:切分特征中,屬于categorical特征的總數(shù),多次切分計(jì)多次。M個(gè)。

    split_feature:每次分裂時(shí)的特征,128個(gè)葉子節(jié)點(diǎn)便有127次分裂,N-1個(gè)

    split_gain: 每次分裂的信息增益,127次分裂便有127個(gè)分裂增益值,N-1個(gè)數(shù)值,且逐漸減小。

    threshold :每個(gè)特征分裂的閾值, 127次分裂便有127個(gè)閾值,N-1個(gè)。

    decision_type:N-1

    left_child:處于左節(jié)點(diǎn)的節(jié)點(diǎn)編號(hào),N-1個(gè)。

    right_child:處于右節(jié)點(diǎn)的節(jié)點(diǎn)編號(hào), N-1個(gè)。

? ?     // 這兩個(gè)共同表明了樹的結(jié)構(gòu),節(jié)點(diǎn)主要分為兩種:內(nèi)部節(jié)點(diǎn)+葉子節(jié)點(diǎn)。?

     // 內(nèi)部節(jié)點(diǎn)的范圍主要是1-N-2 (N-2個(gè)), 葉子節(jié)點(diǎn)以負(fù)號(hào)開頭,主要是-N -- -1 (N個(gè)),合起來剛好2N-2個(gè)。

    leaf_value:各個(gè)葉子節(jié)點(diǎn)的預(yù)測值,N個(gè)。

    leaf_count: 每個(gè)葉子節(jié)點(diǎn)的樣本數(shù)目,N個(gè)。加起來的數(shù)目應(yīng)該是訓(xùn)練樣本的數(shù)量 *?bagging_fraction

    internal_value:N-1個(gè)。各個(gè)中間節(jié)點(diǎn)(即內(nèi)部節(jié)點(diǎn))的預(yù)測值。

    internal_count:N-1個(gè)。 各個(gè)中間節(jié)點(diǎn)(即內(nèi)部節(jié)點(diǎn))上的樣本數(shù)目。

      //internal 表示中間節(jié)點(diǎn), leaf為葉子節(jié)點(diǎn)

    cat_boundaries:M+1個(gè),

    cat_threshold:大小為cat_boundaries最后一個(gè)元素

    shrinkage: 配置文件中設(shè)置,學(xué)習(xí)率。

    

  3.3 特征重要性 

  Column_8=50, 所有特征中最重要的,后面的數(shù)值表示在所有樹中,作為分裂特征的總次數(shù)。
  Column_10=48

  

  

  

轉(zhuǎn)載于:https://www.cnblogs.com/zidiancao/p/8746921.html

總結(jié)

以上是生活随笔為你收集整理的L2R 三:常用工具包介绍之 XGBoost与LightGBM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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