первопричину и устранить ошибку, возвращенную библиотекой R 'lime', функцией объяснения - PullRequest
0 голосов
/ 28 июня 2018

Я получаю эту ошибку при использовании функции "объяснение" из библиотеки " lime " в случайном лесу h2o.

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'.
  • Я работал через это , и это сработало, но мой нынешний подход не
  • Тег «lime», по-видимому, не применяется к этой библиотеке lime, но относится к чему-то, что используется для модульного тестирования.
  • Негауссовский не должен быть проблемой, потому что (я думаю) я установил флаги, которые имеют дело с негауссовыми (почти все мои данные негауссовские) данными, используя методы ядра.

Вот сайты / вопросы, которые не содержали мой ответ:

1 Ответ

0 голосов
/ 30 июня 2018

Ошибка в elnet (x, is.sparse, ix, jx, y, веса, смещение, type.gaussian,:

у является константой; gaussian glmnet не работает на этапе стандартизации

Просто читая ошибку, кажется, есть проблема с вашими данными обучения, или, возможно, с некоторым подмножеством данных, которые используются для обучения модели glmnet (elnet() используется внутри функции glmnet()).

В частности, ошибка указывает на то, что столбец ответа является постоянным и, следовательно, не может обучать модель glmnet - обучение модели glmnet является шагом внутри функции model_permutations(), которая сама находится внутри функции explain() ,

Вам следует проверить столбец ответа, чтобы убедиться, что он не является постоянным.

...