Bonjour chers collègues
Je veux générer n scores aléatoires (avec une étiquette de classe) comme s'ils avaient été produits par un modèle de classification binaire. En détail, les propriétés suivantes sont requises:
- chaque score est compris entre 0 et 1
- chaque score est associé à une étiquette binaire avec des valeurs "0" ou "1" (ce dernier est de classe positive)
- la précision globale des scores doit être par exemple de 0,1 (<- paramètre du générateur)
- le rapport des scores avec l'étiquette "1" doit être supérieur à la précision globale dans la section supérieure et inférieur dans la section inférieure (<- la "qualité du modèle" doit également être un paramètre du générateur)
- les scores doivent être tels que la courbe roc résultante soit lisse (et non par exemple qu'un groupe de scores avec le label "1" soit en haut et le reste des scores avec le label "1" soit en bas de la liste).
Quelqu'un at-il une idée de la façon d'aborder cela? Peut-être via la génération d'une courbe roc et ensuite générer les points de cette cure? Merci d'avance!
Réponses:
Un certain temps s'est écoulé et je pense que je pourrais avoir une solution à portée de main. Je décrirai brièvement mon approche pour vous donner une idée générale. Le code devrait être suffisant pour comprendre les détails. J'aime joindre du code ici, mais c'est beaucoup et stackexchange ne facilite pas la tâche. Je suis bien sûr heureux de répondre à vos commentaires, et j'apprécie également toute critique.
Le code se trouve ci-dessous.
La stratégie:
Voici un exemple de courbe ROC pour AUC = 0,6 et précision globale = 0,1 (également dans le code ci-dessous)
Remarques:
code:
la source