Assembler des expressions

Nov 19 2020

J'ai deux modèles, $m_1$ et $m_2$, et je veux les assembler dans un modèle final. Je veux pouvoir pondérer l'un ou l'autre plus selon une recherche de grille. Il y a deux idées principales qui me viennent à l'esprit:

  • Définir une famille de modèles $m_1 \cdot a + m_2 \cdot (1 - a)$, où $0 < a < 1$, trouvez le $a$ cela donne le meilleur score.
  • Définir une famille de modèles $m_1^a \cdot m_2^{1 - a}$, où $0 < a < 1$, trouvez le $a$ cela donne le meilleur score.

Cependant, dans certains cas, j'ai vu des top models dans les compétitions Kaggle faire des choses assez différentes, comme avoir un modèle final du formulaire$m_1^a + m_2^b$.

Ma question est la suivante: quels sont les avantages et les inconvénients de chaque solution? Quand fonctionnent-ils mieux et quand travaillent-ils moins bien? Quand le troisième type d'ensemble convient-il et y a-t-il une heuristique à régler$a$ et $b$?

Réponses

1 BrianSpiering Nov 21 2020 at 23:03

C'est une question empirique. La réponse changera pour différents modèles et différents ensembles de données.

La meilleure approche consisterait à utiliser la validation croisée pour voir quelle technique d'assemblage a le meilleur score sur la métrique d'évaluation pour les données données.

1 CarlosMougan Nov 23 2020 at 21:22

Vous pouvez poser la même question avec chaque algorithme d'apprentissage automatique, et la réponse restera toujours très similaire.

Quel est l'avantage de la régression linéaire sur les arbres de décision? Pour répondre à cela, vous pouvez les définir mathématiquement. Dans votre cas, la définition mathématique semble simple: moyenne pondérée ou moyenne géométrique.

Quand un modèle fonctionne-t-il mieux avec un autre modèle? Essayez-le en validation croisée.

Malheureusement, la méthodologie scientifique de l'apprentissage automatique se fait par essai et erreur. Dire quelle sera la valeur d'un hyperparamètre avant d'ajuster le modèle n'est pas fiable.

Vous «prouvez» qu'un algorithme fonctionne en ML lorsque vous l'exécutez à travers un ensemble d'ensembles de données et qu'il fonctionne mieux que les autres.

Pour en revenir à votre question, ce qui se passe dans kaggle a tendance à être la chose la plus avancée technique. Donc, si c'est là, ça vaut le coup de l'essayer.

DaL Nov 23 2020 at 13:15

Je suis d'accord avec Brain. La solution qui fonctionnera le mieux est celle qui conviendra le mieux à vos données.

Veuillez noter que si vous n'avez qu'un seul paramètre, vous pouvez dériver la valeur optimale au lieu de faire une recherche dans la grille. Votre famille de solutions nous est restreinte donc je ne m'attends pas à un gain significatif mais il n'y a aucune raison de ne pas l'utiliser.