📄 bagging.cpp
字号:
/** @file * $Id: bagging.cpp 2508 2005-11-15 08:29:43Z ling $ */#include <assert.h>#include "bagging.h"REGISTER_CREATOR(lemga::Bagging);namespace lemga {Bagging::Bagging (UINT max) : Aggregating() { set_max_models(max);}Output Bagging::operator() (const Input& x) const { assert(n_in_agg > 0 && n_in_agg <= size()); Output y(_n_out, 0); for (UINT i = 0; i < n_in_agg; ++i) { assert(lm[i] != 0); Output yi = (*lm[i])(x); for (UINT j = 0; j < _n_out; ++j) y[j] += (yi[j] > 0)? 1 : -1; } for (UINT j = 0; j < _n_out; ++j) y[j] /= n_in_agg; return y;}REAL Bagging::train () { assert(n_in_agg == 0 && empty()); REAL err = 0; for (UINT i = 0; i < max_n_model; ++i) {#if VERBOSE_OUTPUT std::cout << "=== " << id() << " #" << i+1 << " / " << max_n_model << " ===\n";#endif assert(lm_base != 0); LearnModel *p = lm_base->clone(); p->set_train_data(ptd->random_sample(*ptw, n_samples)); p->initialize(); err += p->train(); lm.push_back(p); } n_in_agg = max_n_model; return (err / n_in_agg);}} // namespace lemga
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -