R H20 - Перекрестная проверка со стратифицированным отбором проб и строками без идентификатора - PullRequest
0 голосов
/ 02 января 2019

Я использую H2O для анализа набора данных, но я не уверен, как правильно выполнить перекрестную проверку моего набора данных. У меня есть несбалансированный набор данных, поэтому я бы хотел провести стратифицированную перекрестную проверку (где выходная переменная используется для балансировки групп в каждом разделе).

Однако, кроме того, у меня также есть проблема, что многие из моих строк являются повторениями (способ реализации весов без фактического наличия весов). Независимо от источника этой проблемы, я уже видел, что в некоторых случаях вы можете выполнять перекрестную проверку, если некоторые строки должны храниться вместе. Это швы для использования fold_column. Тем не менее, невозможно сделать оба одновременно?

Если раствора H2O нет, как я могу априори вычислить сгиб и использовать его на H2O?

1 Ответ

0 голосов
/ 02 января 2019

На основании документов H2O-3 это невозможно сделать:

Обратите внимание, что все три варианта подходят только для наборов данных, которые i.i.d. Если для выполнения значимой перекрестной проверки для набора данных требуется настраиваемая группировка, то следует создать и предоставить столбец сгиба.

Одна быстрая идея - использовать weights_column вместо дублирования строк. Тогда и balance_classes, и weights_column доступны вместе как параметры в GBM, DRF, Deep Learning, GLM, Naive-Bayes и AutoML.

В противном случае я предлагаю следующий рабочий процесс, выполненный в R или H2O для ваших данных, чтобы обеспечить как назначение сгибов, так и согласованность дубликатов между сгибами:

  1. взять исходный набор данных (в данных еще нет повторов)
  2. разделите его на 2 набора на основе поля результатов (несбалансированного): один для положительного и один для отрицательного (если он полиномиальный, то имейте столько наборов, сколько есть результатов)
  3. разделите каждый набор на N сгибов, присваивая новый столбец foldId в обоих наборах независимо: это позволяет выполнять стратифицированные сгибы
  4. объединить (rbind) оба комплекта вместе
  5. применить процесс дублирования строк, который реализует весовые коэффициенты (которые теперь будут автоматически сохранять ваши сгибы).
...