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

📄 adaboostlearner.h

📁 WeakLearner,弱分类器
💻 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 + -