📄 iweaklearner.h
字号:
//LAB_LicenseBegin==============================================================
// Copyright (c) 2005-2006, Hicham GHORAYEB < ghorayeb@gmail.com >
// All rights reserved.
//
// This software is a Library for Adaptive Boosting. It provides a generic
// framework for the study of the Boosting algorithms. The framework provides
// the different tasks for boosting: Learning, Validation, Test, Profiling and
// Performance Analysis Tasks.
//
// This Library was developped during my PhD studies at:
// Ecole des Mines de Paris - Centre de Robotique( CAOR )
// http://caor.ensmp.fr
// under the supervision of Pr. Claude Laurgeau and Bruno Steux
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the distribution.
// * Neither the name of the Ecole des Mines de Paris nor the names of
// its contributors may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//================================================================LAB_LicenseEnd
#ifndef _LIBADABOOST_WEAK_LEARNER_H_
#define _LIBADABOOST_WEAK_LEARNER_H_
#include "LibAdaBoost/modules/Module.h"
using namespace modules;
#include "LibAdaBoost/samples/learningsets/ILearningSet.h"
using namespace samples::learningsets;
#include "LibAdaBoost/classifiers/IClassifier.h"
using namespace classifiers;
#include "LibAdaBoost/classifiers/features/WeakClassifier.h"
using namespace classifiers::features;
#include "LibAdaBoost/classifiers/features/IRandomWeakClassifierGenerator.h"
using namespace classifiers::features;
#include "LibAdaBoost/learners/wlinterfaces/WeakLearnerInterface.h"
using namespace learners::wlinterfaces;
#include <string>
using namespace std;
namespace learners{
class IWeakLearner
:public Module
{
public://Module
virtual std::string GetName(void) const = 0;
std::string GetType(void) const {return "IWeakLearner";}
virtual void SetOptions(const modules::options::ModuleOptions &options) = 0;
public:// IWeakLearner
virtual WeakClassifier *GetNewWeakClassifier(double &error) = 0;
virtual void SetRandomWeakClassifierGenerator(IRandomWeakClassifierGenerator *randomGen) = 0;
virtual IRandomWeakClassifierGenerator *GetRandomWeakClassifierGenerator(void) = 0;
virtual const std::string &GetWeakLearnerLog() const = 0;
virtual const WeakLearnerInterface *GetWeakLearnerInterface(void) = 0;
virtual void SetWeakLearnerInterface(const WeakLearnerInterface *wli) = 0;
public:// ILearner
virtual ILearningSet *GetLearningSet(void) = 0;
virtual void SetLearningSet(ILearningSet *learningSet) = 0;
protected://ILearner
virtual void Learn(void) = 0;
virtual void Reset(void) = 0;
virtual IClassifier *GetResult(void) = 0;
virtual double GetResultError(void) const = 0;
virtual const std::string &GetLearnerLog() const = 0;
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -