成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
    人工智能開發(fā)者 正文
    發(fā)私信給skura
    發(fā)送

    0

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    本文作者: skura 2019-11-18 18:29
    導(dǎo)語:與 LightGBM 和 GBoost 比較,它是否具有優(yōu)勢?

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    James Pond 在 Unsplash 雜志上的照片

    Stanford ML Group 最近在他們的論文中發(fā)表了一個新算法,其實現(xiàn)被稱為 NGBoost。該算法利用自然梯度將不確定性估計引入到梯度增強中。本文試圖了解這個新算法,并與其他流行的 boosting 算法 LightGBM 和 XGboost 進行比較,以了解它在實踐中是如何工作的。

    注:Stanford ML Group 發(fā)表的論文網(wǎng)址為:https://arxiv.org/abs/1910.03225,有興趣的同學(xué)可以下載學(xué)習(xí)~

    本文的主要內(nèi)容包括以下三個部分:

    1. 什么是自然梯度增強?

    2. 經(jīng)驗驗證——與 LightGBM 和 XGBoost 的比較

    3. 結(jié)論

    1.什么是自然梯度增強?

    正如我在簡介中所寫那樣,NGBoost 是一種新的 boosting 算法,它使用自然梯度 boosting,是一種用于概率預(yù)測的模塊化 boosting 算法。該算法由 Base learners 、參數(shù)概率分布和評分規(guī)則組成。我將簡要地解釋一下這些術(shù)語是什么。

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    • Base learners

    該算法使用 Base learners。它接受輸入 x,輸出用來形成條件概率。這些 Base learners 使用 scikit-learn 的決策樹作為樹型學(xué)習(xí)者,使用嶺回歸作為線性學(xué)習(xí)者。

    • 參數(shù)概率分布

    參數(shù)概率分布是一種條件分布。這是由 Base learners 輸出的加法組合形成的。

    • 評分規(guī)則

    評分規(guī)則采用預(yù)測的概率分布和對目標特征的觀察來對預(yù)測結(jié)果進行評分,真實的結(jié)果分布期望值得到最好的分數(shù)。該算法使用最大似然估計(MLE)或 CRPS(連續(xù)排序概率得分)。

    我們剛剛介紹了 NGBoost 的基本概念。我建議你閱讀原稿以便進一步理解(用數(shù)學(xué)符號更容易理解算法)。

    2.經(jīng)驗驗證:與 LightGBM 和 XGBoost 的比較

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    billy lee 在 Unsplash 雜志上的照片

    讓我們實現(xiàn) NGBoost,看看它的性能如何。論文還對各種數(shù)據(jù)集進行了實驗。他們比較了 MC-dropout、Deep-Ensembles 和 NGBoost 在回歸問題中的表現(xiàn),NGBoost 表現(xiàn)出了很強的競爭力。在這篇博文中,我想展示一下這個模型在 Kaggle 上著名的房價預(yù)測數(shù)據(jù)集上的性能。這個數(shù)據(jù)集包含 81 個特征,1460 行,目標是預(yù)測銷售價格。讓我們看看 NGBoost 如何處理這些情況。

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    目標特征的分布

    由于測試算法的性能是本文的目的,我們將跳過整個特征工程部分,并將使用 Nanashi 的解決方案。

    導(dǎo)入包:

    # import packages

    import pandas as pd


    from ngboost.ngboost import NGBoost

    from ngboost.learners import default_tree_learner

    from ngboost.distns import Normal

    from ngboost.scores


    import MLE import lightgbm as lgb


    import xgboost as xgb


    from sklearn.model_selection import train_test_split

    from sklearn.metrics import mean_squared_error

    from math import sqrt

    在這里,我將使用上面的默認學(xué)習(xí)者、分布和評分規(guī)則,看看結(jié)果如何變化。

    # read the dataset

    df = pd.read_csv('~/train.csv')


    # feature engineering

    tr, te = Nanashi_solution(df)




    現(xiàn)在使用 NGBoost 算法進行預(yù)測。

    # NGBoost

    ngb = NGBoost(Base=default_tree_learner, Dist=Normal, Score=MLE(),

    natural_gradient=True,verbose=False)


    ngboost = ngb.fit(np.asarray(tr.drop(['SalePrice'],1)),

    np.asarray(tr.SalePrice))


    y_pred_ngb = pd.DataFrame(ngb.predict(te.drop(['SalePrice'],1)))




    對 LightGBM 和 XGBoost 也做一樣的事情:

    # LightGBM

    ltr = lgb.Dataset(tr.drop(['SalePrice'],1),label=tr['SalePrice'])


    param = {

    'bagging_freq': 5,

    'bagging_fraction': 0.6,

    'bagging_seed': 123,

    'boost_from_average':'false',

    'boost': 'gbdt',

    'feature_fraction': 0.3,

    'learning_rate': .01,

    'max_depth': 3,

    'metric':'rmse',

    'min_data_in_leaf': 128,

    'min_sum_hessian_in_leaf': 8,

    'num_leaves': 128, 'num_threads': 8,

    'tree_learner': 'serial',

    'objective': 'regression',

    'verbosity': -1,

    'random_state':123,

    'max_bin': 8,

    'early_stopping_round':100

    }


    lgbm = lgb.train(param,ltr,num_boost_round=10000,valid_sets= [(ltr)],verbose_eval=1000)


    y_pred_lgb = lgbm.predict(te.drop(['SalePrice'],1))

    y_pred_lgb = np.where(y_pred>=.25,1,0)


    # XGBoost

    params = {

    'max_depth': 4, 'eta': 0.01,

    'objective':'reg:squarederror',

    'eval_metric': ['rmse'],

    'booster':'gbtree',

    'verbosity':0,

    'sample_type':'weighted',

    'max_delta_step':4,

    'subsample':.5,

    'min_child_weight':100,

    'early_stopping_round':50

    }


    dtr, dte = xgb.DMatrix(tr.drop(['SalePrice'],1),label=tr.SalePrice),

    xgb.DMatrix(te.drop(['SalePrice'],1),label=te.SalePrice)


    num_round = 5000

    xgbst = xgb.train(params,dtr,num_round,verbose_eval=500)


    y_pred_xgb = xgbst.predict(dte)

    現(xiàn)在我們用所有算法進行了預(yù)測。讓我們檢查一下它們的準確性。我們將使用與這次 kaggle 競賽相同的標準,RMSE。

    # Check the results

    print('RMSE: NGBoost',

    round(sqrt(mean_squared_error(X_val.SalePrice,y_pred_ngb)),4))

    print('RMSE: LGBM',

    round(sqrt(mean_squared_error(X_val.SalePrice,y_pred_lgbm)),4))

    print('RMSE: XGBoost',

    round(sqrt(mean_squared_error(X_val.SalePrice,y_pred_xgb)),4))

    以下是預(yù)測結(jié)果的總結(jié)。

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    預(yù)測結(jié)果總結(jié)

    看來 NGBoost 的性能優(yōu)于其他著名的 boosting 算法。公平地說,我覺得如果我調(diào)整 BGBoost 的參數(shù),它會更好。

    NGBoost 與其他 boosting 算法最大的區(qū)別之一是可以返回每個預(yù)測的概率分布。這可以通過使用 pred_dist 函數(shù)可視化。此函數(shù)能夠顯示概率預(yù)測的結(jié)果。

    # see the probability distributions by visualising

    Y_dists = ngb.pred_dist(X_val.drop(['SalePrice'],1))

    y_range = np.linspace(min(X_val.SalePrice), max(X_val.SalePrice), 200)

    dist_values = Y_dists.pdf(y_range).transpose()


    # plot index 0 and 114

    idx = 114

    plt.plot(y_range,dist_values[idx])

    plt.title(f"idx: {idx}")

    plt.tight_layout()

    plt.show()

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    概率分布示例

    上面的圖表是每個預(yù)測的概率分布。X 軸顯示銷售價格的日志值(目標特征)。我們可以觀察到,指數(shù) 0 的概率分布比指數(shù) 114 的更寬。

    結(jié)論與思考

    從實驗結(jié)果可以看出,NGBoost 算法與其他著名的 boosting 算法具有相同的性能。然而,計算時間比其他兩種算法要長得多。這可以通過使用子采樣方法來改進。此外,在我的印象中,NGBost 包仍在開發(fā)中,例如,沒有提前停止選項,沒有顯示中間結(jié)果的選項,選擇 Base leaners 的靈活性(到目前為止,我們只能在決策樹和嶺回歸之間選擇),設(shè)置一個隨機狀態(tài)種子,等等。我相信這些要點將很快得到落實。

    你也可以在我的 GitHub 頁面上找到我在這篇文章中使用的代碼:https://github.com/kyosek/NGBoost-experiments 

    總結(jié)

    • NGBoost 是一種返回概率分布的 boosting 算法。

    • 自然梯度增強,一種用于概率預(yù)測的模塊化增強算法。這包括 Base leaners、參數(shù)概率分布和評分規(guī)則。

    • NGBoost 預(yù)測與其他流行的 boosting 算法相比具有很大的競爭力。

    參考文獻:

    [1] T. Duan, et al., NGBoost: Natural Gradient Boosting for Probabilistic Prediction (2019), ArXiv 1910.03225

    via:https://towardsdatascience.com/ngboost-explained-comparison-to-lightgbm-and-xgboost-fda510903e53

    雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

    雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

    劍指LightGBM和XGboost!斯坦福發(fā)表NGBoost算法

    分享:
    當(dāng)月熱門文章
    最新文章
    請?zhí)顚懮暾埲速Y料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說