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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

sklearn中GBDT的一些参数、属性、方法的理解

發(fā)布時間:2023/12/19 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sklearn中GBDT的一些参数、属性、方法的理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • GBDT 分類器
    • 引入
    • 重要參數(shù)
      • loss
      • learning_rate
      • subsample
      • n_estimators
      • criterion
      • max_depth
      • min_samples_leaf
      • min_samples_split
      • max_features
      • verbose
    • 重要屬性
    • 重要方法
  • GBDT 回歸器

本文主要是sklearn中GBDT的一些參數(shù)、屬性、方法的理解,如果需要了解基礎(chǔ)的理論知識,可以看看之前發(fā)表的文章: 梯度提升樹(GBDT)相關(guān)知識。

GBDT 分類器

引入

from sklearn.ensemble import GradientBoostingClassifier # 全部參數(shù) GradientBoostingClassifier(ccp_alpha=0.0, criterion='friedman_mse', init=None,learning_rate=0.1, loss='deviance', max_depth=3,max_features=None, max_leaf_nodes=None,min_impurity_decrease=0.0, min_impurity_split=None,min_samples_leaf=1, min_samples_split=2,min_weight_fraction_leaf=0.0, n_estimators=100,n_iter_no_change=None, presort='deprecated',random_state=None, subsample=1.0, tol=0.0001,validation_fraction=0.1, verbose=0,warm_start=False)

重要參數(shù)

loss

字符串類型,默認(rèn)值’deviance’。用于指定損失函數(shù):

  • ‘deviance’:對數(shù)損失函數(shù)
  • ‘exponential’:指數(shù)損失函數(shù),只能用于二分類。
  • learning_rate

    數(shù)值型,默認(rèn)值0.1。用于指定學(xué)習(xí)率,調(diào)參方法:

  • 給定 learning_rate 較小的值,例如0.1。
  • 根據(jù)驗證集準(zhǔn)確率以10倍為單位增大或者減小參數(shù)值。
  • 在找到合適的數(shù)量級后,在此數(shù)量級上微調(diào)。
  • 合適的候選值:[0.001, 0.01, 0.1, 1]

    subsample

    數(shù)值型,默認(rèn)值1。指定采樣出 subsample * n_samples 個樣本用于訓(xùn)練弱學(xué)習(xí)器。注意這里的子采樣和隨機森林不一樣,隨機森林使用的是放回抽樣,而這里是不放回抽樣。 取值在(0, 1)之間,設(shè)置為1表示使用所有數(shù)據(jù)訓(xùn)練弱學(xué)習(xí)器。如果取值小于1,則只有一部分樣本會去做GBDT的決策樹擬合。選擇小于1的比例可以減少方差,即防止過擬合,但是會增加樣本擬合的偏差,因此取值不能太低。

    推薦的取值為:[0.5, 0.6, 0.7, 0.8, 0.9, 1]

    n_estimators

    數(shù)值型參數(shù),默認(rèn)值為100,此參數(shù)指定了弱分類器的個數(shù)。設(shè)置的值越大,精確度越好,但是當(dāng) n_estimators 大于特定值之后,帶來的提升效果非常有限。

    推薦的參數(shù)值為:[120, 300, 500, 800, 1200]

    criterion

    字符串類型,默認(rèn)值為 ‘gini’。這個參數(shù)指定劃分子樹的評估標(biāo)準(zhǔn):

  • ‘entropy’,使用基于信息熵的方法,即計算信息增益
  • ‘gini’,使用基尼系數(shù)(Gini Impurity)
  • **推薦設(shè)置為 ‘gini’,**因為(1)基尼系數(shù)的計算過程相對簡單,而計算信息增益需要進行對數(shù)運算。(2)使用信息增益作為劃分標(biāo)準(zhǔn)時,在使用高緯度數(shù)據(jù)或者噪聲很多的數(shù)據(jù)時容易過擬合。

    max_depth

    數(shù)值型,默認(rèn)值3。這是與剪枝相關(guān)的參數(shù),設(shè)置為None時,樹的節(jié)點會一直分裂,直到:(1)每個葉子都是“純”的;(2)或者葉子中包含?于min_sanples_split個樣本。

    推薦從 max_depth = 3 嘗試增加,觀察是否應(yīng)該繼續(xù)加大深度。

    合適的取值可以是 [3, 5, 8, 15, 25, 30, None]

    如果max_leaf_nodes參數(shù)非None,則忽略此項

    min_samples_leaf

    數(shù)值型,默認(rèn)值1,指定每個葉子結(jié)點包含的最少的樣本數(shù)。參數(shù)的取值除了整數(shù)之外,還可以是浮點數(shù),此時(min_samples_leaf * n_samples)向下取整后的整數(shù)是每個節(jié)點的最小樣本數(shù)。
    此參數(shù)設(shè)置的過小會導(dǎo)致過擬合,反之就會欠擬合。調(diào)整過程:

  • 從min_samples_leaf=5開始上下調(diào)整。
  • 對于類別不多的分類問題,設(shè)置為1通常是合理的選擇。
  • 當(dāng)葉節(jié)點包含樣本數(shù)量差異很大時,建議設(shè)置為浮點數(shù)。
  • 推薦的取值可以是:[1, 2, 5, 10]

    min_samples_split

    數(shù)值型,默認(rèn)值2,指定每個內(nèi)部節(jié)點(非葉子節(jié)點)包含的最少的樣本數(shù)。與min_samples_leaf這個參數(shù)類似,可以是整數(shù)也可以是浮點數(shù)。

    推薦的取值是:[1, 2, 5, 10, 15, 100]

    max_features

    可以為整數(shù)、浮點、字符串,默認(rèn)值為None。此參數(shù)用于限制分枝時考慮的特征個數(shù),超過限制個數(shù)的特征都會被舍棄。

  • 如果是整數(shù),則每次切分只考慮max_features個特征。
  • 如果是浮點數(shù),每次切分只考慮max_features*n_features個特征(max_features指定百分?)。
  • 如果是字符串‘a(chǎn)uto’,則max_features等于n_features。
  • 如果是字符串‘sqrt’,則max_features等于sqrt(n_features)。
  • 如果是字符串‘log2’,則max_features等于log2(n_features)。
  • 如果是字符串None,則max_features等于n_features。
  • 推薦的取值為:[‘log2’, ‘sqrt’, None]

    verbose

    數(shù)值類型,默認(rèn)值為0,表示不輸出日志。如果為1,則每次迭代輸出一次日志。如果大于1,則每間隔 verbose 此迭代輸出一次日志。

    重要屬性

    1,feature_importances_ ,給出了各個特征對模型的重要性。

    2,estimators_,一個數(shù)組,給出了每個弱學(xué)習(xí)器。

    重要方法

    1,fit(X, y) : 訓(xùn)練模型。
    2,predict(X) : 用模型預(yù)測,返回預(yù)測值。
    3,predict_proba(X) : 返回一個數(shù)組,數(shù)組元素依次為各個樣本屬于各個類別的概率值。
    4,score(X, y) : 返回在(X, y)上預(yù)測的準(zhǔn)確率(accuracy)。

    GBDT 回歸器

    引入方式如下:

    from sklearn.ensemble import GradientBoostingRegressor # 所有參數(shù) GradientBoostingRegressor(alpha=0.9, ccp_alpha=0.0, criterion='friedman_mse',init=None, learning_rate=0.1, loss='ls', max_depth=3,max_features=None, max_leaf_nodes=None,min_impurity_decrease=0.0, min_impurity_split=None,min_samples_leaf=1, min_samples_split=2,min_weight_fraction_leaf=0.0, n_estimators=100,n_iter_no_change=None, presort='deprecated',random_state=None, subsample=1.0, tol=0.0001,validation_fraction=0.1, verbose=0, warm_start=False)

    與GBDT分類樹相比較,主要是下面的參數(shù)存在區(qū)別:

    loss

    字符串類型,默認(rèn)值為 ‘ls’,實際可選的有:

    • ‘ls’:此時損失函數(shù)為平方損失函數(shù),使用最小二乘回歸。

    • ‘lad’:此時使用指數(shù)絕對值損失函數(shù)。

    • ‘huber’:此時損失函數(shù)為上述兩者的綜合,即誤差較小時,采用平方損失,在誤差較大時,采用絕對值損失。

    • ‘quantile’:分位數(shù)回歸(分位數(shù)指的是百分之幾),采用絕對值損失。

    criterion

    字符串類型,默認(rèn)值為 ‘friedman_mse’,是衡量回歸效果的指標(biāo)。可選的有:

    • ‘friedman_mse’:改進型的均方誤差
    • ‘mse’:標(biāo)準(zhǔn)的均方誤差
    • ‘mae’:平均絕對誤差

    除了這兩個參數(shù)之外,其他參數(shù)、屬性、方法的含義與用法與上文提到的GBDT分類器的參數(shù)基本一致。

    參考文章:

    sklearn.ensemble.GradientBoostingClassifier

    sklearn.ensemble.RandomForestRegressor

    scikit-learn 梯度提升樹(GBDT)調(diào)參小結(jié)

    總結(jié)

    以上是生活随笔為你收集整理的sklearn中GBDT的一些参数、属性、方法的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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