Supposons que j'ai des classificateurs C_1 ... C_n qui sont disjoints dans le sens où aucun ne retournera vrai sur la même entrée (par exemple les nœuds dans un arbre de décision). Je veux construire un nouveau classificateur qui est l'union d'un sous-ensemble de ceux-ci (par exemple, je veux décider quelles feuilles d'un arbre de décision donner une classification positive). Bien sûr, ce faisant, il y aura un compromis entre la sensibilité et la valeur prédictive positive. Je voudrais donc voir une courbe ROC. En principe, je pourrais le faire en énumérant tous les sous-ensembles des classificateurs et en calculant la sensibilité et le PPV résultants. Cependant, cela est prohibitif si n est supérieur à 30 environ. D'un autre côté, il existe presque certainement des combinaisons qui ne sont pas optimales pour Pareto, il peut donc y avoir une stratégie de branche et de limite, ou quelque chose,
Je voudrais savoir si cette approche est susceptible d'être fructueuse et s'il y a du travail ou si vous avez des idées sur le calcul efficace de la courbe ROC dans la situation ci-dessus.
la source
Réponses:
Cela ressemble beaucoup à un problème de sac à dos ! Les tailles de grappe sont des "poids" et le nombre d'échantillons positifs dans une grappe sont des "valeurs", et vous souhaitez remplir votre sac à dos de capacité fixe avec autant de valeur que possible.
Voici un exemple de python:
Ce code dessinera une belle image pour vous:
Et maintenant, le peu de sel: vous n'avez pas du tout à vous soucier des sous-ensembles ! Ce que j'ai fait, c'est trier les feuilles des arbres en fonction de la fraction d'échantillons positifs dans chacune. Mais ce que j'ai obtenu est exactement la courbe ROC pour la prédiction probabiliste de l'arbre. Cela signifie que vous ne pouvez pas surpasser l'arbre en cueillant à la main ses feuilles en fonction des fréquences cibles dans l'ensemble d'entraînement.
Vous pouvez vous détendre et continuer à utiliser la prédiction probabiliste ordinaire :)
la source
Je pourrais vous suggérer d'utiliser des méthodes gourmandes. Donnez un classificateur pour commencer, vous inclurez le classificateur qui permet à l'ensemble d'obtenir la meilleure amélioration de performance. Si aucune amélioration ne peut être obtenue, incluez plus de classificateurs, puis arrêtez. Vous commencerez par tous les classificateurs. La complexité sera au maximum N * N.
J'ai une autre question, que voulez-vous dire par "Pareto optimal", surtout dans votre contexte? J'ai trouvé sur wiki cette explication, https://en.wikipedia.org/wiki/Pareto_efficiency
L'amélioration de l'efficacité de Pareto concerne chaque participant, ce qui peut correspondre à chaque classificateur. Comment définissez-vous l'amélioration par rapport à un classifieur?
la source