最近发现一个容易掉入的坑,这里记录一下,说明正确简单的LIME用法来解释复杂模型。
LIME的使用需要考虑两个模型, 一个被解释的模型(Reference Model),一个模型(interpret Model)用来解释。先训练、测试被解释的模型, 这里用MyModel命名。然后开始解释工作。
先导入库:
- # 创建解释器
- import lime
- import lime.lime_tabular
创建解释器实例:
- explainer = lime.lime_tabular.LimeTabularExplainer( TrainData,
- feature_names=FeaturesSet,
- mode='regression')
- # 解释某一个样本
- exp = explainer.explain_instance( TestDataRow
- MyModel.predict(),model_regressor=None)
展示解释结果:
- exp.show_in_notebook(show_table=True, show_all=False)
注意点:
解释器explainer传入的预测函数是被解释模型的,不是解释模型的。LIME内置了解释模型,默认是Ridge线性回归模型。如果想更改解释模型,修改model_regressor参数为自定义模型名字。