python機(jī)器學(xué)習(xí)Github已達(dá)8.9Kstars模型解釋器LIME
簡(jiǎn)單的模型例如線性回歸,LR等模型非常易于解釋?zhuān)趯?shí)際應(yīng)用中的效果卻遠(yuǎn)遠(yuǎn)低于復(fù)雜的梯度提升樹(shù)模型以及神經(jīng)網(wǎng)絡(luò)等模型。
現(xiàn)在大部分互聯(lián)網(wǎng)公司的建模都是基于梯度提升樹(shù)或者神經(jīng)網(wǎng)絡(luò)模型等復(fù)雜模型,遺憾的是,這些模型雖然效果好,但是我們卻較難對(duì)其進(jìn)行很好地解釋?zhuān)@也是目前一直困擾著大家的一個(gè)重要問(wèn)題,現(xiàn)在大家也越來(lái)越加關(guān)注模型的解釋性。
本文介紹一種解釋機(jī)器學(xué)習(xí)模型輸出的方法LIME。它可以認(rèn)為是SHARP的升級(jí)版,Github鏈接:https://github.com/marcotcr/lime,有所收獲多多支持
LIME
LIME(Local Interpretable Model-agnostic Explanations)支持的模型包括:
- 結(jié)構(gòu)化模型的解釋?zhuān)?/li>
- 文本分類(lèi)器的解釋?zhuān)?/li>
- 圖像分類(lèi)器的解釋?zhuān)?/li>
LIME被用作解釋機(jī)器學(xué)習(xí)模型的解釋?zhuān)ㄟ^(guò)LIME我們可以知道為什么模型會(huì)這樣進(jìn)行預(yù)測(cè)。
本文我們就重點(diǎn)觀測(cè)一下LIME是如何對(duì)預(yù)測(cè)結(jié)果進(jìn)行解釋的。
代 碼
此處我們使用winequality-white數(shù)據(jù)集,并且將quality<=5設(shè)置為0,其它的值轉(zhuǎn)變?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()

# 訓(xùn)練集測(cè)試集分割
X = df.drop('quality', axis=1)
y = df['quality']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# 模型訓(xùn)練
model = XGBClassifier(n_estimators = 100, random_state=42)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
score
The use of label encoder in XGBClassifier is deprecated and will be removed in a future release. 0.832653061224489
對(duì)單個(gè)樣本進(jìn)行預(yù)測(cè)解釋
下面的圖中表明了單個(gè)樣本的預(yù)測(cè)值中各個(gè)特征的貢獻(xiàn)。
import lime
from lime import lime_tabular
explainer = lime_tabular.LimeTabularExplainer(
training_data=np.array(X_train),
feature_names=X_train.columns,
class_names=['bad', 'good'],
mode='classification'
)
模型有84%的置信度是壞的wine,而其中alcohol,totals ulfur dioxide是最重要的。

import lime
from lime import lime_tabular
explainer = lime_tabular.LimeTabularExplainer(
training_data=np.array(X_train),
feature_names=X_train.columns,
class_names=['bad', 'good'],
mode='classification'
)
模型有59%的置信度是壞的wine,而其中alcohol,chlorides, density, citric acid是最重要的預(yù)測(cè)參考因素。

exp = explainer.explain_instance(data_row=X_test.iloc[1], predict_fn=model.predict_proba) exp.show_in_notebook(show_table=True)
適用問(wèn)題
LIME可以認(rèn)為是SHARP的升級(jí)版,它通過(guò)預(yù)測(cè)結(jié)果解釋機(jī)器學(xué)習(xí)模型很簡(jiǎn)單。它為我們提供了一個(gè)很好的方式來(lái)向非技術(shù)人員解釋地下發(fā)生了什么。您不必?fù)?dān)心數(shù)據(jù)可視化,因?yàn)長(zhǎng)IME庫(kù)會(huì)為您處理數(shù)據(jù)可視化。
參考鏈接
https://www.kaggle.com/piyushagni5/white-wine-quality
LIME: How to Interpret Machine Learning Models With Python
https://github.com/marcotcr/lime
https://mp.weixin.qq.com/s/47omhEeHqJdQTtciLIN2Hw
以上就是Github已達(dá)8.9Kstars的最佳模型解釋器LIME的詳細(xì)內(nèi)容,更多關(guān)于模型解釋器LIME的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python梯度提升庫(kù)XGBoost解決機(jī)器學(xué)習(xí)問(wèn)題使用探究
- Python機(jī)器學(xué)習(xí)特征重要性分析的8個(gè)常用方法實(shí)例探究
- python taipy庫(kù)輕松地將數(shù)據(jù)和機(jī)器學(xué)習(xí)模型轉(zhuǎn)為功能性Web應(yīng)用
- Python BentoML構(gòu)建部署和管理機(jī)器學(xué)習(xí)模型技巧掌握
- Python機(jī)器學(xué)習(xí)性能度量利用鳶尾花數(shù)據(jù)繪制P-R曲線
- Python機(jī)器學(xué)習(xí)利用鳶尾花數(shù)據(jù)繪制ROC和AUC曲線
- python人工智能human?learn繪圖創(chuàng)建機(jī)器學(xué)習(xí)模型
- python?lazypredict構(gòu)建大量基本模型簡(jiǎn)化機(jī)器學(xué)習(xí)
相關(guān)文章
Python集成測(cè)試提高軟件質(zhì)量關(guān)鍵步驟探究
Python是一門(mén)強(qiáng)大的編程語(yǔ)言,提供了眾多工具和庫(kù),用于執(zhí)行高效的集成測(cè)試,本文將深入介紹Python集成測(cè)試的概念、方法和最佳實(shí)踐,并通過(guò)豐富的示例代碼演示如何提高軟件質(zhì)量和減少潛在的缺陷2024-01-01
Python入門(mén)教程(三十八)Python的NumPy庫(kù)簡(jiǎn)介
這篇文章主要介紹了Python入門(mén)教程(三十八)Python的NumPy庫(kù)簡(jiǎn)介,NumPy 是用于處理數(shù)組的 python 庫(kù),它還擁有在線性代數(shù)、傅立葉變換和矩陣領(lǐng)域中工作的函數(shù),需要的朋友可以參考下2023-05-05
Python字典的概念及常見(jiàn)應(yīng)用實(shí)例詳解
這篇文章主要介紹了Python字典的概念及常見(jiàn)應(yīng)用,結(jié)合實(shí)例形式詳細(xì)的分析了Python字典的概念、原理、創(chuàng)建、常見(jiàn)操作函數(shù)與使用注意事項(xiàng),需要的朋友可以參考下2019-10-10
Python Pandas數(shù)據(jù)分析之iloc和loc的用法詳解
Pandas 是一個(gè)開(kāi)放源碼、BSD 許可的庫(kù),提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,它是一個(gè)強(qiáng)大的分析結(jié)構(gòu)化數(shù)據(jù)的工具集,基礎(chǔ)是 Numpy2021-11-11
Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別
本文主要介紹了Python中私有屬性“_“下劃線和“__“雙下劃線區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
TensorBoard 計(jì)算圖的可視化實(shí)現(xiàn)
今天小編就為大家分享一篇TensorBoard 計(jì)算圖的可視化實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02

