【问题标题】:root cause and resolve an error returned R's 'lime' library's, 'explain' function根本原因并解决返回 R 的“石灰”库的“解释”函数的错误
【发布时间】:2018-12-07 14:55:57
【问题描述】:

在 h2o 随机森林上使用“lime”库中的“解释”函数时出现此错误。

Error in elnet(x, is.sparse, ix, jx, y, weights, offset, type.gaussian,  : 
  y is constant; gaussian glmnet fails at standardization step

我无法在线找到文档,也无法在线找到有关此问题的帮助。你能帮我找出根本原因并解决它吗?

这是我的代码:

explainer_h2o_rf  <- lime(x=big_df, 
                          model=fit_rf.hex, 
                          bin_continuous = FALSE,
                          use_density = T, 
                          quantile_bins = F)

# for(i in 1:25){
i <- c(1,2)
explanation_rf <- explain(x = x_lime[i,],
                          explainer = explainer_h2o_rf,
                          n_features = 15,
                          feature_select = "auto",
                          labels = "1")

注意事项:

  • 我正在预测 h2o 模型中的二项式变量, 'fit_rf.hex'。
  • 我通过this 工作过,它成功了,但我目前的方法没有
  • “lime”标签似乎不适用于这个石灰库,但适用于用于单元测试的东西。
  • 非高斯应该不是问题,因为(我认为)我已经使用内核方法设置了处理非高斯(我的几乎所有数据都是非高斯)数据的标志。

以下网站/问题未包含我的答案:

【问题讨论】:

  • 请修改您的代码示例以使其可重现(它缺少数据)。
  • @ErinLeDell - 它是专有的,所以这不可能发生。如果您对数据的性质有特殊疑问,我可能会提供帮助。
  • 您不需要发布专有数据,但您需要发布一个在公共数据集上复制问题的示例。调试的第一步是重现错误。
  • @ErinLeDell - 最便宜的复制品是其他人已经做过的,这是我希望的已知/常见错误。我可以尝试在另一组数据中复制此错误,但我必须走运,这需要时间。

标签: r random-forest h2o


【解决方案1】:

elnet 中的错误(x, is.sparse, ix, jx, y, weights, offset, type.gaussian, :

y 是常数;高斯 glmnet 在标准化步骤失败

只是阅读错误,您的训练数据似乎有问题,或者可能是用于训练 glmnet 模型的数据子集(elnet()glmnet() 函数内使用)。

具体来说,错误表明响应列是常量,因此无法训练glmnet 模型——训练glmnet 模型是model_permutations() 函数内部的一个步骤,它本身就在explain() 函数内部.

您应该检查您的响应列以确保它不是恒定的。

【讨论】:

    【解决方案2】:

    我遇到了类似的错误。

    我将labels = "Yes" 更改为labels = "Response",以匹配解决了我的问题的目标变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多