Ich arbeite daran, einen vorhandenen überwachten Klassifikator zu verbessern, um {Protein} -Sequenzen als zu einer bestimmten Klasse gehörig zu klassifizieren (Neuropeptidhormon-Vorläufer) oder nicht.
Es gibt ungefähr 1.150 bekannte "Positive" vor einem Hintergrund von ungefähr 13 Millionen Proteinsequenzen ("Unbekannter / schlecht kommentierter Hintergrund") oder ungefähr 100.000 überprüfte, relevante Proteine, die mit einer Vielzahl von Eigenschaften kommentiert wurden (aber nur sehr wenige, die explizit kommentiert wurden) "negative Weise).
Meine vorherige Implementierung betrachtete dies als ein binäres Klassifizierungsproblem: Positiver Satz = Proteine, die als Neuropeptide markiert sind. Negativsatz: Zufällige Stichprobe von insgesamt 1.300 Proben aus den verbleibenden Proteinen mit einer ungefähr ähnlichen Längenverteilung.
Das hat funktioniert, aber ich möchte die Diskriminierungsfähigkeiten der Maschinen erheblich verbessern (derzeit liegt sie bei etwa 83-86% in Bezug auf die Genauigkeit, AUC, F1, gemessen durch CV, bei mehreren nach dem Zufallsprinzip ausgewählten negativen Sätzen).
Meine Überlegungen waren: 1) Machen Sie dies zu einem Problem mit mehreren Klassen, indem Sie 2-3 verschiedene Proteinklassen auswählen, die auf jeden Fall negativ sein werden, je nach Eigenschaften / Funktionsklasse, zusammen mit (vielleicht) einem anderen zufällig ausgewählten Satz. (Priorität haben hier negative Mengen, die in ihren Merkmalen / Merkmalen den positiven Mengen ähnlich sind und dennoch definierende Merkmale aufweisen). 2) Lernen in einer Klasse - Wäre nett, aber so wie ich es verstehe, ist es nur zur Erkennung von Anomalien gedacht und hat eine schlechtere Leistung als diskriminierende Ansätze.
*) Ich habe von PU-Lernen gehört, was sich gut anhört, aber ich bin ein Programmierer N00b und kenne keine vorhandenen Implementierungen dafür. (In Python / Sci-Kit lernen).
Ist Ansatz 1 in einem theoretischen POV sinnvoll? Gibt es eine beste Möglichkeit, mehrere negative Sätze zu erstellen? (Ich könnte auch einfach eine massive [50K] Auswahl der "negativen" Proteine verwenden, aber sie unterscheiden sich alle sehr stark voneinander, daher weiß ich nicht, wie gut der Klassifikator mit ihnen als einer großen, unausgeglichenen Mischung umgehen würde ). Vielen Dank!