gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 00:34:28 24 4
gpt4 key购买 nike

我想使用 AdaBoost 从大量(~100k)中选择一组好的特征。 AdaBoost 的工作原理是遍历特征集并根据它们的执行情况添加特征。它选择在被现有特征集错误分类的样本上表现良好的特征。

我目前在 Open CV 的 CvBoost 中使用。我有一个 example working , 但来自 documentation目前尚不清楚如何提取它使用过的特征索引。

使用第 3 方库 CvBoost 或自己实现它,如何使用 AdaBoot 从大型功能集中提取一组功能?

最佳答案

在@greeness 回答的帮助下,我创建了 CvBoost 的子类

std::vector<int> RSCvBoost::getFeatureIndexes() {

CvSeqReader reader;
cvStartReadSeq( weak, &reader );
cvSetSeqReaderPos( &reader, 0 );

std::vector<int> featureIndexes;

int weak_count = weak->total;
for( int i = 0; i < weak_count; i++ ) {
CvBoostTree* wtree;
CV_READ_SEQ_ELEM( wtree, reader );

const CvDTreeNode* node = wtree->get_root();
CvDTreeSplit* split = node->split;
const int index = split->condensed_idx;

// Only add features that are not already added
if (std::find(featureIndexes.begin(),
featureIndexes.end(),
index) == featureIndexes.end()) {

featureIndexes.push_back(index);
}

}

return featureIndexes;
}

关于c++ - 如何使用 AdaBoost 进行特征选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962349/

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