I'm working on improving an existing supervised classifier, for classifying {protein} sequences as belonging to a specific class (Neuropeptide hormone precursors), or not.There are about 1,150 known positives, against a background of about 13 million protein sequences (Unknown/poorly annotated background), or about 100,000 reviewed, relevant proteins, annotated with a variety of properties (but very few annotated in an explicitly negative way). My previous implementation looked at this as a binary classification problem: Positive set = Proteins marked as Neuropeptides.Negative set: Random sampling of 1,300 samples (total) from among the remaining proteins of a roughly similar length-wise distribution. That worked, but I want to greatly improve the machines discriminatory abilities (Currently, it's at about 83-86% in terms of accuracy, AUC, F1, measured by CV, on multiple randomly sampled negative sets).My thoughts were to:1) Make this a multiclass problem, choosing 2-3 different classes of protein that will definetly be negatives, by their properties/functional class, along with (maybe) another randomly sampled set. (Priority here would be negative sets that are similar in their characteristics/features to the positive set, while still having defining characteristics) . 2) One class learning - Would be nice, but as I understand it, it's meant just for anomaly detection, and has poorer performance than discriminatory approaches.*) I've heard of P-U learning, which sounds neat, but I'm a programming N00b, and I don't know of any existing implementations for it. (In Python/sci-kit learn).So, does approach 1 make sense in a theoretical POV? Is there a best way to make multiple negative sets? (I could also simply use a massive [50K] pick of the negative proteins, but they're all very very different from each other, so I don't know how well the classifier would handle them as one big , unbalanced mix).Thanks!
One-Class discriminatory classification with imbalanced, heterogenous Negative background?
machine learning;data mining;python;classification