📄 adaboostlearner.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_ADABOOST_LEARNER_H_
#define _LIBADABOOST_ADABOOST_LEARNER_H_
#include "LibAdaBoost/modules/ModuleFactoryBase.h"
using namespace modules;
#include "LibAdaBoost/samples/learningsets/ILearningSet.h"
#include "LibAdaBoost/classifiers/WeightedSumClassifier.h"
#include "LibAdaBoost/learners/ILearner.h"
#include "LibAdaBoost/learners/IWeakLearner.h"
using namespace samples::learningsets;
using namespace classifiers;
using namespace classifiers::features;
namespace learners{
class AdaBoostLearner: public ILearner
{
public:
AdaBoostLearner();
AdaBoostLearner(ILearningSet *learningSet);
AdaBoostLearner(ILearningSet *learningSet, IWeakLearner *weakLearner);
virtual ~AdaBoostLearner();
void SetNbrCycles(int nbr){ m_NbrCycles = nbr;}
int GetNbrCycles(void) const{ return m_NbrCycles;}
public://Module
std::string GetName(void) const { return "AdaBoostLearner";};
void SetOptions(const modules::options::ModuleOptions &options);
public:// ILearner
virtual void Learn(void);
virtual void Reset(void);
virtual IClassifier *GetResult(void);
virtual ILearningSet *GetLearningSet(void);
virtual void SetLearningSet(ILearningSet *learningSet);
virtual IWeakLearner *GetWeakLearner(void);
virtual void SetWeakLearner(IWeakLearner *weakLearner);
protected:
WeightedSumClassifier *m_wsClassifier;
int m_NbrCycles;
double m_err;
ILearningSet *m_LearningSet;
IWeakLearner *m_WeakLearner;
};
typedef ModuleFactory<AdaBoostLearner> AdaBoostLearnerFactory;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -