Shapley 值:解釋個體預測機率您是否曾經負責預測誰會取消您公司的服務? 或哪些患者會停止用藥? 或者哪些人將成為您的新產品的早期採用者? 您可以使用相同的方法回答這些業務問題,仔細準備資料並建立不同的模型,以根據特定的統計標準進行比較並選擇最佳模型。 小菜一碟,對吧? 或許。
但是,如果您需要找出預測的主要影響因素,該怎麼辦?單身的人? 有些建模演算法不能輕易回答這個問題。 傳統的迴歸模型非常適合回答此類問題,因為每個參數估計都有一個包含係數的方程式。 對於基於樹的演算法或更複雜的模型(如神經網路)又如何呢? 解釋單一預測更為複雜並且通常難以解釋。 儘管這些更複雜的演算法之一在許多情況下對於預測結果更可靠,但利害關係人通常會放棄你的辛勤工作。
如果您能兩全其美怎麼辦? 表現最佳的模型以及向利害關係人輕鬆解釋個人預測機率的方法,以便您的工作有更好的機會被用作業務工具。 滿足 Shapley 值 — JMP 17 中的一項新功能。
沙普利值提供了我們一直在尋找的解決這種情況的解決方案。 這些值將模型中每個因素的貢獻量化到行級別。 使用平均預測作為基線,每行資料可以依因子分解為機率之和。 這意味著你可以說 Sean 有 79% 的機會停止服藥,與普通患者相比,他可能停止服藥的主要原因是他的年齡。
為什麼這有這麼大的事? 如果沒有沙普利值,我們可以更普遍地談論感興趣人群中結果的驅動因素,但比較具有相似特徵的個體並理解為什麼他們之間的預測不同並不是那麼簡單。 在基於樹的演算法中,預測公式是基於單一葉子或樹創建的。 老實說,它們可能會變得非常混亂。 Shapley 值透過將預測分解為每個因素的單獨貢獻來解決此問題,它會查看整個模型,而不是逐葉、逐樹或逐節點。

您如何開始探索這個新功能? 這很簡單。 將刻畫器加入模型結果中,然後選擇「儲存 Shapley 值」選項。 這會將每個因素/反應水準組合的各個欄位儲存到資料表中。

因此,下次當您的利害關係人詢問您是否可以根據藥劑師行為或行銷策略影響的因素確定哪些患者最有可能停止用藥時,您可以放心地說“是”,無論發生什麼您正在創建的模型類型。

如果您需要找出預測的主要影響因素該怎麼辦?單身的人? 有些建模演算法不能輕易回答這個問題。 有些方法可以。 輸入 Shapley 值。
預測建模和機器學習回覆:沙普利值:解釋個體預測機率這是一個很好的選擇,我喜歡它可用於許多模型(在先前的版本中,只有 XGBoost 外掛程式能夠建立 SHAP 值)。
然而,現在的選擇非常慢。 我甚至在較小的資料集中也嘗試過,但 JMP 通常沒有響應。 我建議專注於並行化優化在幕後運行的程式碼,使其更快,現在速度如此之慢,軟體更有可能崩潰。
回覆:沙普利值:解釋個體預測機率@克里斯汀布拉德福做得非常好,感謝分享這個實際例子!
回覆:沙普利值:解釋個體預測機率感謝克里斯汀分享。
BR。
菲利普
回覆:沙普利值:解釋個體預測機率@jpol當然! 此範例是使用模擬/樣本資料製作的,旨在以清晰簡潔的方式說明該功能。 所附資料表中的第 734 行對應於我的螢幕截圖中的 Sean。 如果您對此功能還有更多疑問,請告訴我。 它確實是該軟體最近最令人興奮的新增功能之一(在我看來!)。
親切的問候,
克里斯汀
回覆:沙普利值:解釋個體預測機率感謝 Kristen 撰寫有關 Shapley 值的文章。
您能否發布此處使用的數據表,以便在我自己的筆記型電腦上運行相同的範例?
謝謝,
菲利普
回覆:沙普利值:解釋個體預測機率@dmmdiego感謝您對性能的回饋。您介意與 JMP 技術支援分享此資訊(請發送電子郵件至support@jmp.com )並提供效能緩慢或無回應的範例嗎?這將促使我們參與開發,以便我們可以在未來的版本中實際改進它。在您的電子郵件中,請複製這篇文章並提及我們在這裡進行了一些對話。
乾杯,
@PatrickGiuliano (JMP 技術支援)
回覆: 沙普利值:解釋個體預測機率這個例子可以直接用決策樹模型給出最終的分析結果嗎?
謝謝!
回覆: 沙普利值:解釋個體預測機率我在圖中找到了最終的操作步驟。
但如果您可以直接使用 JSL 來完成此操作呢?
感謝專家! 