【机器学习】Github8.9K,目前最佳模型解释器-LIME!
作者:杰少
模型解釋性--LIME算法
簡 介
簡單的模型例如線性回歸,LR等模型非常易于解釋,但在實際應用中的效果卻遠遠低于復雜的梯度提升樹模型以及神經網(wǎng)絡等模型。現(xiàn)在大部分互聯(lián)網(wǎng)公司的建模都是基于梯度提升樹或者神經網(wǎng)絡模型等復雜模型,遺憾的是,這些模型雖然效果好,但是我們卻較難對其進行很好地解釋,這也是目前一直困擾著大家的一個重要問題,現(xiàn)在大家也越來越加關注模型的解釋性。
本文介紹一種解釋機器學習模型輸出的方法LIME。
LIME
LIME(Local Interpretable Model-agnostic Explanations)支持的模型包括:
結構化模型的解釋;
文本分類器的解釋;
圖像分類器的解釋;
LIME被用作解釋機器學習模型的解釋,通過LIME我們可以知道為什么模型會這樣進行預測。
本文我們就重點觀測一下LIME是如何對預測結果進行解釋的。
代 碼
此處我們使用winequality-white數(shù)據(jù)集,并且將quality<=5設置為0,其它的值轉變?yōu)?.
#?!pip?install?lime import?pandas?as?pd from?xgboost?import?XGBClassifier import?shap import?numpy?as?np from?sklearn.model_selection?import?train_test_split df?=?pd.read_csv('./data/winequality-white.csv',sep?=?';') df['quality']?=?df['quality'].apply(lambda?x:?0?if?x?<=?5?else?1) df.head()| 7.0 | 0.27 | 0.36 | 20.7 | 0.045 | 45.0 | 170.0 | 1.0010 | 3.00 | 0.45 | 8.8 | 1 |
| 6.3 | 0.30 | 0.34 | 1.6 | 0.049 | 14.0 | 132.0 | 0.9940 | 3.30 | 0.49 | 9.5 | 1 |
| 8.1 | 0.28 | 0.40 | 6.9 | 0.050 | 30.0 | 97.0 | 0.9951 | 3.26 | 0.44 | 10.1 | 1 |
| 7.2 | 0.23 | 0.32 | 8.5 | 0.058 | 47.0 | 186.0 | 0.9956 | 3.19 | 0.40 | 9.9 | 1 |
| 7.2 | 0.23 | 0.32 | 8.5 | 0.058 | 47.0 | 186.0 | 0.9956 | 3.19 | 0.40 | 9.9 | 1 |
對單個樣本進行預測解釋
下面的圖中表明了單個樣本的預測值中各個特征的貢獻。
import?lime from?lime?import?lime_tabularexplainer?=?lime_tabular.LimeTabularExplainer(training_data=np.array(X_train),feature_names=X_train.columns,class_names=['bad',?'good'],mode='classification' )模型有84%的置信度是壞的wine,而其中alcohol,total sulfur dioxide是最重要的。
模型有59%的置信度是壞的wine,而其中alcohol,chlorides, density, citric acid是最重要的預測參考因素。
適用問題
LIME可以認為是SHARP的升級版,它通過預測結果解釋機器學習模型很簡單。它為我們提供了一個很好的方式來向非技術人員解釋地下發(fā)生了什么。您不必擔心數(shù)據(jù)可視化,因為LIME庫會為您處理數(shù)據(jù)可視化。
參考文獻
https://www.kaggle.com/piyushagni5/white-wine-quality
LIME: How to Interpret Machine Learning Models With Python
https://github.com/marcotcr/lime
總結
以上是生活随笔為你收集整理的【机器学习】Github8.9K,目前最佳模型解释器-LIME!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】关于机器学习模型可解释(XA
- 下一篇: 腾讯视频怎么删除收藏的内容