Comment choisir les fonctionnalités d'un réseau neuronal?

16

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.?

marcodena
la source
1
Une corrélation non aléatoire pourrait être un indicateur que la fonctionnalité est utile. Mais je ne suis pas sûr des tests de pré-formation qui pourraient exclure les idées. Le document que vous liez montre clairement que les corrélations non linéaires ne sont pas bien détectées par les tests disponibles, mais un réseau neuronal a une chance de les trouver et de les utiliser.
Neil Slater

Réponses:

16

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.

Madison May
la source
J'ai toujours pensé à comparer la valeur à prédire avec les fonctionnalités, vous parlez de corrélation entre les fonctionnalités. Votre réponse s'applique-t-elle également à mon cas? en théorie, je ne devrais ajouter que de nouvelles fonctionnalités qui sont corrélées à la valeur à prévoir, non?
marcodena
C'est également une mesure précieuse - vient de mettre à jour ma réponse pour y répondre également.
Madison
En bref, de fortes corrélations avec la valeur à prédire sont un grand signe, mais une faible corrélation avec la valeur à prédire n'est pas nécessairement un mauvais signe.
Madison
Merci. J'écris un rapport et je voulais montrer les corrélations linéaires / non linéaires afin de justifier les caractéristiques (avant même les résultats). Celà a-t-il un sens? À partir de votre réponse, je pourrais faire une matrice de corrélations mais peut-être que c'est nosense
marcodena
1
J'utiliserais des corrélations non linéaires, mais ok merci
marcodena
0

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.

Aniket
la source