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

📄 cascade.cpp

📁 C++编写的机器学习算法 Lemga is a C++ package which consists of classes for several learning models and gener
💻 CPP
字号:
/** @file *  $Id: cascade.cpp 1907 2004-12-11 00:51:14Z ling $ */#include <assert.h>#include "cascade.h"namespace lemga {bool Cascade::serialize (std::ostream& os, ver_list& vl) const {    SERIALIZE_PARENT(Aggregating, os, vl, 1);    assert(lm.size() == upper_margin.size() &&           lm.size() == lower_margin.size());    for (UINT i = 0; i < lm.size(); ++i)        if (!(os << '(' << lower_margin[i] << ','              << upper_margin[i] << ')' << ' ')) return false;    return true;}bool Cascade::unserialize (std::istream& is, ver_list& vl, const id_t& d) {    if (d != id() && d != empty_id) return false;    UNSERIALIZE_PARENT(Aggregating, is, vl, 1, v);    const UINT n = lm.size();    upper_margin.resize(n);    lower_margin.resize(n);    for (std::vector<REAL>::iterator             pu = upper_margin.begin(), pl = lower_margin.begin();         pu != upper_margin.end(); ++pu, ++pl)    {        char c;        if (!(is >> c >> *pl >> c >> *pu >> c)) return false;        if (*pl > *pu) return false;    }    return true;}Output Cascade::operator() (const Input& x) const {    assert(n_in_agg > 0 && n_in_agg <= lm.size());    assert(lm.size() == upper_margin.size() &&           lm.size() == lower_margin.size());    for (UINT i = 0; i < n_in_agg-1; ++i) {        assert(lm[i] != NULL);        Output out = (*lm[i])(x);        REAL b = belief(*lm[i], x, out);        //assert(lower_margin[i] < upper_margin[i]);        if (b > upper_margin[i] || b < lower_margin[i])            return out;    }    return (*lm[n_in_agg-1])(x);}/** We use the ``sign'' part of margin in AdaBoost */REAL Cascade::belief (const LearnModel& l, const Input& x,                      const Output& y) const {    assert(l(x) == y);    assert(l.n_output() == 1);    return y[0];}} // namespace lemga

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -