mldissect-模型不可知论解释
mldissect的Python项目详细描述
功能
- 支持分类和回归的预测解释
- 易于使用的api。
- 使用pandas和numpy
安装
安装过程很简单,只要:
$ pip install mldissect
基本用法
# lets train a modelboston=load_boston()columns=list(boston.feature_names)X,y=boston['data'],boston['target']X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=.2,random_state=seed)clf=LassoCV()clf.fit(X_train,y_train)# select first observation in test splitobservation=X_test[0]# RegressionExplainer uses training data or sample of training data# for large dataset to figure out contributions of each featureexplainer=RegressionExplainer(clf,X_train,columns)result=explainer.explain(observation)# print/visualize explanationexplanation=Explanation(result)explanation.print()
结果:
+----------+---------+--------------------+ | Feature | Value | Contribution | +----------+---------+--------------------+ | baseline | - | 22.611881188118804 | | LSTAT | 7.34 | 3.6872 | | PTRATIO | 16.9 | 1.3652 | | CRIM | 0.06724 | 0.2323 | | B | 375.21 | 0.1195 | | RM | 6.333 | 0.0411 | | INDUS | 3.24 | 0.0312 | | CHAS | 0.0 | 0.0 | | NOX | 0.46 | 0.0 | | TAX | 430.0 | -0.3794 | | AGE | 17.2 | -0.5127 | | ZN | 0.0 | -0.6143 | | DIS | 5.2146 | -1.0792 | | RAD | 4.0 | -1.0993 | +----------+---------+--------------------+
算法
算法基于论文“模型预测解释”中描述的思想 带实时和故障包“https://arxiv.org/abs/1804.01955
与PyBreakdown的差异
pyBreakDown是类似的项目,但有一些关键的区别:
- mldissect保持
- 有测试和良好的代码覆盖率。
- 分类工作正常。
- 多类支持。
- 未实施自上而下的方法。
- 友好许可证。