Как запустить модели H2O для каждой категории отдельно? - PullRequest
0 голосов
/ 21 сентября 2018

Для каждой категории мне нужно установить модель h2o.

  Category            a             b
       <chr>         <dbl>         <dbl>
     1   aa           36.6          1.4
     2   aa           5.30          0   
     3   bb           4.62          1.2
     4   bb           3.71          1.5
     5   cc           3.41          12
    ... ...            ...         ...   

Возможно ли это сделать без разделения набора данных по категориям и проведения тренировок по каждой категории в цикле.Можно ли сделать с dplyr?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Для каждой категории мне подходит модель H2O.Можно ли сделать это без разделения набора данных по категориям ...

Нет.

Вам нужен цикл, и построить одну модель для каждого уровня в перечислении (чтобы использоватьусловия H2O).(Чтобы получить список всех значений в категории, см. http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/frame.html#h2o.frame.H2OFrame.levels)

Если ваши требования были более нечеткими, то вы можете использовать одну модель.Т.е. если вы думаете, что категория «chr» - это самая полезная часть информации, которую вы имеете для предсказания какого-то другого значения, вы можете просто построить модель (например, случайный лес), и если вы правы, это будет разделение на верхнем уровне.в каждом дереве, и вы фактически получите то, что вы хотите.

Но если это для академического отчета или по нормативным причинам, и вам нужно показать прогнозы, разделенные по столбцу «chr», то у вас естьдругого пути нет.

0 голосов
/ 21 сентября 2018

Я не сделал это с h2o, но, может быть, это поможет вам:

  iris%>%
   group_by(Species)%>%
   nest()%>%
   mutate(fit = map(data, ~ lm(Petal.Width ~ Petal.Length, data = .x)))
# A tibble: 3 x 3
  Species    data              fit     
  <fct>      <list>            <list>  
1 setosa     <tibble [50 x 4]> <S3: lm>
2 versicolor <tibble [50 x 4]> <S3: lm>
3 virginica  <tibble [50 x 4]> <S3: lm>
...