首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用多个分类器-如何衡量整体的性能?[SciKit学习]

当使用多个分类器-如何衡量整体的性能?[SciKit学习]
EN

Stack Overflow用户
提问于 2014-02-01 13:52:57
回答 2查看 5.2K关注 0票数 8

我有一个分类问题(预测一个序列是否属于一个类),对于这个问题,我决定使用多种分类方法,以帮助筛选出假阳性。

(问题在于生物信息学-将蛋白质序列归类为神经肽前体序列。如果有人感兴趣,这是最初的文章以及用于生成特性和训练单个预测器的代码。)。

现在,分类器在10倍CV的训练集上具有大致相似的性能指标(83-94%的准确率/精度/等等),所以我的“朴素”方法是简单地使用多个分类器(随机森林、ExtraTrees、支持向量机(线性核)、支持向量机(径向基核)和伽玛基),并使用简单的多数投票。

我的问题是:如何获得不同分类器和/或它们的投票预测的性能指标?也就是说,我想看看使用多个分类器是否能提高我的性能,或者它们的哪个组合可以提高我的性能。

我的直觉可能是使用中华民国的分数,但我不知道如何“组合”结果,从分类器组合中得到。(也就是说,只对已知的每一个分类器来说,只看ROC曲线是什么,然后使用分类器的组合来查看训练数据的ROC曲线或AUC )。

(我目前使用随机森林和ExtraTrees方法使用“预测概率”对预测进行过滤,然后对预测分数低于'0.85‘的结果进行任意筛选。另一层过滤是“有多少分类器同意这种蛋白质的正分类”)。

非常感谢!!

( 网站实现,我们在其中使用多个分类器- http://neuropid.cs.huji.ac.il/ )

整个shebang是使用SciKit、learn和python实现的。(引用等等!)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-18 17:01:44

要评估合奏的性能,只需遵循与通常相同的方法。但是,您将希望首先获得10折叠数据集分区,对于每个折叠,将您的所有集合训练在同一折叠上,测量精度,与其他折叠一起冲洗和重复,然后计算集合的精度。因此,关键的区别在于,在评估集成时,不要使用k折叠交叉验证来训练单个算法。重要的是不要让集成直接看到测试数据,或者让它的算法之一看到测试数据。

还请注意,RF和额外的树本身已经是集成算法。

另一种方法(再次确保集成方法)是将分类器输出的概率和标签输入到另一个分类器中(例如DT、RF、SVM或其他任何分类器),通过组合这些其他分类器的最佳猜测来生成预测。这被称为“堆叠”

票数 8
EN

Stack Overflow用户

发布于 2014-03-18 20:11:14

您可以使用线性回归来堆叠。对于每10倍,您可以使用以下方法拆分数据:

  • 8套培训
  • 1个验证集
  • 1套测试

使用训练集和验证集优化每个算法的超参数,然后在验证集上使用线性回归或logistic回归来叠加预测。最后的模型是p= a_o + a_1 p_1 +…+ a_k p_K,其中k是分类器的个数,p_k是k模型给出的概率,a_k是模型k的权重,如果模型不给出概率,也可以直接使用预测的结果。

如果您的模型是相同的,您可以优化参数的模型和权重在同一时间。

如果您有明显的差异,您可以使用不同的参数为每个不同的回收箱。例如,一个bin可以是短序列,另一个可以是长序列。或者不同类型的蛋白质。

你可以用任何你想要的度量,只要它能使人感觉到,就像不混合算法一样。

你可能想看看2007年的Belkor解决方案的Netflix挑战,部分混合。在2008年和2009年,他们使用了更多的先进技术,这也可能是您感兴趣的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21498875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档