Étapes de l'apprentissage automatique


9

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.


1
Que voulez-vous dire par prétraiter ensuite le reste si nécessaire ? S'agit-il d'un nettoyage des données?
Dawny33

1
Je voulais prétraiter les fonctionnalités restantes que vous jugez utiles. Par prétraitement, je veux dire, faire une mise à l'échelle ou des transformations comme le journal ou d'autres si et selon les besoins.
AK

Ahh, comme je m'y attendais :) Quoi qu'il en soit, j'ai écrit la réponse avec le workflow que moi et mon équipe suivons généralement!
Dawny33

Réponses:


16

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:

  • Nettoyage des données : prend le plus de temps, mais chaque seconde passée ici en vaut la peine. Plus vos données seront nettoyées à travers cette étape, moins votre temps total serait réduit.
  • Fractionnement de l'ensemble de données : L'ensemble de données serait divisé en ensembles de formation et de test, qui seraient utilisés respectivement à des fins de modélisation et de prédiction. En outre, une division supplémentaire en tant qu'ensemble de validation croisée devrait également être effectuée.
  • Transformation et réduction: implique des processus comme les transformations, la mise à l'échelle moyenne et médiane, etc.
  • Sélection des fonctionnalités: cela peut être fait de nombreuses manières, comme la sélection de seuil, la sélection de sous-ensemble, etc.
  • Conception d'un modèle prédictif: Concevez le modèle prédictif sur les données d'entraînement en fonction des fonctionnalités dont vous disposez.
  • Validation croisée:
  • Prédiction finale, validation

Je pense que vos étapes correspondent à mon option 2. D'après ce que je comprends, dans le cadre de l'étape de sélection des fonctionnalités, nous pouvons exécuter une fonction d'élimination des fonctionnalités récursives (RFE) à l'aide de forêts aléatoires, par exemple avec validation croisée pour déterminer le meilleur nombre de prédicteurs et ce que ils le sont, puis utilisent ces prédicteurs pour former plusieurs algorithmes avec validation croisée et comparer la précision pour obtenir le meilleur modèle qui utilise ces meilleurs prédicteurs. Qu'est-ce que tu penses?
AK

@AndrewKostandy Oui, l'algorithme de sélection de sous-ensemble pour la sélection des fonctionnalités fonctionne presque de la même manière :)
Dawny33

Je vous en prie. J'apprends actuellement pour un examen où l'une des questions standard du professeur est "quelle est la première chose que vous pensez après avoir obtenu et nettoyé les données?" :-)
Martin Thoma

@ Dawny33 Ne voudriez-vous pas effectuer des transformations, une mise à l'échelle, etc. avant de diviser votre ensemble de données en formation et test?
Minu

1
Une raison pour laquelle vous effectueriez des transformations variables et une mise à l'échelle uniquement vers les données d'entraînement? Comment ajusteriez-vous ensuite les données de test pour qu'elles correspondent? Juste curieux.
Minu

3

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.