模型的開發,目前在互金領域場景中因為變量多,開發周期短,目前用得最多的就是XGB、LGB這類的機器學習模型。
比如我們之前跟大家輸出的關于個人信貸反欺詐評分卡的開發内容裡,我們用的就是lightgbm來建模的,相關的操作細節如下:
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
關于這一類機器學習模型,雖然說有黑箱的内容在裡面,但常規上我們還是可以用特征重要性,也就是feature_importance來查看特征對模型重要度的貢獻:
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
【圖:繪制lgb模型的特征重要性的排序圖】
關于模型特征可解釋性的的内容,除了如以上提供的模型都有importance這一接口外,目前常用的還有SHAP這一個模型可解釋性的内容,今天我們跟大家講講這個内容,而且還會實操一個隻能用SHAP來演繹模型特征重要性的算法。
一.SHAP介紹
可解釋機器學習在這幾年慢慢成為了機器學習的重要研究方向。作為數據科學家需要防止模型存在偏見,且幫助決策者理解如何正确地使用我們的模型。越是嚴苛的場景,越需要模型提供證明它們是如何運作且避免錯誤的證據
關于模型解釋性,除了線性模型和決策樹這種天生就有很好解釋性的模型意外,sklean中有很多模型都有importance這一接口,可以查看特征的重要性。如這裡提到的特征重要性的内容:
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
關于特征的重要性,比如上面我們用xgboost這種集成模型時是用feature_importance方法的。那對于某些算法,比如異常檢測中的孤立森林算法,隻能用shap value來表達。
二.如何實現SHAP
實現SHAP,可以直接調用SHAP模塊就能實現。本次在實操過程中,我們用之前跟大家介紹過的孤立森林這個算法,來特别實現,因為孤立森林接口直接調不出feature_importance的。
如上所述,shap是Python開發的一個"模型解釋"包,可以解釋任何機器學習模型的輸出。其名稱來源于SHapley Additive exPlanation,在合作博弈論的啟發下shap構建一個加性的解釋模型,所有的特征都視為“貢獻者”。對于每個預測樣本,模型都産生一個預測值,shap value就是該樣本中每個特征所分配到的數值。
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
Python中shap值的計算由shap這個package實現,下面我們對訓練出的base_iforest模型,計算其shap值。先引用package并且獲得解釋器explainer,再獲取各個樣本的shap值,然後調用summary_plot繪制重要性排序圖,可以看到繪制出的圖表類似xgboost的feature_importance圖,shap value可理解為一個特征對目标變量影響程度的絕對值的均值作為這個特征的重要性。
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
關于本文所提及的機器學習模型相關的數據集跟代碼實操内容,可以同步至知識星球後台,查看完整版本内容,歡迎星球同學移步到知識星球查收完整内容:
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
...
~原創文章
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!