Laquelle des options ci-dessous est la bonne lors de la création d'un modèle prédictif?
Option 1:
Éliminez d'abord les prédicteurs les plus manifestement mauvais et prétraitez les autres si nécessaire, puis entraînez divers modèles avec validation croisée, choisissez les meilleurs, identifiez les meilleurs prédicteurs que chacun a utilisés, puis reconvertissez ces modèles avec ces prédicteurs uniquement et évaluez la précision à nouveau avec validation croisée, puis choisissez le meilleur et entraînez-le sur l'ensemble complet d'entraînement en utilisant ses prédicteurs clés, puis utilisez-le pour prédire l'ensemble de test.
Option 2:
Éliminez d'abord les prédicteurs les plus manifestement mauvais, puis prétraitez les autres si nécessaire, puis utilisez une technique de sélection de caractéristiques comme la sélection récursive de caractéristiques (par exemple RFE avec rf) avec validation croisée, par exemple pour identifier le nombre idéal de prédicteurs clés et ce que ces prédicteurs sont, puis former différents types de modèles avec validation croisée et voir lequel donne la meilleure précision avec ces prédicteurs supérieurs identifiés plus tôt. Ensuite, entraînez à nouveau le meilleur de ces modèles avec ces prédicteurs sur l'ensemble d'entraînement complet, puis utilisez-le pour prédire l'ensemble de test.
Réponses:
J'ai trouvé vos deux options légèrement défectueuses. Donc, c'est généralement (très largement) à quoi ressemble un workflow de modélisation prédictive:
la source
L'endroit où la sélection de fonctionnalités trouve une place dans votre pipeline dépend du problème. Si vous connaissez bien vos données, vous pouvez sélectionner manuellement les fonctionnalités en fonction de ces connaissances. Si vous ne le faites pas - l'expérimentation avec les modèles utilisant la validation croisée peut être la meilleure. La réduction du nombre de fonctionnalités d'un prieuré avec une technique supplémentaire comme chi2 ou PCA peut en fait réduire la précision du modèle.
D'après mon expérience avec la classification de texte avec le classificateur SGD, par exemple, le fait de laisser les centaines de milliers de mots encodés en tant que fonctionnalités binaires a donné de meilleurs résultats que de les réduire à quelques milliers ou centaines. Le temps de formation est en fait plus rapide avec toutes les fonctionnalités car la sélection des fonctionnalités est plutôt lente avec mon jeu d'outils (sklearn) car il n'est pas stochastique comme SGD.
La multicolinéarité est quelque chose à surveiller, mais l'interprétabilité des fonctionnalités peut également être importante.
Ensuite, les gens déclarent obtenir le meilleur résultat avec des ensembles de modèles. Chaque modèle capture mieux une partie particulière de l'espace d'information que les autres. Cela vous empêcherait également de sélectionner les fonctionnalités avant d'adapter tous les modèles que vous incluriez dans votre ensemble.
la source