日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 【機(jī)器學(xué)習(xí)】樹模型決策的可解釋性與微調(diào)(Python)(1)

          【機(jī)器學(xué)習(xí)】樹模型決策的可解釋性與微調(diào)(Python)(1)

          發(fā)布人:數(shù)據(jù)派THU 時間:2022-10-20 來源:工程師 發(fā)布文章

          本文示例項目沿用之前文章的數(shù)據(jù):一文梳理金融風(fēng)控建模全流程(Python))。


          一、樹模型的解釋性


          集成學(xué)習(xí)樹模型因為其強(qiáng)大的非線性能力及解釋性,在表格類數(shù)據(jù)挖掘等任務(wù)中應(yīng)用頻繁且表現(xiàn)優(yōu)異。


          模型解釋性對于某些領(lǐng)域(如金融風(fēng)控)是極為看重的,對于樹模型的解釋性,我們常??梢酝ㄟ^輸出樹模型的結(jié)構(gòu)或使用shap等解釋性框架的方法:


          graphviz 輸出樹結(jié)構(gòu)


          # 需要先安裝https://graphviz.org/download/import osos.environ["PATH"] += os.pathsep + 'D:/Program Files/Graphviz/bin/'   # 安裝路徑
          for k in range(n_estimators):  #遍歷n_estimators棵樹的結(jié)構(gòu)    ax = lightgbm.plot_tree(lgb, tree_index=k, figsize=(30,20), show_info=['split_gain','internal_value','internal_count','internal_weight','leaf_count','leaf_weight','data_percentage'])
          plt.show()


          圖片

          輸出樹的決策路徑是很直接的方法,但對于大規(guī)模(樹的數(shù)目>3基本就比較繞了)的集成樹模型來說,決策就太過于復(fù)雜了,最終決策要每棵樹累加起來,很難理解。。(相關(guān)樹的可解釋工作,可參考如下論文:https://www.cs.sjtu.edu.cn/~kzhu/papers/kzhu-infocode.pdf)


          接下介紹下常用的幾種框架的方法輔助去解釋模型:


          shap框架解釋性


          SHAP基于Shapley值,Shapley值是經(jīng)濟(jì)學(xué)家Lloyd Shapley提出的博弈論概念。它的核心思想是計算特征對模型輸出的邊際貢獻(xiàn),再從全局和局部兩個層面對“黑盒模型”進(jìn)行解釋。如下幾行代碼就可以展示該模型的變量對于決策的影響,以Insterest歷史利率為例,利率特征值越高(藍(lán)色為低,紅色為高),對應(yīng)shap值越高,說明決策結(jié)果越趨近1(在本例金融風(fēng)控項目里面也就是數(shù)值越大,越容易違約)


          ## 本文代碼請見 https://github.com/aialgorithm/Blog/tree/master/projects/%E6%B5%B7%E5%A4%96%E9%87%91%E8%9E%8D%E9%A3%8E%E6%8E%A7%E5%AE%9E%E8%B7%B5
          ### 需要先pip install shapimport shap
          explainer = shap.TreeExplainer(lgb)shap_values = explainer.shap_values(pd.concat([train_x,test_x]))shap.summary_plot(shap_values[1], pd.concat([train_x,test_x]),max_display=5,plot_size=(5,5)) #特征重要性可視化


          圖片


          其他模型可解釋性框架


          • LIME


          在可解釋性領(lǐng)域,最早出名的方法之一是LIME。它可以幫助解釋機(jī)器學(xué)習(xí)模型正在學(xué)習(xí)什么以及為什么他們以某種方式預(yù)測。Lime目前支持對表格的數(shù)據(jù),文本分類器和圖像分類器的解釋。


          知道為什么模型會以這種方式進(jìn)行預(yù)測對于調(diào)整算法是至關(guān)重要的。借助LIME的解釋,能夠理解為什么模型以這種方式運行。如果模型沒有按照計劃運行,那么很可能在數(shù)據(jù)準(zhǔn)備階段就犯了錯誤。


          圖片


          • Shapash


          “ Shapash是一個使機(jī)器學(xué)習(xí)對每個人都可以進(jìn)行解釋和理解Python庫。Shapash提供了幾種類型的可視化,顯示了每個人都能理解的明確標(biāo)簽。數(shù)據(jù)科學(xué)家可以更輕松地理解他們的模型并分享結(jié)果。最終用戶可以使用最標(biāo)準(zhǔn)的摘要來理解模型是如何做出判斷的?!?/span>


          Shapash庫可以生成交互式儀表盤,并收集了許多可視化圖表。與外形/石灰解釋性有關(guān)。它可以使用SHAP/Lime作為后端,也就是說它只提供了更好看的圖表。


          使用Shapash構(gòu)建特征貢獻(xiàn)圖


          圖片


          • InterpretML


          InterpretML是一個開源的Python包,它向研究人員提供機(jī)器學(xué)習(xí)可解釋性算法。InterpretML支持訓(xùn)練可解釋模型(glassbox),以及解釋現(xiàn)有的ML管道(blackbox)。


          圖片


          • ELI5


          ELI5是一個可以幫助調(diào)試機(jī)器學(xué)習(xí)分類器并解釋它們的預(yù)測的Python庫。目前支持以下機(jī)器學(xué)習(xí)框架:scikit-learn、XGBoost、LightGBM CatBoost、Keras。


          ELI5有兩種主要的方法來解釋分類或回歸模型:檢查模型參數(shù)并說明模型是如何全局工作的;檢查模型的單個預(yù)測并說明什么模型會做出這樣的決定。


          圖片


          • OmniXAI


          OmniXAI (Omni explained AI的簡稱),是Salesforce最近開發(fā)并開源的Python庫。它提供全方位可解釋的人工智能和可解釋的機(jī)器學(xué)習(xí)能力來解決實踐中機(jī)器學(xué)習(xí)模型在產(chǎn)生中需要判斷的幾個問題。對于需要在ML過程的各個階段解釋各種類型的數(shù)據(jù)、模型和解釋技術(shù)的數(shù)據(jù)科學(xué)家、ML研究人員,OmniXAI希望提供一個一站式的綜合庫,使可解釋的AI變得簡單。


          圖片



          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

          攝像頭相關(guān)文章:攝像頭原理


          關(guān)鍵詞: AI

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉