0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用SHAP實現(xiàn)機器學習模型的輸出預測

汽車玩家 ? 來源:人工智能遇見磐創(chuàng) ? 作者:人工智能遇見磐創(chuàng) ? 2020-05-04 18:09 ? 次閱讀

解釋產(chǎn)生特定NBA球員預測薪水的特征(github)

利用SHAP實現(xiàn)機器學習模型的輸出預測

我最喜歡的庫之一是SHAP,它是解釋機器學習模型生成的輸出不可或缺的工具。 SHAP是幾種不同的當前解釋模型的頂點,并且通過為每個特征分配重要性值來表示用于解釋模型預測的統(tǒng)一框架。反過來,可以繪制這些重要性值,并用于產(chǎn)生任何人都可以輕易解釋的漂亮可視化。在您閱讀時,您會注意到主題是可解釋性,以及為什么它在機器學習中如此迫切。

在本文中,我提供了一個外行人對其作者Scott Lundberg和Su-In Lee的原始論文的評論

目的

線性模型易于解釋。 考慮用于預測NBA球員薪水的經(jīng)典線性回歸模型(假設(shè)薪水完全基于每場比賽得分):

利用SHAP實現(xiàn)機器學習模型的輸出預測

我們簡單地將其解釋為β1,即X對Y單位增加的平均影響。換句話說,如果凱文杜蘭特得到27.5分,那么我們所要做的就是乘以β1來預測他的薪水。 使用線性模型,很明顯模型如何達到預測。

但是神經(jīng)網(wǎng)絡(luò)呢,那里有重復的矩陣乘法和激活函數(shù)? 我們?nèi)绾卧谳敵龅纳舷挛闹薪忉屵@一點?

利用SHAP實現(xiàn)機器學習模型的輸出預測

隨著我們轉(zhuǎn)向更復雜的模型,具有更高的準確性,我們發(fā)現(xiàn)越來越難以解釋這些模型如何產(chǎn)生預測。 由于以下幾個原因,這是一個岌岌可危的困境:

·模型偏差是一個重要問題,因為它們最終可能會對決策產(chǎn)生不公平的影響。 一些數(shù)據(jù)存在內(nèi)在偏差,特別是在涉及種族和性別偏見時,這會對模型的預測產(chǎn)生負面影響。 由于沒有好的方法來解釋模型如何做出決定,因此很難確定這些固有的偏見。

·模型改進也很困難如果您不知道要改進什么。當然,您可以調(diào)整超參數(shù),直到獲得最佳分數(shù),但您擁有的數(shù)據(jù)類型更為重要。了解模型中不同特征的價值可為數(shù)據(jù)收集提供有價值的反饋,告知我們哪些類型的數(shù)據(jù)最重要.

·用戶信任對于采用人工智能系統(tǒng)非常重要。 在人工智能治理中心最近的一份報告中,作者報告說:"有更多的美國人認為高級機器智能會比那些認為對人類有益的人有害。"復雜模型的可解釋性有助于 更好的理解,建立模型如何做出決策的直覺,并最終產(chǎn)生用戶信任。

添加功能歸因方法

為了解釋更復雜的模型,我們需要一個更接近原始模型的簡單解釋模型。

假設(shè)我們有一個形式為f(x)的復雜模型,那么解釋模型g(z')≈f(x)。

利用SHAP實現(xiàn)機器學習模型的輸出預測

稍微分解g(z'),我們將一些效應φ?歸因于每個特征z'。 通過總結(jié)所有這些效果及其特征,我們可以近似原始模型的輸出。 這被定義為附加特征歸屬方法。 事實證明,其他當前的解釋模型遵循相同的解釋模型,允許它們?nèi)拷y(tǒng)一到一個單一的框架中。

附加特征歸屬方法的屬性

1.局部精度:最重要的屬性之一是解釋模型能夠匹配原始模型的輸出。

2.缺失:如果缺少特征,則該特征沒有效果,或φ?= 0。

3.一致性:如果模型發(fā)生變化,使得特征貢獻增加或保持不變,那么特征屬性或φ?不應減少。

這導致我們SHAP值,它統(tǒng)一了以前的方法,并展示了上述屬性。

SHAP值

SHAP值(φ?)用于描述特征的重要性。 請考慮以下圖表:

利用SHAP實現(xiàn)機器學習模型的輸出預測

f(x)是模型預測的輸出,E[f(z)]是如果沒有特征則預測的基值。 換句話說,E[f(z)]只是平均模型輸出。

當我們包括一個特征x 1,然后φ1,解釋我們?nèi)绾螐幕档叫碌念A測值,現(xiàn)在由E [f(z)|給出。 z 1 = x 1]。 對剩余的變量x 1,x 2,x 3重復這個過程,估計φ1,φ2和φ3的SHAP值,顯示模型最終如何到達預測輸出f(x)。

不同口味的SHAP(different favours of SHAP)

SHAP有多種實現(xiàn)方式,每種方式都適用于特定的模型類型,可以實現(xiàn)更快的逼近。

·TreeExplainer

TreeExplainer專為樹集合方法開發(fā),如XGBoost,LightGBM或CatBoost。

·DeepExplainer

DeepExplainer是為深度學習模型開發(fā)的,支持TensorFlow / Keras。

·GradientExplainer

GradientExplainer也是為深度學習模型中的SHAP值而開發(fā)的,但速度比DeepExplainer慢,并且做出了不同的假設(shè)。 此方法基于Integrated Gradient歸因方法,并支持TensorFlow / Keras / PyTorch。

·KernelExplainer

KernelExplainer使用加權(quán)線性回歸近似任何類型模型的SHAP值。

使用特定于模型類型的算法(TreeExplainer,DeepExplainer)而不是通用KernelExplainer更快更有效。

總結(jié)

作者發(fā)現(xiàn)人類解釋和SHAP解釋之間的關(guān)聯(lián)比任何其他方法更強,這表明了SHAP的強大和直觀性。 計算出的SHAP值很容易在美觀,簡單的圖中顯示,這些圖解釋了特征如何影響特定預測。 這使得SHAP成為一個令人信服的工具,可以自信地解釋和解釋任何模型。

有關(guān)如何實現(xiàn)SHAP的教程,請查看我的筆記本,看看我們?nèi)绾谓忉対u變提升樹的預測結(jié)果。 SHAP github還提供了很多資源,可以提供有關(guān)如何實現(xiàn)DeepExplainer,KernelExplainer和其他有用功能的更多示例。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4580

    瀏覽量

    92359
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8325

    瀏覽量

    132194
收藏 人收藏

    評論

    相關(guān)推薦

    AI大模型與深度學習的關(guān)系

    AI大模型與深度學習之間存在著密不可分的關(guān)系,它們互為促進,相輔相成。以下是對兩者關(guān)系的介紹: 一、深度學習是AI大模型的基礎(chǔ) 技術(shù)支撐 :深度學習
    的頭像 發(fā)表于 10-23 15:25 ?136次閱讀

    AI大模型與傳統(tǒng)機器學習的區(qū)別

    AI大模型與傳統(tǒng)機器學習在多個方面存在顯著的區(qū)別。以下是對這些區(qū)別的介紹: 一、模型規(guī)模與復雜度 AI大模型 :通常包含數(shù)十億甚至數(shù)萬億的參
    的頭像 發(fā)表于 10-23 15:01 ?141次閱讀

    【《時間序列與機器學習》閱讀體驗】+ 時間序列的信息提取

    本人有些機器學習的基礎(chǔ),理解起來一點也不輕松,加油。 作者首先說明了時間序列的信息提取是時間序列分析的一個重要環(huán)節(jié),目標是從給定的時間序列數(shù)據(jù)中提取出有用的信息和特征,以支持后續(xù)的分析和預測任務(wù),可以
    發(fā)表于 08-14 18:00

    【「時間序列與機器學習」閱讀體驗】+ 簡單建議

    這本書以其系統(tǒng)性的框架和深入淺出的講解,為讀者繪制了一幅時間序列分析與機器學習融合應用的宏偉藍圖。作者不僅扎實地構(gòu)建了時間序列分析的基礎(chǔ)知識,更巧妙地展示了機器學習如何在這一領(lǐng)域發(fā)揮巨
    發(fā)表于 08-12 11:21

    【《大語言模型應用指南》閱讀體驗】+ 基礎(chǔ)知識學習

    今天來學習大語言模型在自然語言理解方面的原理以及問答回復實現(xiàn)。 主要是基于深度學習和自然語言處理技術(shù)。 大語言模型涉及以下幾個過程: 數(shù)據(jù)收
    發(fā)表于 08-02 11:03

    利用Matlab函數(shù)實現(xiàn)深度學習算法

    在Matlab中實現(xiàn)深度學習算法是一個復雜但強大的過程,可以應用于各種領(lǐng)域,如圖像識別、自然語言處理、時間序列預測等。這里,我將概述一個基本的流程,包括環(huán)境設(shè)置、數(shù)據(jù)準備、模型設(shè)計、訓
    的頭像 發(fā)表于 07-14 14:21 ?1595次閱讀

    MATLAB預測模型哪個好

    ,適用于預測連續(xù)型數(shù)據(jù)。它假設(shè)輸入變量(自變量)與輸出變量(因變量)之間存在線性關(guān)系。線性回歸模型的表達式為: y = β0 + β1x1 + β2x2 + ... + βnxn + ε 其中,y是
    的頭像 發(fā)表于 07-11 14:31 ?331次閱讀

    matlab預測模型有哪些

    環(huán)境,使其成為預測模型開發(fā)和實現(xiàn)的理想平臺。本文將詳細介紹MATLAB中常用的預測模型及其應用。 線性回歸
    的頭像 發(fā)表于 07-11 14:27 ?600次閱讀

    Al大模型機器

    豐富的知識儲備。它們可以涵蓋各種領(lǐng)域的知識,并能夠回答相關(guān)問題。靈活性與通用性: AI大模型機器人具有很強的靈活性和通用性,能夠處理各種類型的任務(wù)和問題。持續(xù)學習和改進: 這些模型可以
    發(fā)表于 07-05 08:52

    名單公布!【書籍評測活動NO.35】如何用「時間序列與機器學習」解鎖未來?

    設(shè)備的運行狀況,生成各種維度的報告。 同時,通過大數(shù)據(jù)分析和機器學習技術(shù),可以對業(yè)務(wù)進行預測和預警,從而協(xié)助社會和企業(yè)進行科學決策、降低成本并創(chuàng)造新的價值。 當今時代,數(shù)據(jù)無處不在,而時間序列數(shù)據(jù)更是
    發(fā)表于 06-25 15:00

    如何使用TensorFlow構(gòu)建機器學習模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個簡單的機器學習模型。
    的頭像 發(fā)表于 01-08 09:25 ?874次閱讀
    如何使用TensorFlow構(gòu)建<b class='flag-5'>機器</b><b class='flag-5'>學習</b><b class='flag-5'>模型</b>

    如何基于深度學習模型訓練實現(xiàn)工件切割點位置預測

    Hello大家好,今天給大家分享一下如何基于深度學習模型訓練實現(xiàn)工件切割點位置預測,主要是通過對YOLOv8姿態(tài)評估模型在自定義的數(shù)據(jù)集上訓
    的頭像 發(fā)表于 12-22 11:07 ?688次閱讀
    如何基于深度<b class='flag-5'>學習</b><b class='flag-5'>模型</b>訓練<b class='flag-5'>實現(xiàn)</b>工件切割點位置<b class='flag-5'>預測</b>

    如何基于深度學習模型訓練實現(xiàn)圓檢測與圓心位置預測

    Hello大家好,今天給大家分享一下如何基于深度學習模型訓練實現(xiàn)圓檢測與圓心位置預測,主要是通過對YOLOv8姿態(tài)評估模型在自定義的數(shù)據(jù)集上
    的頭像 發(fā)表于 12-21 10:50 ?1591次閱讀
    如何基于深度<b class='flag-5'>學習</b><b class='flag-5'>模型</b>訓練<b class='flag-5'>實現(xiàn)</b>圓檢測與圓心位置<b class='flag-5'>預測</b>

    LabVIEW進行癌癥預測模型研究

    LabVIEW進行癌癥預測模型研究 癌癥是一種細胞異常增生的疾病。隨著年齡的增長,細胞分裂速度放緩,但癌細胞會失去控制地不斷分裂,形成可能良性或惡性的腫瘤。 2012年的國際癌癥數(shù)據(jù)顯示,新發(fā)癌癥
    發(fā)表于 12-13 19:04

    淺析機器學習的基本步驟

    機器學習中,機器學習的效率在很大程度上取決于它所提供的數(shù)據(jù)集,數(shù)據(jù)集的大小和豐富程度也決定了最終預測的結(jié)果質(zhì)量。目前在算力方面,量子計算能
    發(fā)表于 10-30 11:13 ?353次閱讀
    淺析<b class='flag-5'>機器</b><b class='flag-5'>學習</b>的基本步驟