我正在努力改进现有的监督分类器,用于将 {蛋白质} 序列分类为属于特定类别(神经肽激素前体)或不属于。
在大约 1300 万个蛋白质序列(“未知/注释不佳的背景”)的背景下,大约有 1,150 个已知的“阳性”,或大约 100,000 个经过审查的相关蛋白质,带有各种属性的注释(但很少有明确注释的“消极”的方式)。
我之前的实现将此视为一个二元分类问题:正集 = 标记为神经肽的蛋白质。负集:从长度分布大致相似的剩余蛋白质中随机抽取 1,300 个样本(总计)。
那行得通,但我想大大提高机器的辨别能力(目前,在多个随机采样的负集上,通过 CV 测量的准确度、AUC、F1 约为 83-86%)。
我的想法是:1)使这个问题成为一个多类问题,选择 2-3 种不同类别的蛋白质,它们的属性/功能类别肯定是负面的,以及(也许)另一个随机抽样的集合。(这里的优先级是在特征/特征上与正集相似但仍具有定义特征的负集)。2)一类学习 - 会很好,但据我了解,它仅用于异常检测,并且性能比歧视性方法差。
*) 我听说过 PU 学习,听起来很不错,但我是编程 N00b,我不知道它有任何现有的实现。(在 Python/sci-kit 中学习)。
那么,方法 1 在理论 POV 中有意义吗?有没有制作多个负集的最佳方法?(我也可以简单地使用大量 [50K] 的“阴性”蛋白质,但它们彼此之间都非常不同,所以我不知道分类器将它们作为一个大的、不平衡的混合物处理得如何)。谢谢!