学习如何实现集成方法的资源

机器算法验证 机器学习 Python 集成学习
2022-03-23 04:27:03

我从理论上(某种程度上)了解它们将如何工作,但不确定如何实际使用集成方法(例如投票、加权混合等)。

  • 什么是实现集成方法的好资源?
  • 是否有任何关于 Python 实现的特定资源?

编辑:

为了根据评论的讨论澄清一些问题,我不是在寻找诸如 randomForest 等集成算法。相反,我想知道如何将不同算法的不同分类结合起来。

例如,假设有人使用逻辑回归、SVM 和其他一些方法来预测某个观察的类别。根据这些预测来获取类的最佳估计的最佳方法是什么?

4个回答

一个好的起点是了解集成学习的概述特别是你会想看看boostingbagging另一种方法是“The Ensemble”团队在 Netflix Prize 中使用的方法,称为“混合”或特征堆叠

然后,只需找到一些实现这些的库并从那里开始工作。快速搜索一下scikitorange,它们都应该有 bagging 和 boosting(它们都是 Python)。

如果除了使用集成方法之外,您还想学习一些理论,那么我认为这篇论文将是一个很好的起点(请按照您感兴趣的部分的参考资料进行操作)。

干杯。

“数据挖掘中的集成方法:通过组合预测提高准确性”,Seni 和 Elder——实用集成理论和实现的优秀参考,但随附的代码是基于 R 的。

“机器学习:算法视角”,S. Marsland——优秀的基于 Python 的实用文本,但不像第一个参考文献那样专注于纯粹的集成概念。

Sumpy Joe Pete 的回答非常完美,但既然您提到了 Python 实现,我想提一下 Universidade Federal de Pernambuco 的brew项目。

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

此时,它们具有集成生成、组合、修剪和动态选择。

限制:仅分类;当前公开版本中没有堆叠;没有太多的文档。

Salford Systems 有一个名为 Random Forests 的软件包,它为分类和回归树集成实现了这一点。我没有任何免费的 R 包可以提供。我想他们有一个用户手册来解释他们的实现。以此类推,您可能会弄清楚如何为其他集成方法做到这一点。