如何使用AdaBoost进行特征选择?

我想使用AdaBoost从大量特征(约10万个)中选择一组好的特征。AdaBoost通过迭代特征集并根据它们的表现添加特征来工作。它选择那些在现有特征集误分类样本上表现良好的特征。

我目前在使用OpenCV的CvBoost。我已经运行了一个示例,但从文档中看,不清楚如何提取它所使用的特征索引。

使用CvBoost、第三方库或自己实现,如何从大型特征集中使用AdaBoost提取一组特征?


回答:

声明:我不是OpenCV的用户。从文档来看,OpenCV的AdaBoost使用决策树(分类树或回归树)作为基本的弱学习器。

在我看来,这是获取底层弱学习器的方法:

CvBoost::get_weak_predictors返回弱树分类器的序列。C++: CvSeq* CvBoost::get_weak_predictors()该方法返回弱分类器的序列。序列的每个元素都是指向CvBoostTree类或其派生类之一的指针。

一旦你访问到CvBoostTree*的序列,你应该能够检查树中包含哪些特征以及分裂值等信息。

如果每棵树只是一个决策树桩,那么每个弱学习器中只包含一个特征。但如果我们允许树的深度更深,每个独立的弱学习器中可能存在特征的组合。

我进一步查看了CvBoostTree;不幸的是,该类本身没有提供公共方法来检查内部使用的特征。但你可能想要创建一个从CvBoostTree继承的子类,并暴露所需的功能。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注