Лучшая модель/алгоритм для прогнозирования нескольких целей

avatar
Garvey
8 апреля 2018 в 08:27
189
1
0

Я хочу использовать несколько переменных для предсказания нескольких целей. Примечание. множественная цель здесь не означает несколько меток.

Давайте возьмем такой пример:

# In this example: x1,x2,x3 are used to predict y1,y2

pd.DataFrame({'x1':[1,2,3],'x2':[2,3,4],'x3':[1,1,1],'y1':[1,2,1],'y2':[2,3,3]})

    x1  x2  x3  y1  y2
0   1   2   1   1   2
1   2   3   1   2   3
2   3   4   1   1   3

Исходя из моего ограниченного опыта интеллектуального анализа данных, я обнаружил, что могут помочь два решения:

  1. Построить две модели xgboost соответственно для прогнозирования y1,y2
  2. Использование полносвязного слоя для встраивания [x1,x2,x3] в [y1,y2], что кажется многообещающим решением.

Хотелось узнать, является ли это хорошей практикой и как лучше предсказать несколько целей?

Источник

Ответы (1)

avatar
KonstantinosKokos
8 апреля 2018 в 17:47
0

Независимо от вашего подхода, два выхода означают, что вам нужны две функции. Надеюсь, понятно, что слой, дающий два результата, эквивалентен двум слоям, производящим каждый вывод.

Единственное, что здесь стоит принять во внимание (актуально только для более глубоких моделей), это то, хотите ли вы построить промежуточные представления ваших входных данных, которые используются совместно для прогнозирования обоих выходных данных, т. е. x → h1 → h2 → .. → hN, hN → у1, hN → у2. Это заставит ваше представление hN действовать как независимый от задачи многоцелевой кодировщик, одновременно уменьшив сложность, когда две модели изучают одно и то же.

Для неглубоких архитектур, таких как описанная вами однослойная, это не имеет смысла.