J'utilise un classificateur bayésien naïf pour classer entre deux groupes de données. Un groupe de données est beaucoup plus grand que l'autre (plus de 4 fois). J'utilise la probabilité antérieure de chaque groupe dans le classificateur.
Le problème est que le résultat que j'obtiens a un taux de vrai positif de 0% et un taux de faux positif de 0%. J'ai obtenu les mêmes résultats lorsque j'ai réglé l'avant à 0,5 et 0,5.
Comment puis-je fixer mon seuil à quelque chose de mieux pour obtenir des résultats plus équilibrés?
J'ai eu un problème similaire lors de l'utilisation du classificateur de régression logistique. Je l'ai résolu en soustrayant le terme précédent du biais.
Lorsque j'utilise Fisher Linear Discriminant sur ces données, j'obtiens de bons résultats avec le seuil défini au milieu.
Je suppose qu'il existe une solution commune à ce problème, je ne l'ai tout simplement pas trouvée.
MISE À JOUR: Je viens de remarquer que moi, le classificateur est trop adapté. La performance sur l'ensemble d'entraînement est parfaite (100% correcte).
Si j'utilise des groupes égaux, le classificateur commence également à se classer dans le "petit" groupe, mais les performances sont plutôt mauvaises (pires que FLD ou LR).
UPDATE2: Je pense que le problème était que j'utilisais une matrice de covariance complète. Courir avec une matrice de covariance diagonale m'a donné des résultats plus «équilibrés».
Réponses:
Assigner tous les modèles à la classe négative n'est certainement pas un "résultat étrange". Il se pourrait que le classificateur optimal de Bayes classe toujours tous les modèles comme appartenant à la classe majoritaire, auquel cas votre classificateur fait exactement ce qu'il doit faire. Si la densité des motifs appartenant à la classe positive ne dépasse jamais la densité des motifs appartenant à la classe négative, alors la classe négative est plus probable quelles que soient les valeurs d'attribut.
La chose à faire dans de telles circonstances est de considérer l'importance relative des erreurs faussement positives et fausses négatives, il est rare en pratique que les coûts des deux types d'erreurs soient les mêmes. Déterminez donc la perte pour les erreurs faussement positives et fausses négatives et tenez-en compte dans la définition de la probabilité de seuil (des coûts de classification erronés différents équivalent à changer les probabilités antérieures, donc c'est facile à mettre en œuvre pour les Bayes naïfs). Je recommanderais de régler les priorités pour minimiser l'estimation de validation croisée de la perte (en tenant compte de vos coûts de classification erronée inégaux).
Si vos coûts de classification erronée sont égaux et que votre formation est antérieure aux conditions opérationnelles, en supposant que votre mise en œuvre est correcte, il est possible que vous disposiez déjà du meilleur classificateur NB.
la source
Agrandissez le plus petit groupe de données pour l'adapter au grand groupe par calcul. Il étirera les données du plus petit groupe, mais il permettra un calcul plus égal.
Si vous obtenez toujours des résultats étranges comme vous le faites actuellement, vérifiez toute votre implémentation du début pour rechercher une erreur (probablement simple).
la source