J'ai construit un classificateur de régression logistique qui est très précis sur mes données. Maintenant, je veux mieux comprendre pourquoi cela fonctionne si bien. Plus précisément, j'aimerais classer les fonctionnalités qui apportent la plus grande contribution (quelles fonctionnalités sont les plus importantes) et, idéalement, quantifier dans quelle mesure chaque fonctionnalité contribue à la précision du modèle global (ou quelque chose dans ce sens). Comment puis-je faire cela?
Ma première pensée a été de les classer en fonction de leur coefficient, mais je soupçonne que cela ne peut pas être correct. Si j'ai deux caractéristiques qui sont également utiles, mais que la propagation de la première est dix fois plus grande que la seconde, je m'attendrais à ce que la première reçoive un coefficient inférieur à la seconde. Existe-t-il un moyen plus raisonnable d'évaluer l'importance des fonctionnalités?
Notez que je n'essaie pas de comprendre dans quelle mesure un petit changement dans la fonctionnalité affecte la probabilité du résultat. J'essaie plutôt de comprendre la valeur de chaque fonctionnalité, en termes de précision du classificateur. De plus, mon objectif n'est pas tant d'effectuer la sélection des fonctionnalités ou de construire un modèle avec moins de fonctionnalités, mais d'essayer de fournir une certaine "explicabilité" au modèle appris, de sorte que le classifieur n'est pas seulement une boîte noire opaque.
Réponses:
La première chose à noter est que vous n'utilisez pas la régression logistique comme classificateur. Le fait que soit binaire n'a absolument rien à voir avec l'utilisation de cette méthode du maximum de vraisemblance pour classer réellement les observations. Une fois que vous avez dépassé cela, concentrez-vous sur la mesure d'information de l'étalon-or qui est un sous-produit de la probabilité maximale: le rapport de vraisemblance χ 2 statistique. Vous pouvez produire un graphique montrant la contribution partielle de chaque variable explicative en termes de partie χ 2Y χ2 χ2 statistique. Ces statistiques ont un maximum d'informations / puissance. Vous pouvez utiliser le bootstrap pour montrer à quel point il est difficile de sélectionner les «gagnants» et les «perdants» en obtenant des intervalles de confiance sur les rangs des informations prédictives fournies par chaque prédicteur une fois les autres prédicteurs pris en compte. Un exemple est à la section 5.4 de mes notes de cours - cliquez sur Documents puis sur Documents à nouveau.
Si vous avez des fonctionnalités hautement corrélées, vous pouvez faire un "test de bloc" pour combiner leur influence. Un graphique qui le fait est donné à la figure 15.11 où
size
représente la contribution combinée de 4 prédicteurs distincts.la source
La réponse courte est qu'il n'y a pas une seule et "bonne" façon de répondre à cette question.
Pour la meilleure revue des problèmes, voir les articles d'Ulrike Groemping, par exemple, Estimators of Relative Importance in Linear Regression Based on Variance Decomposition . Les options qu'elle aborde vont de l'heuristique simple aux solutions sophistiquées, gourmandes en CPU et multivariées.
http://prof.beuth-hochschule.de/fileadmin/prof/groemp/downloads/amstat07mayp139.pdf
Groemping propose sa propre approche dans un package R appelé RELAIMPO qui mérite également d'être lu.
https://cran.r-project.org/web/packages/relaimpo/relaimpo.pdf
Une heuristique rapide et sale que j'ai utilisée consiste à résumer les chi-carrés (valeurs F, statistiques t) associés à chaque paramètre, puis à recentrer les valeurs individuelles avec cette somme. Le résultat serait une mesure d'importance relative classable.
Cela dit, je n'ai jamais été fan des «coefficients bêta normalisés» bien qu'ils soient fréquemment recommandés par la profession et largement utilisés. Voici le problème avec eux: la standardisation est univariée et externe à la solution du modèle. En d'autres termes, cette approche ne reflète pas la nature conditionnelle des résultats du modèle.
la source
Une manière assez robuste de le faire serait d'essayer d'ajuster le modèle N fois où N est le nombre d'entités. À chaque fois, utilisez N-1 des fonctionnalités et laissez-en une. Ensuite, vous pouvez utiliser votre métrique de validation préférée pour mesurer dans quelle mesure l'inclusion ou l'exclusion de chaque fonctionnalité affecte les performances du modèle. Selon le nombre de fonctionnalités dont vous disposez, cela peut être coûteux en calcul.
la source
En ce qui concerne votre dernier point, il est bien sûr possible qu'une variable contribue beaucoup aux cotes de journal estimées sans affecter réellement les "vraies" cotes de journal, mais je ne pense pas que cela doive être trop préoccupant si nous avoir confiance dans la procédure qui a produit les estimations.
la source
Vous avez raison de ne pas utiliser les coefficients comme mesure de pertinence, mais vous le pouvez absolument si vous les divisez par leur erreur standard! Si vous avez estimé le modèle avec R, alors c'est déjà fait pour vous! Vous pouvez même supprimer les fonctionnalités les moins importantes du modèle et voir comment cela fonctionne.
Une approche plus heuristique pour étudier comment différents changements dans les variables modifient le résultat fait exactement cela: essayez différentes entrées et étudiez leurs probabilités estimées. Cependant, comme votre modèle est assez simple, je dirais que
la source