Je travaille sur l'amélioration d'un classifieur supervisé existant, pour classer les séquences {protéine} comme appartenant à une classe spécifique (précurseurs des hormones neuropeptidiques), ou non.
Il y a environ 1 150 «positifs» connus, sur un fond d'environ 13 millions de séquences de protéines («fond inconnu / mal annoté»), ou environ 100 000 protéines pertinentes examinées, annotées avec une variété de propriétés (mais très peu annotées de manière explicite manière "négative").
Mon implémentation précédente a considéré cela comme un problème de classification binaire: ensemble positif = protéines marquées comme neuropeptides. Ensemble négatif: échantillonnage aléatoire de 1 300 échantillons (total) parmi les protéines restantes d'une distribution à peu près similaire en longueur.
Cela a fonctionné, mais je veux améliorer considérablement les capacités discriminatoires des machines (actuellement, c'est à environ 83-86% en termes de précision, AUC, F1, mesurée par CV, sur plusieurs ensembles négatifs échantillonnés au hasard).
Mes pensées étaient de: 1) En faire un problème multiclasse, en choisissant 2-3 classes différentes de protéines qui seront définitivement négatives, par leurs propriétés / classe fonctionnelle, avec (peut-être) un autre ensemble échantillonné au hasard. (La priorité ici serait les ensembles négatifs qui sont similaires dans leurs caractéristiques / caractéristiques à l'ensemble positif, tout en ayant des caractéristiques définissantes). 2) Apprentissage en classe - Ce serait bien, mais si je comprends bien, il est destiné uniquement à la détection d'anomalies et a de moins bonnes performances que les approches discriminatoires.
*) J'ai entendu parler de l'apprentissage PU, ce qui semble bien, mais je suis un N00b de programmation, et je ne connais aucune implémentation existante pour cela. (En Python / sci-kit, apprenez).
Alors, l'approche 1 a-t-elle un sens dans un PDV théorique? Existe-t-il un meilleur moyen de créer plusieurs ensembles négatifs? (Je pourrais aussi simplement utiliser une sélection massive [50K] de protéines "négatives", mais elles sont toutes très très différentes les unes des autres, donc je ne sais pas dans quelle mesure le classificateur les traiterait comme un grand mélange non équilibré ). Merci!