gpt4 book ai didi

python - 使用多个分类器时 - 如何衡量集成的性能? [SciKit学习]

转载 作者:太空狗 更新时间:2023-10-29 20:49:55 25 4
gpt4 key购买 nike

我有一个分类问题(预测一个序列是否属于一个类),为此我决定使用多种分类方法,以帮助过滤掉误报。

(问题在于生物信息学 - 将蛋白质序列分类为神经肽前体序列。Here's the original article 如果有人感兴趣,and the code used to generate features and to train a single predictor)。

现在,分类器具有大致相似的性能指标(10 倍 CV 的训练集上的准确度/精度等为 83-94%),因此我的“天真”方法是简单地使用多个分类器(随机森林, ExtraTrees, SVM (Linear kernel), SVM (RBF kernel) and GRB) ,并使用简单多数表决。

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

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

(我目前使用随机森林和 ExtraTrees 方法使用“预测概率”过滤预测,然后我任意过滤预测分数低于“0.85”的结果。额外的过滤层是“有多少分类器同意这个蛋白质的阳性分类”)。

非常感谢!!

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

整个 shebang 是使用 SciKit learn 和 python 实现的。引用和所有!)

最佳答案

要评估集成的性能,只需按照与通常相同的方法进行操作即可。但是,您将希望首先获得 10 折数据集分区,并且对于每一折,在同一折上训练您的所有合奏,测量准确性,冲洗并重复其他折,然后计算合奏的准确性。因此,关键区别在于在评估集成时不使用 k 折交叉验证来训练单个算法。重要的是不要让集成直接看到测试数据,也不要让其中一种算法看到测试数据。

另请注意,RF 和 Extra Trees 本身已经是集成算法。

另一种方法(再次确保集成方法)是采用分类器输出的概率和\或标签,并将它们提供给另一个产生预测的分类器(比如 DT、RF、SVM 或其他)通过结合这些其他分类器的最佳猜测。这称为 "Stacking"

关于python - 使用多个分类器时 - 如何衡量集成的性能? [SciKit学习],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com