Je sais qu'il n'y a pas de réponse claire à cette question, mais supposons que j'ai un énorme réseau de neurones, avec beaucoup de données et je veux ajouter une nouvelle fonctionnalité en entrée. La "meilleure" façon serait de tester le réseau avec la nouvelle fonctionnalité et de voir les résultats, mais existe-t-il une méthode pour tester si la fonctionnalité n'est pas utile? Comme les mesures de corrélation ( http://www3.nd.edu/~mclark19/learn/CorrelationComparison.pdf ), etc.?
16
Réponses:
Une très forte corrélation entre la nouvelle fonctionnalité et une fonctionnalité existante est un assez bon signe que la nouvelle fonctionnalité fournit peu de nouvelles informations. Une faible corrélation entre la nouvelle fonctionnalité et les fonctionnalités existantes est probablement préférable.
Une forte corrélation linéaire entre la nouvelle fonctionnalité et la variable prédite est un bon signe qu'une nouvelle fonctionnalité sera précieuse, mais l'absence d'une corrélation élevée n'est pas nécessairement un signe d'une mauvaise fonctionnalité, car les réseaux de neurones ne sont pas limités aux combinaisons linéaires de variables.
Si la nouvelle fonctionnalité a été créée manuellement à partir d'une combinaison de fonctionnalités existantes, envisagez de la laisser de côté. La beauté des réseaux de neurones est que peu d'ingénierie et de prétraitement des fonctionnalités sont nécessaires - les fonctionnalités sont plutôt apprises par les couches intermédiaires. Dans la mesure du possible, préférez les fonctionnalités d'apprentissage à leur conception.
la source
Si vous utilisez sklearn, il existe une bonne fonction disponible appelée model.feature_importances_. Essayez-le avec votre modèle / nouvelle fonctionnalité et voyez si cela aide. Regardez aussi ici et ici pour des exemples.
la source