问题标签 [dalex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 将 DALEX 解释函数应用于 xgboost 模型以进行 what_if / centerisParibus 分析
我在尝试将what_if
分析应用于xgboost
模型时遇到了困难。我能够为模型运行what_if
分析,randomForest
但是当我尝试为xgboost
模型运行它时它会中断。
我的问题是,给定titanic
数据集,我该如何制作what_if
情节?我在代码中添加了注释,以显示代码何时对我不利。
我知道我对这new_xgb_observation
部分做了一些不正确的事情,但是what_if
(据我所知)需要一个单一的观察,所以我试图从dtest
矩阵中提取一个单一的观察。
这是对我来说破坏的代码部分:
然后我在它下面展示一个工作randomForest
模型。
数据:
r - 如何使 tidymodels 或工作流结果与 DALEX 解释一起工作?
我想使用modelStudio,为此我需要使用DALEX::explain()
将模型对象作为参数来制作解释器。我应该,但我不确定如何在这里为整个可重现的示例代码提供数据!
当我使用以下代码时
以下解释器有效:
但是当我使用整个工作流程并尝试使用 提取模型pull_workflow_fit
时,它会说它无法预测。
两种情况下的类都是_xgb.Booster
model_fit
.
xgb
tidymodels 或工作流中的哪个函数将渲染与(上面的第一个代码块)模型完全匹配的对象?
r - 如何在 R XGboost 中找到每个预测的重要变量
我正在将 xgboost 应用于以下数据集并进行预测,我还能够获得整个模型最重要的特征,但是我也想知道每个预测中最重要的特征,我能够使用 dalex 包查找每个预测的重要变量但得到错误
请在下面找到代码
使用 break_down 时出现错误错误是
break_down(explainer_xgb,observation = nobs)中的错误:未使用的参数(observation = nobs)
当我使用下面的代码时,它没有给出错误,但是当我尝试对我的数据集使用相同的逻辑时,我得到了错误。
下面的代码运行没有错误
如果有人可以帮助我,如果有任何其他方法可以为每个预测找到最佳属性,我将不胜感激,我正在寻找其他替代解决方案的原因是因为我有超过 300 万行的数据框并且使用 dalex 会非常耗时。
r - 尝试解释 iris 随机森林模型时出现 DALEX 错误
我想用 RandomForest 模型的 Dalex 创建解释器,但是在尝试时出现此错误:
任何人都知道如何解决这个问题?
这是我的代码:
谢谢!
编辑:我尝试使用此代码
但这不会打印变量的影响。
r - 带有 RandomForestSRC 包的因子变量重要性 (VIMP):无法强制转换为 data.frame 错误
大家下午好——提前感谢您的帮助!我对 R 有点陌生,所以如果这是一个微不足道或不恰当的问题,我深表歉意。
TL; DR:我正在尝试使用内置的随机森林模型 RandomForestSRC 确定因子变量的变量重要性 (VIM),这不是该包的内置功能。使用 LIME 和 DALEX 包,我遇到了同样的错误:cannot coerce class 'c("rfsrc, "predict", "class")' to a data.frame
. 任何解决此错误的帮助或替代方法将不胜感激!
我有一个使用 RandomForestSRC 包在 R 中构建的随机森林模型。该模型似乎工作得很好——训练和测试都很顺利,得到了我需要的预测输出,结果似乎符合我的预期。不幸的是,其中一个要求是我需要能够说明模型是如何得出结论的(例如,我还需要将变量重要性作为输出的一部分),包括连续变量和因子变量。
这似乎不是 RandomForestSRC 包的内置功能,所以我研究了 LIME 和 DALEX 包,它们都应该能够从现有的 RF 模型中分离出 VIM。不幸的是,它们都没有对 RFSRC 包的原生支持,这意味着我需要自己构建预测函数,正如这个小插图所推荐的那样:https ://uc-r.github.io/dalex
不幸的是,在运行模型的 VIM 部分(在 LIME 和 DALEX 中)时,我被要求传递预测输出和创建该输出的模型。在这样做时,它会遇到上述predict_model
函数的错误:
而且,就像……当然,它不能;它试图将模型本身变成一个数据框。不幸的是,虽然我认为我理解为什么 R 会给我这个错误,但这是我自己能够弄清楚的。
此外,我使用 RandomForestSRC 包有两个原因:它不限制因子变量的数量,并且它可以处理不平衡的数据。我正在处理医疗数据,所以这两个都是必要的(例如,有大约 100,000 个不同的医疗代码可以编码在一个数据变量中,以及“没有这个的人”的比率-condition”与“people-who-do-have-this-condition”通常是 100 比 1)。但是,如果有人对处理这些问题的替代软件包有任何建议,并且具有内置的 VIM 功能(或与 DALEX / LIME 集成),那也很棒。
非常感谢大家的帮助!
mlr3 - 关于 dalex 包的一点困惑
你好 mlr3 团队。
我对 mlr3 书中提供的 dalex 包有疑问。具体来说,这里
先感谢您
dalex - dalex包中variable_importance()的损失函数
dalex 函数的 variable_importance(explainer) 中的损失函数是 RMSE(默认情况下),我们可以使用其他指标,如平均绝对误差等吗?
谢谢
python - logit 和 sklearn 管道的一种热编码
我正在尝试使用 Python 中的Dalex包来可视化二进制 logit 模型的某些特征。
我从这里的示例书中复制了一段代码 (整个第五个代码单元),但现在我不太确定应该如何解释结果......
在我使用创建的基本 logit 模型中,我statsmodels
为每个类别手动选择了一个参考水平变量,以避免多重共线性(这意味着模型的所有结果都相对于参考水平进行解释)。
但是当我使用上面链接中的一段代码(也复制到这篇文章下面)时,它首先在 中创建一些管道对象sklearn
,one-hot 对分类变量进行编码,然后将管道对象拟合到数据并在Dalex解释器作为要解释的模型。
问题是,当我使用model_profile()
Dalex 中的函数时,它应该输出一个图表,显示变量对预测的其他条件不变的影响,我不知道如何解释结果,因为似乎一个分类变量中的所有值包含在图表中。
例如,该模型显示了“性别”分类变量对男性和女性平均预测的影响......
这也显示了一条名为“平均预测”的水平线,但“平均预测”是什么?它是根据男性作为参考水平计算的,还是女性?
我对结果的含义感到非常困惑......有人可以澄清一下吗?model_profile()
我尝试使用的功能也在笔记本中进行了说明。谢谢!
我复制的一段代码:
machine-learning - 克服使用来自 h2o 模型的 iml 的兼容性问题
我无法重现我能找到的将 h2o 与 iml 结合使用的唯一示例(https://www.r-bloggers.com/2018/08/iml-and-h2o-machine-learning-model-interpretability-and-feature -explanation/),详见此处(使用 FeatureImp$new 和 H2O 提取变量重要性时出错)。谁能指出将 iml 与 h2o 一起使用的解决方法或其他示例?
可重现的例子:
获得的错误: