亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? geneticweaklearner.cpp

?? WeakLearner,弱分類器
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
			<< m_LearningSet->NbrOfSamples() 
			<< " all"
			<< ")"
			<< std::endl;

		oStrLog<< setprecision( 5 )
			<< setw( 7 )
			<< left
			<< cur_error << " "
			<< setprecision( 5 )
			<< setw( 7 )
			<< left
			<< m_bestwc.second << " "
			<< setfill(' ')
			<< setw( 4 )
			<< nbr_generation_no_improvement << " "
			<< setw( 4 )
			<< cur_bestwc->GetTruePositive() << " "
			<< setw( 4 )
			<< m_LearningSet->NbrOfPositiveSamples()<< " "
			<< setw( 4 )
			<< cur_bestwc->GetTrueNegative() << " " 
			<< setw( 4 )
			<< m_LearningSet->NbrOfNegativeSamples() << " "
			<< setw( 4 )
			<< cur_bestwc->GetTrueNegative() + cur_bestwc->GetTruePositive() << " "
			<< setw( 4 )
			<< m_LearningSet->NbrOfSamples() << " "
			<< std::endl;

		// Update the number Of Generations With No improvments
		// compare this Weak Classifier to the previous, if it is better then swap
		if( cur_error < m_bestwc.second )
		{
			// Store this new Weak Classifier
			m_bestwc.second = cur_error;
			if(m_bestwc.first != NULL){
				delete m_bestwc.first;
				m_bestwc.first = NULL;
			}

			m_bestwc.first = cur_bestwc;
			cur_bestwc = NULL;

			// Reset Counter to Zero
			nbr_generation_no_improvement = 0;
		}else{
			// Delete the Temporary Cur Best Weak Classifier
            delete cur_bestwc;
			cur_bestwc = NULL;
			nbr_generation_no_improvement++;
		}

		// IF STOP CONDITION IS TRUE THEN BREAK
		// THE STOP CONDITION COULD BE THE TRACITIONAL ONE AS BELOW
		// OR BASED ON THE MAS ALLOWED ITERATIONS WITHOUT IMPROVEMENT
		// IF ERROR IS ZERO THEN THIS IS THE PERFECT CLASSIFIER
		if( nbr_generation_no_improvement >= m_max_generation ){
			break;
		}

		// SELECT BEST RANKING : A PERCENTAGE, A FIXED NUMBER, A SCORE ?

		unsigned winner_to_keep = m_population.size() * m_winner_to_keep / 100;
		unsigned looser_to_keep = (m_population.size() - winner_to_keep) * m_looser_to_keep / 100;
		unsigned to_keep = winner_to_keep + looser_to_keep;

		// DO MUTATE
		for(int index = 1; index < winner_to_keep; index++)
		{
			for(int m=0; m < m_nb_mutation; m++)
			{
				WeakClassifier *mut= NULL;
				
				//mut = m_population[ index ]->Mutate();

				mut = myInterface->Mutate( *(m_population[index]) );

				if( mut != NULL)
				{
					// Test The Mutate Result
					double err = 0.0;
					//std::cout << "[in]" <<std::endl;
					TestWeakClassifier(mut, m_LearningSet);
					//std::cout << "[out]" <<std::endl;

					err = mut->GetError();

					// If The error is less than the actual one
					if( err < m_population[ index ]->GetError() )
					{
						// then replace the curent Weak Classifier with the Mutate Result
						WeakClassifier *tmp = m_population[ index ];
						m_population[ index ] = mut;
						mut = tmp;
					}

					delete mut;
				}
			}
		}

		// SHUFFLE LOOSERS
		std::random_shuffle(m_population.begin() + winner_to_keep, m_population.end());

		for( it = (m_population.begin()+ winner_to_keep); it != (m_population.begin()+ to_keep) ;it++)
		{
			WeakClassifier *wc = (*it);
			WeakClassifier *randWC= NULL;

			// Randomize the Weak Classifier
			//randWC = wc->Randomize();
			randWC = myInterface->Randomize( *wc );
			if( randWC != NULL)
			{
				// then replace the curent Weak Classifier with the Mutate Result
				WeakClassifier *tmp = *it;
				*it = randWC;
				randWC = tmp;
				delete randWC;
			}

		}

		for( it = (m_population.begin()+ to_keep); it != m_population.end() ;it++)
		{
			WeakClassifier *wc = (*it);
			WeakClassifier *randWC= NULL;

			// Randomize the Weak Classifier
			randWC = m_RandomGenerator->GetNewRandomWeakClassifier();

			if( randWC != NULL)
			{
				// then replace the curent Weak Classifier with the Mutate Result
				WeakClassifier *tmp = *it;
				*it = randWC;
				randWC = tmp;
				delete randWC;
			}

		}

		// INC GENERATION
		generation++;
	}

	m_StringLog = oStrLog.str();
}

void GeneticWeakLearner::InitializePopulation( void )
{
	// Clean Population
	for(int i=0; i < m_population.size(); i++)
	{
		delete m_population[i];
		m_population[i] = NULL;
	}
	m_population.clear();

	m_RandomGenerator->Init();

	// RANDOM GENERATION OF WEAK CLASSIFIERS
	for(int i=0; i < m_nb_indiv; i++)
	{
		m_population.push_back( m_RandomGenerator->GetNewRandomWeakClassifier() );
	}
}

void
GeneticWeakLearner::Reset(void)
{
	assert( m_LearningSet != NULL);
	assert( m_RandomGenerator != NULL);
	assert( m_interface != NULL);

	if( m_bestwc.first != NULL)
		delete m_bestwc.first;

	m_bestwc.first = NULL;
	m_bestwc.second=  1.0;

	m_StringLog.clear();

	InitializePopulation();
}

IClassifier *
GeneticWeakLearner::GetResult(void)
{
	return m_bestwc.first;
}

double
GeneticWeakLearner::GetResultError(void) const
{
	return m_bestwc.second;
}

ILearningSet *
GeneticWeakLearner::GetLearningSet(void)
{
	return m_LearningSet;
}

void
GeneticWeakLearner::SetLearningSet(ILearningSet *learningSet)
{
	assert( learningSet != NULL );
	m_LearningSet = learningSet;
}

void
GeneticWeakLearner::SetRandomWeakClassifierGenerator(IRandomWeakClassifierGenerator *randomGen)
{
	m_RandomGenerator = randomGen;
}

IRandomWeakClassifierGenerator *
GeneticWeakLearner::GetRandomWeakClassifierGenerator(void)
{
	return m_RandomGenerator;
}

const WeakLearnerInterface *
GeneticWeakLearner::GetWeakLearnerInterface(void)
{
	return m_interface;
}

void 
GeneticWeakLearner::SetWeakLearnerInterface(const WeakLearnerInterface *wli)
{
	m_interface = wli;
}

const std::string &
GeneticWeakLearner::GetWeakLearnerLog() const
{
	return m_StringLog;
}

const std::string &
GeneticWeakLearner::GetLearnerLog() const
{
	return m_StringLog;
}

void 
GeneticWeakLearner::SetOptions(const modules::options::ModuleOptions &options)
{
	const modules::options::GeneticWeakLearnerOptions &opts = static_cast<const GeneticWeakLearnerOptions &>(options);

	// get attributes
	int nb_indiv		=  opts.GetNbrIndiv();
	int winner_to_keep  =  opts.GetWinnerToKeep();
	int looser_to_keep  =  opts.GetLooserToKeep();
	int max_generation  =  opts.GetMaxGeneration();
	int nb_mutation	    =  opts.GetNbrMutation();

	// set the attributes
	m_nb_indiv		  =  GA_DEFAULT_NBR_INDIV      ;
	m_winner_to_keep  =  GA_DEFAULT_WINNER_TO_KEEP ;
	m_looser_to_keep  =  GA_DEFAULT_LOOSER_TO_KEEP ;
	m_max_generation  =  GA_DEFAULT_MAX_GENERATION ;
	m_nb_mutation	  =  GA_DEFAULT_NBR_MUTATION   ;

	m_population.reserve( m_nb_indiv ) ;

	m_StringLog.clear();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线看国产| 5月丁香婷婷综合| 日本高清成人免费播放| 欧美一级高清大全免费观看| 日本一区二区三区在线不卡 | 欧美疯狂性受xxxxx喷水图片| 亚洲精品一区二区三区99| 一区二区三区小说| 成人激情av网| 久久久久国产成人精品亚洲午夜| 亚洲一区二区三区中文字幕在线| 国产在线一区二区综合免费视频| 欧美日韩精品一区二区三区| 中文字幕+乱码+中文字幕一区| 视频精品一区二区| 欧美伊人久久久久久久久影院 | 精品国产乱码久久久久久1区2区| 亚洲精品乱码久久久久| 国产精品中文字幕日韩精品| 在线电影欧美成精品| 亚洲综合免费观看高清完整版| 懂色av一区二区夜夜嗨| 久久久久国产精品人| 麻豆高清免费国产一区| 欧美伦理影视网| 亚洲一二三四在线| 欧美在线视频全部完| 亚洲黄色小视频| 在线免费av一区| 一区二区三区 在线观看视频| 色综合天天综合网天天狠天天| 中文无字幕一区二区三区| 国产乱码精品一区二区三区忘忧草 | 日韩国产精品大片| 欧美久久久久久久久中文字幕| 一区二区三区在线不卡| 欧美日韩一区二区不卡| 亚洲成av人片一区二区三区| 欧美日韩国产综合一区二区三区 | 国产一区二区三区久久久| 精品理论电影在线观看| 韩国欧美国产一区| 国产欧美日韩精品一区| 菠萝蜜视频在线观看一区| 综合色天天鬼久久鬼色| 日本道色综合久久| 亚洲成人7777| 欧美草草影院在线视频| 国产精品一区二区黑丝| 国产精品国产三级国产aⅴ中文 | 国产精品人妖ts系列视频| yourporn久久国产精品| 悠悠色在线精品| 91麻豆精品国产91久久久久久| 久久精品理论片| 欧美高清在线视频| 日本韩国一区二区三区视频| 日本不卡不码高清免费观看 | 欧美精品电影在线播放| 久久精品av麻豆的观看方式| 久久久精品日韩欧美| 色综合久久精品| 蜜桃精品视频在线观看| 亚洲欧洲日韩在线| 日韩一区二区三区电影在线观看 | 亚洲人成网站在线| 欧美一区二区三区免费大片| 国产精品18久久久久久久网站| 国产精品麻豆欧美日韩ww| 欧美主播一区二区三区| 国产一区二区看久久| 亚洲一区二区视频| 国产日韩欧美精品综合| 欧美日韩黄色影视| 懂色av一区二区在线播放| 日韩和欧美一区二区| 中文字幕乱码一区二区免费| 欧美日韩国产一区二区三区地区| 国产成人日日夜夜| 秋霞影院一区二区| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩高清在线播放| 99久精品国产| 国产成人免费高清| 美女视频网站黄色亚洲| 一区二区在线观看av| 国产欧美日韩精品在线| 日韩写真欧美这视频| 欧美午夜宅男影院| 成人激情小说乱人伦| 久久99精品网久久| 亚洲成人动漫在线免费观看| 日韩美女精品在线| 欧美激情在线免费观看| wwwwxxxxx欧美| 日韩一区二区电影在线| 欧美日韩色综合| 日本精品一区二区三区四区的功能| 国产丶欧美丶日本不卡视频| 卡一卡二国产精品 | 一区二区三区不卡在线观看| 久久精品免视看| 久久综合色天天久久综合图片| 欧美日韩亚洲另类| 在线精品视频免费播放| 97se狠狠狠综合亚洲狠狠| 成人一区二区三区视频在线观看| 精品亚洲成a人在线观看| 午夜精品福利久久久| 一区二区三区欧美| 亚洲香蕉伊在人在线观| 亚洲综合小说图片| 亚洲一区二区三区爽爽爽爽爽 | 久久成人免费网| 久久精品国产色蜜蜜麻豆| 日本不卡中文字幕| 天天av天天翘天天综合网| 午夜视频在线观看一区二区三区| 亚洲综合在线第一页| 五月激情综合婷婷| 日韩电影免费一区| 日本麻豆一区二区三区视频| 免费在线观看一区二区三区| 久久精品二区亚洲w码| 国内精品免费**视频| 国产高清一区日本| 91在线观看视频| 欧美日韩久久久| 精品乱人伦小说| 国产精品美女久久久久高潮| 国产精品萝li| 亚洲v日本v欧美v久久精品| 午夜精品久久久| 国产福利精品一区二区| 99国产精品视频免费观看| 在线国产电影不卡| 欧美一区二区三区免费在线看| 精品成人一区二区| 国产精品国产自产拍高清av| 亚洲精品第1页| 蜜桃久久久久久久| www.亚洲在线| 欧美日韩精品三区| 国产日产欧美一区| 亚洲精品乱码久久久久久黑人| 日韩在线一二三区| 福利一区福利二区| 欧美日韩一级大片网址| 久久久噜噜噜久噜久久综合| 亚洲色图欧美偷拍| 狠狠色狠狠色综合日日91app| av激情成人网| 欧美va亚洲va在线观看蝴蝶网| 国产精品女主播av| 日韩va亚洲va欧美va久久| 国产盗摄精品一区二区三区在线| 色狠狠综合天天综合综合| 日韩午夜激情免费电影| 亚洲色图视频网| 国产美女视频91| 宅男在线国产精品| 亚洲人123区| 国产激情一区二区三区| 这里是久久伊人| 亚洲欧美视频在线观看视频| 毛片基地黄久久久久久天堂| 99国产一区二区三精品乱码| 久久综合一区二区| 香蕉av福利精品导航| 波多野结衣欧美| 精品国产亚洲在线| 午夜精品国产更新| 色呦呦国产精品| 亚洲国产成人自拍| 国内外成人在线视频| 日韩一区二区三区高清免费看看| 亚洲欧美国产三级| 91在线你懂得| 国产精品白丝在线| 福利一区二区在线观看| 久久影音资源网| 久久99国产精品麻豆| 欧美一区二区三区免费大片| 香蕉加勒比综合久久| 欧美性猛交xxxxxx富婆| 亚洲女同女同女同女同女同69| 国产99久久久国产精品| 久久久久久久综合色一本| 久久69国产一区二区蜜臀| 欧美日本韩国一区| 三级影片在线观看欧美日韩一区二区 | 亚洲色图19p| eeuss国产一区二区三区| 久久久综合精品| 国产精品一区二区不卡| 精品国产一区二区三区久久影院 | 欧美一区二区三区的| 日本sm残虐另类| 日韩一卡二卡三卡四卡| 久久精品国产99久久6|