调试机器学习分类器并解释其预测

eli5的Python项目详细描述


更改日志

0.10.1(2019-08-29)

  • 不包括对Python3.5的类型依赖+ 修复Python3.7上的安装

0.10.0(2019-08-21)

  • keras图像分类器:用grad-cam解释预测 (GSOC-2019项目,@teabolt)。

0.9.0(2019-07-05)

  • CatBoost支持:显示CatBoostClassifier的功能重要性, catboostregressor和catboost.catboost。
  • 测试修复:修复scikit学习0.21+,在travis上使用xenial base
  • 捕捉错误安装的lightgbm的异常

0.8.2(2019-04-04)

  • 固定scikit学习0.21+支持(删除随机线性模型 从scikit learn);
  • 修正了pandas.dataframe+xgboost对置换重要性的支持;
  • 使用最新版本修复了测试;
  • 添加了conda安装说明(conda包由社区维护);
  • 教程更新为使用xgboost 0.81;
  • 更新文档以使用pandoc 2.x.

0.8.1(2018-11-19)

  • 修复了Python3.7支持;
  • 增加了对xgboost>;0.6a2;的支持
  • 修正了numpy中的折旧警告>;=1.14;
  • 文档、类型注释和测试改进。

0.8(2017-08-25)

  • 向后不兼容 :带解释的dataframe对象不再 使用索引和透视表,它们现在只是普通的数据帧;
  • 增加了检验黑箱模型的新方法 ( eli5置换重要性 );
  • transform_feature_names是为sklearn的minmaxscaler实现的, StandardScaler、MaxAbsScaler和RobustScaler;
  • 零和负特征重要性不再隐藏;
  • 与scikit learn的固定兼容性为0.19;
  • 修复了与lightgbm master的兼容性(2.0.5和2.0.6仍然是 不支持-lightgbm中有错误);
  • 文档、测试和类型注释改进。

0.7(2017-07-03)

  • 更好的pandas.dataframe集成: eli5.explain_weights_df eli5.解释权重dfs eli5.解释预测df eli5.解释预测的dfs eli5.format\u作为数据帧<;eli5.formatters.as\u dataframe.format\u作为数据帧>; 以及 eli5.format_as_dataframes<;eli5.formatters.as_dataframe.format_as_dataframes>; 函数允许将解释导出到pandas.dataframes;
  • eli5.explain_prediction 现在显示二进制文件的预测类 分类器(以前总是显示正类);
  • eli5.explain_prediction 现在支持 目标=[<;class>;] 。 对于二进制分类器;例如,显示负类的结果, 您可以使用eli5.explain_prediction(…, targets=[false])
  • 支持eli5.解释预测和eli5.解释权重 对于sklearn.svm中基于libsvm的线性估计器: svc(kernel='linear') (仅二进制分类), nusvc(kernel='linear') (仅 二元分类, svr(kernel="线性") nusvr(kernel="线性") 一个类支持向量机(kernel="linear")
  • 修正了python 2中的lightgbm估计器 重要性类型 是"分割"或"权重";
  • 测试改进。

0.6.4(2017-06-22)

0.6.3(2017-06-02)

  • eli5.解释权重 eli5.解释预测 与xgboost.booster一起使用,而不仅仅是与类似sklearn的api一起使用;
  • eli5.formatters.as_dict.format_as_dict 现在可用作 eli5.格式为dict
  • 测试和文档修复。

0.6.2(2017-05-17)

  • 可读性 eli5.解释xgboost模型的重量 pandas.dataframe;
  • 可读的 eli5.解释lightgbm模型的权重 pandas.dataframe;
  • 修正了eli5的问题。解释xgboost的预测 在pandas.dataframe上训练的模型,当要素名称包含点时;
  • 测试改进。

0.6.1(2017-05-10)

  • 更好的熊猫支持 xgboost、sklearn、lightgbm和lightning。

0.6(2017-05-03)

  • 更好的scikit学习eli5中的管道支持。解释权重: 现在可以直接传递管道对象。只能治愈 基于SelectorMin的变压器、FeatureUnion和变压器 支持使用 获取功能名称,但用户可以注册其他 变压器;将扩展支持的变压器的内置列表 将来。有关详细信息,请参见sklearn pipelines。
  • 现在在featureunion中支持hashingvectorizer的反转 通过 eli5.sklearn.unshing.invert_hashing_and_fit 。 请参见sklearn unshing
  • 与Jupyter笔记本电脑的固定兼容性>;=5.0.0。
  • 修正了eli5.解释套索回归的权重 功能,无截获。
  • 修复了Python2.x中的清除支持。
  • 文档和测试改进。

0.5(2017-04-27)

  • lightgbm 支持: eli5.解释预测 eli5.解释权重现在支持 lgbmclassifier lgbmregressor (请参见eli5 lightgbm支持库lightgbm>;)。
  • 如果所有权重都为零,则固定文本格式;
  • 类型检查现在使用最新的mypy;
  • 测试安装改进:travis ci现在使用ubuntu 14.04。

0.4.2(2017-03-03)

  • 错误修复:如果xgboost可用,eli5应该仍然是可导入的,但是 未正确安装。

0.4.1(2017-01-25)

  • 特征贡献计算固定 对于eli5.xgboost.explain_预测xgboost

0.4(2017-01-20)

  • eli5.explain_prediction :新的"top_targets"参数允许 只显示得分最高或最低的预测;
  • eli5.解释权重 允许自定义功能重要性的方式 使用 重要性类型计算xgbclassifier和xgbregressor 参数(有关 eli5 xgboost支持<;library xgboost>; );
  • eli5.解释权重使用xgbclassifier和xgbregressor的增益 默认情况下,特性很重要;此方法更好地指示 正在发生什么,它使结果与功能重要性更兼容 为SCIKIT学习渐变增强方法显示。

0.3.1(2017-01-16)

  • 打包修复:scikit learn被添加到setup.py中的install_requires中。

0.3(2017-01-13)

  • eli5.解释预测 适用于xgbclassifier、xgbregressor 从XGBoost和ExtraTreesClassifier,ExtraTreesRegressor, GradientBoostingClassifier、GradientBoostingRegressor, 随机森林分类器,随机森林回归器,决策树分类器 以及来自Scikit Learn的DecisionTreeRegressor。 解释方法基于 http://blog.datadive.net/interpreding random forests/
  • eli5.explain_weights 现在支持来自 剪子学习:决策者,决策者, GradientBoostingRegressor、RandomForestRegressor和ExtraTreesRegressor。
  • eli5.解释加权 适用于xgbregressor;
  • 新的 textExplainer<;lime tutorial>; 类允许解释预测 黑盒文本分类管道使用石灰算法; 在 eli5.lime<;eli5 lime>; 中有许多改进
  • 更好地支持 eli5.解释预测
  • 渲染性能得到改善;
  • 当特征 重要性表被截断;
  • 功能重要性表的样式设置是固定的;
  • eli5.解释权重 eli5.解释预测 支持 更多的线性估计器从scikit学习:huberregressor,larscv,lassocv, 套索,套索,套索,正交匹配追踪, 正交匹配追踪,被动回归, 脊分类器,脊分类器,轮廓回归器。
  • 更改了基于文本的决策树格式:对于二进制 分类树只打印"真"类的概率, 不是像以前那样两种可能性都有。
  • eli5.解释权重 除此之外还支持功能过滤器 为过滤功能和eli5解释预测功能。 现在也支持这两个参数;
  • 在的输出中将"weight"列重命名为"contribution" eli5.解释预测
  • 新的格式化程序参数允许显示 输入功能值;
  • 修复了Analyzer在 文本.

0.2(2016-12-03)

  • xgbclassifier支持(来自xgboost 套餐);
  • eli5.解释权重支持sklearn onevsrestclassifier;
  • 特征重要性的标准偏差不再打印为零 如果不可用。

0.1.1(2016-11-25)

    包装袋ng修复:需要attrs>;16.0.0,修复自述文件渲染

0.1(2016-11-24)

  • HTML输出;
  • IPython集成;
  • json输出;
  • scikit学习文本矢量器的可视化;
  • sklearn-crfsuite 支持;
  • 闪电 支持;
  • eli5.显示权重 eli5.显示预测 函数;
  • eli5.解释权重 eli5.解释预测 函数;
  • eli5.lime<;eli5 lime>; 改进:非文本数据的采样器, 错误修复,文档;
  • 回归任务支持hashingvectorizer;
  • 性能改进-功能名称很懒;
  • sklearn elasticnetcv和ridgecv支持;
  • 现在可以自定义格式化输出-显示/隐藏节, 更改布局;
  • sklearn onevsrestclassifier支持;
  • sklearn decisiontreeclassifier可视化(基于文本或基于svg);
  • 不再支持scikit learn<;0.18;
  • 基本mypy类型注释;
  • feature\u re 参数只允许显示功能的子集;
  • 目标名称 参数允许更改目标/类的显示名称;
  • targets 参数允许显示目标/类的子集 更改显示顺序;
  • 文档,更多示例。

0.0.6(2016-10-12)

  • eli5.sklearn.invertablehashingvectorizer中的候选功能 按频率排序,第一个候选始终为正。

0.0.5(2016-09-27)

  • explain_prediction;中的hashingvectorizer支持
  • 添加一个选项来传递系数缩放数组;它很有用 如果要比较缩放或符号特征的系数 输入不同;
  • 错误修复:eli5函数不再更改分类器权重。

0.0.4(2016-09-24)

  • eli5.sklearn.invertablehashingvectorizer和 eli5.sklearn.featureunhasher允许恢复 使用hashingvectorizer或featurehasher的管道;
  • 增加了对scikit学习线性回归模型(elasticnet, 拉尔斯、套索、线划、线划、里奇、斯格德雷格森);
  • doc和vec参数在explain_prediction函数中交换; 如果示例已经矢量化,现在可以省略vec;
  • 修正了密集特征向量的问题;
  • 所有类名称参数都重命名为目标名称;
  • SCIKIT学习集成估计器的功能名称猜测是固定的;
  • 测试改进。

0.0.3(2016-09-21)

  • 使用石灰支持任何黑盒分类器( http://arxiv.org/abs/1602.04938 ) 算法;内置文本数据支持;
  • sklearn.explain_prediction的"矢量化"参数;它允许传递 已矢量化的示例;
  • 允许显式传递功能名称;
  • 使用自动生成的方法支持没有get-feature-names方法的分类器 功能名称。

0.0.2(2016-09-19)

  • 解释预测的"top"参数 可以是元组(num_正,num_负);
  • 默认情况下不再打印分类器名称;
  • 添加eli5.sklearn.explain_prediction以解释单个示例;
  • 修正了numpy警告。

0.0.1(2016-09-15)

预发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
另一个布局上的java Access文本视图   安卓在Java中,我什么时候应该用*导入整个包,而不是从包中导入单个对象?   JavaSpringMVC:请解释@RequestParam和@ModelAttribute之间的区别   java Flyway Ant构建未迁移   java“没有可供下载的文件”   如何解决java静态名称冲突?   我是否需要框架来补充JavaEE6、JSF2 WebApp?哪一个?   java如何传递HttpServletRequest参数?   只有java的视频不会播放声音。为什么?   java在Maven3中做这样的属性重写工作吗?   java计算Android中两个标记之间的距离   Javascript页面加载中的java复选框持久性问题   java序列化lambda函数的映射   java使用jersey、maven和eclipse配置swagger   java我可以在oncreate方法之外使用setContentView吗?   java在使用JAXRS响应类返回实体时遇到异常   java规范了加密和解密文本的文本编写方法   java如何更改ChoiceBox的默认大小?   java在Android上暂时禁用PIN/密码锁