⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bagging.cpp

📁 C++编写的机器学习算法 Lemga is a C++ package which consists of classes for several learning models and gener
💻 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 + -