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

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

?? variations.cpp

?? 在線支持向量機C++程序,程序中包含了應用的例子
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				(*MinIndex) = 0;
				 break;
			case 3:
				(*MinIndex) = MinLsIndex;
				break;
			case 4:
				(*MinIndex) = MinLeIndex;
				break;
			case 5:
				(*MinIndex) = MinLrIndex;
				break;
		}

		// Clear
		delete Ls;
		delete Le;
		delete Lr;
		delete Variations;


		// PROVE
		static int Counts = 0;		
		if (*MinVariation == 0)
			Counts++;
		else
			Counts=0;
		if (Counts>=50){
			cout << "ERROR! Cycle found! (TRAINING)" << endl;
			this->SetVerbosity(OnlineSVR::VERBOSITY_DEBUG);
			system("pause");
		}
	}

	void OnlineSVR::FindUnlearningMinVariation (Vector<double>* H, Vector<double>* Beta, Vector<double>* Gamma, int SampleIndex, double* MinVariation, int* MinIndex, int* Flag)
	{

		// Find Samples Variations
		int Direction = SIGN(-this->Weights->Values[SampleIndex]);
		double Lc = this->FindVariationLc (SampleIndex);
		Vector<double>* Ls = this->FindVariationLs (H, Beta, Direction);
		Vector<double>* Le = this->FindVariationLe (H, Gamma, Direction);
		Vector<double>* Lr = this->FindVariationLr (H, Gamma, Direction);
		if (this->Verbosity>2) {
			this->ShowVariations(H, Beta, Gamma, SampleIndex, Lc, 0, Ls, Le, Lr, this->OPERATION_UNLEARNING);			
		}

		// Find Min Variation
		double MinLsValue, MinLeValue, MinLrValue;
		int MinLsIndex, MinLeIndex, MinLrIndex;
		if (this->GetSupportSetElementsNumber()>0)
			Ls->MinAbs (&MinLsValue, &MinLsIndex);
		else
			MinLsValue = Direction * INF;
		if (this->GetErrorSetElementsNumber()>0)
			Le->MinAbs (&MinLeValue, &MinLeIndex);
		else
			MinLeValue = Direction * INF;
		if (this->GetRemainingSetElementsNumber()>0)
			Lr->MinAbs (&MinLrValue, &MinLrIndex);
		else
			MinLrValue = Direction * INF;
		Vector<double>* Variations = new Vector<double>(5);
		Variations->Add(Lc);
		Variations->Add(Direction*INF);
		Variations->Add(MinLsValue);
		Variations->Add(MinLeValue);
		Variations->Add(MinLrValue);
		Variations->MinAbs(MinVariation, Flag);

		// Find Sample Index Variation
		(*MinVariation) *= Direction;
		(*Flag) ++;
		switch (*Flag) {
			case 1:
			case 2:
				(*MinIndex) = 0;
				 break;
			case 3:
				(*MinIndex) = MinLsIndex;
				break;
			case 4:
				(*MinIndex) = MinLeIndex;
				break;
			case 5:
				(*MinIndex) = MinLrIndex;
				break;
		}

		// Clear
		delete Ls;
		delete Le;
		delete Lr;
		delete Variations;

				// PROVE
		static int Counts = 0;		
		if (*MinVariation == 0)
			Counts++;
		else
			Counts=0;
		if (Counts>=10){
			//cout << "ERROR! Cycle found! (FORGET)" << endl;
			//system("pause");
		}

		if (*MinVariation == 0) {
			//cout << "ATTENTION" << endl;
			//system("pause");
		}

	}

		
	// Matrix R Operations
	void OnlineSVR::UpdateWeightsAndBias (Vector<double>** H, Vector<double>* Beta, Vector<double>* Gamma, int SampleIndex, double MinVariation)
	{

		// Update Weights and Bias
		if (this->GetSupportSetElementsNumber()>0) {

			// Update Weights New Sample
			this->Weights->Values[SampleIndex] += MinVariation;

			// Update Bias
			Vector<double>* DeltaWeights = Beta->Clone();
			DeltaWeights->ProductScalar(MinVariation);
			this->Bias += DeltaWeights->Values[0];
			
			// Update Weights Support Set
			int i;
			for (i=0; i<this->GetSupportSetElementsNumber(); i++) {
				this->Weights->Values[this->SupportSetIndexes->Values[i]] += DeltaWeights->Values[i+1];
			}
			delete DeltaWeights;
			
			// Update H
			Vector<double>* DeltaH = Gamma->Clone();
			DeltaH->ProductScalar(MinVariation);
 			for (i=0; i<this->GetSamplesTrainedNumber(); i++) {
				//if (this->SupportSetIndexes->Contains(i))
				//	cout << "S(" << i << ") before=" << (*H)->Values[i] << "   variation=" << DeltaH->Values[i] << "   Gamma = " << Gamma->Values[i] << endl;
				(*H)->Values[i] += DeltaH->Values[i];
			}
			delete DeltaH;
		}
		else {
			
			// Update Bias
			this->Bias += MinVariation;
			
			// Update H
			(*H)->SumScalar(MinVariation);
		}
	}

	void OnlineSVR::AddSampleToRemainingSet (int SampleIndex)
	{
		this->ShowMessage("> Case 0 : the sample has been classified correctly",2);
		this->RemainingSetIndexes->Add(SampleIndex);  
	}

		
	// Set Operations
	void OnlineSVR::AddSampleToSupportSet (Vector<double>** H, Vector<double>* Beta, Vector<double>* Gamma, int SampleIndex, double MinVariation)
	{
		// Message
		char Line[100];	
		sprintf(Line, "> Case 1 : sample %d is a support sample", SampleIndex);	
		for (int i=strlen(Line); i<62; i++)		
			Line[i] = ' ';
		Line[62] = 0;
		sprintf(Line, "%s(Var= %f)", Line, MinVariation);
		this->ShowMessage(Line,2);
		// Update H and Sets
		(*H)->Values[SampleIndex] = SIGN((*H)->Values[SampleIndex]) * this->Epsilon;
		this->SupportSetIndexes->Add (SampleIndex);
		this->AddSampleToR (SampleIndex, this->SUPPORT_SET, Beta, Gamma);
	}

	void OnlineSVR::AddSampleToErrorSet (int SampleIndex, double MinVariation)
	{
		// Message
		char Line[100];
		sprintf(Line, "> Case 2 : sample %d is an error sample", SampleIndex);
		for (int i=strlen(Line); i<62; i++)		
			Line[i] = ' ';
		Line[62] = 0;
		sprintf(Line, "%s(Var= %f)", Line, MinVariation);
		this->ShowMessage(Line,2);
		// Update H and Sets
		this->Weights->Values[SampleIndex] = SIGN(this->Weights->Values[SampleIndex]) * this->C;
		this->ErrorSetIndexes->Add(SampleIndex);
	}

	void OnlineSVR::MoveSampleFromSupportSetToErrorRemainingSet (int MinIndex, double MinVariation)
	{
		int Index = this->SupportSetIndexes->Values[MinIndex];
		double Weightsi = this->Weights->Values[Index];

		if (ABS(Weightsi)<ABS(this->C-ABS(Weightsi))) {
			this->Weights->Values[Index] = 0;
		}
		else {
			this->Weights->Values[Index] = SIGN(Weightsi) * this->C;
		}

		if (this->Weights->Values[Index] == 0) {
        
			// CASE 3a: Move Sample from SupportSet to RemainingSet                   	
			// Message
			char Line[100];
			sprintf(Line, "> Case 3a: move sample %d from support to remaining set", Index);
			for (int i=strlen(Line); i<62; i++)		
				Line[i] = ' ';
			Line[62] = 0;
			sprintf(Line, "%s(Var= %f)", Line, MinVariation);
			this->ShowMessage(Line,2);
			// Update H and Sets
			this->RemainingSetIndexes->Add(Index);
			this->SupportSetIndexes->RemoveAt(MinIndex);
			this->RemoveSampleFromR(MinIndex);
		}	
		else {
			// CASE 3b: Move Sample from SupportSet to ErrorSet            
			// Message
			char Line[100];
			sprintf(Line, "> Case 3b: move sample %d from support to error set", Index);
			for (int i=strlen(Line); i<62; i++)		
				Line[i] = ' ';
			Line[62] = 0;
			sprintf(Line, "%s(Var= %f)", Line, MinVariation);
			this->ShowMessage(Line,2);
			// Update H and Sets
			this->ErrorSetIndexes->Add(Index);
			this->SupportSetIndexes->RemoveAt(MinIndex);
			this->RemoveSampleFromR(MinIndex);
		}
	}

	void OnlineSVR::MoveSampleFromErrorSetToSupportSet (Vector<double>** H, Vector<double>* Beta, Vector<double>* Gamma, int MinIndex, double MinVariation)
	{
		int Index = this->ErrorSetIndexes->Values[MinIndex];
		// Message
		char Line[100];
		sprintf(Line, "> Case 4 : move sample %d from error to support set", Index);
		for (int i=strlen(Line); i<62; i++)		
			Line[i] = ' ';
		Line[62] = 0;
		sprintf(Line, "%s(Var= %f)", Line, MinVariation);
		this->ShowMessage(Line,2);
		// Update H and Sets	
		(*H)->Values[Index] = SIGN((*H)->Values[Index]) * this->Epsilon;
		this->SupportSetIndexes->Add(Index);
		this->ErrorSetIndexes->RemoveAt(MinIndex);
		this->AddSampleToR (Index, this->ERROR_SET, Beta, Gamma);
	}

	void OnlineSVR::MoveSampleFromRemainingSetToSupportSet (Vector<double>** H, Vector<double>* Beta, Vector<double>* Gamma, int MinIndex, double MinVariation)
	{
		int Index = this->RemainingSetIndexes->Values[MinIndex];
		// Message
		char Line[100];
		sprintf(Line, "> Case 5 : move sample %d from remaining to support set", Index);
		for (int i=strlen(Line); i<62; i++)		
			Line[i] = ' ';
		Line[62] = 0;
		sprintf(Line, "%s(Var= %f)", Line, MinVariation);
		this->ShowMessage(Line,2);
		// Update H and Sets	
		(*H)->Values[Index] = SIGN((*H)->Values[Index]) * this->Epsilon;
		this->SupportSetIndexes->Add(Index);
		this->RemainingSetIndexes->RemoveAt(MinIndex);
		this->AddSampleToR (Index, this->REMAINING_SET, Beta, Gamma);
	}

	void OnlineSVR::RemoveSampleFromSupportSet (int SampleSetIndex)
	{
		this->SupportSetIndexes->RemoveAt(SampleSetIndex);
		this->RemoveSampleFromR(SampleSetIndex);
	}

	void OnlineSVR::RemoveSampleFromErrorSet (int SampleSetIndex)
	{
		this->ErrorSetIndexes->RemoveAt(SampleSetIndex);
	}

	void OnlineSVR::RemoveSampleFromRemainingSet (int SampleSetIndex)
	{
		int SampleIndex = this->RemainingSetIndexes->Values[SampleSetIndex];
		this->ShowMessage("> Case 0 : the sample was removed from the remaining set",2);
		this->RemainingSetIndexes->RemoveAt(SampleSetIndex);
		this->X->RemoveRow(SampleIndex);
		this->Y->RemoveAt(SampleIndex);
		this->Weights->RemoveAt(SampleIndex);
		if (this->SaveKernelMatrix) {
			this->RemoveSampleFromKernelMatrix(SampleIndex);
		}
		int i;
		for (i=0; i<this->GetSupportSetElementsNumber(); i++) {
			if (this->SupportSetIndexes->Values[i]>SampleIndex) {
				this->SupportSetIndexes->Values[i] --;
			}
		}
		for (i=0; i<this->GetErrorSetElementsNumber(); i++) {
			if (this->ErrorSetIndexes->Values[i]>SampleIndex) {
				this->ErrorSetIndexes->Values[i] --;
			}
		}
		for (i=0; i<this->GetRemainingSetElementsNumber(); i++) {
			if (this->RemainingSetIndexes->Values[i]>SampleIndex) {
				this->RemainingSetIndexes->Values[i] --;
			}
		}
		this->SamplesTrainedNumber --;
		if (this->SamplesTrainedNumber==0) {
			this->Bias = 0;
		}
	}

	void OnlineSVR::RemoveSample (int SampleIndex)
	{
		this->ShowMessage("> Case 1 : the sample Weights becomes 0",2);	
		this->X->RemoveRow(SampleIndex);
		this->Y->RemoveAt(SampleIndex);
		this->Weights->RemoveAt(SampleIndex);
		if (this->SaveKernelMatrix) {
			this->RemoveSampleFromKernelMatrix(SampleIndex);
		}

		int i;
		for (i=0; i<this->GetSupportSetElementsNumber(); i++) {
			if (this->SupportSetIndexes->Values[i]>SampleIndex) {
				this->SupportSetIndexes->Values[i] --;
			}
		}
		for (i=0; i<this->GetErrorSetElementsNumber(); i++) {
			if (this->ErrorSetIndexes->Values[i]>SampleIndex) {
				this->ErrorSetIndexes->Values[i] --;
			}
		}
		for (i=0; i<this->GetRemainingSetElementsNumber(); i++) {
			if (this->RemainingSetIndexes->Values[i]>SampleIndex) {
				this->RemainingSetIndexes->Values[i] --;
			}
		}	

		this->SamplesTrainedNumber --;
		if (this->SamplesTrainedNumber==1 && this->GetErrorSetElementsNumber()>0) {
			this->ErrorSetIndexes->RemoveAt(0);
			this->RemainingSetIndexes->Add(0);
			this->Weights->Values[0] = 0;
			this->Bias = this->Margin(this->X->Values->Values[0],this->Y->Values[0]);
		}
		if (this->SamplesTrainedNumber==0) {
			this->Bias = 0;
		}
	}

}
	
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产首页| 一区二区三区四区精品在线视频| 99久久国产综合精品女不卡| 精品无人码麻豆乱码1区2区| 久久精品国内一区二区三区 | 99久久99久久综合| 丰满少妇在线播放bd日韩电影| 精东粉嫩av免费一区二区三区| 美女任你摸久久 | 国产精品午夜电影| 亚洲国产精品成人综合| 国产精品视频九色porn| 国产精品国产三级国产aⅴ入口| 国产精品网站在线观看| 国产精品麻豆网站| 亚洲国产精品精华液网站| 午夜久久久久久电影| 蜜臀av性久久久久蜜臀av麻豆 | 久久久不卡影院| 国产亚洲成年网址在线观看| 欧美国产日产图区| 亚洲欧美另类久久久精品| 亚洲精品高清在线| 日日夜夜免费精品视频| 激情成人综合网| 99视频热这里只有精品免费| 欧洲日韩一区二区三区| 日韩欧美成人一区| 亚洲欧洲三级电影| 蜜臀国产一区二区三区在线播放| 国产在线精品视频| 91麻豆成人久久精品二区三区| 在线观看精品一区| 欧美大片国产精品| 亚洲女子a中天字幕| 美国十次综合导航| av网站一区二区三区| 欧美在线不卡一区| 国产欧美日韩视频一区二区| 亚洲影视在线观看| 国产一区二区成人久久免费影院| 色综合久久中文综合久久97 | 国产欧美日韩不卡免费| 一区二区三区国产| 九色综合狠狠综合久久| 色中色一区二区| 欧美精品一区二区三区在线| 亚洲欧美成aⅴ人在线观看| 麻豆精品久久精品色综合| 91亚洲精品久久久蜜桃网站 | 亚洲丝袜美腿综合| 国产麻豆一精品一av一免费| 欧美色视频在线| 国产精品私人自拍| 国精产品一区一区三区mba桃花| 91视频你懂的| 日本一区二区成人| 国产一区二区电影| 日韩一区二区免费视频| 伊人一区二区三区| 成人sese在线| 日本一区二区三区国色天香| 久久精品国产精品亚洲综合| 欧美日韩国产免费一区二区| 中文字幕一区在线观看视频| 国产精品一区二区久激情瑜伽 | 久久中文娱乐网| 蜜桃精品视频在线| 日韩欧美高清dvd碟片| 视频一区视频二区在线观看| 欧美三级乱人伦电影| 18成人在线视频| 91免费观看视频在线| 国产精品素人一区二区| 国v精品久久久网| 国产午夜亚洲精品不卡| 国产馆精品极品| 久久久精品一品道一区| 国产黄色成人av| 国产欧美精品一区二区色综合朱莉| 狠狠色综合播放一区二区| 国产一区二区在线视频| 欧美一级高清片| 日本不卡一区二区三区高清视频| 欧美日韩的一区二区| 亚洲第一av色| 欧美一区二区视频在线观看2022 | 麻豆精品在线看| 欧美大黄免费观看| 国内精品国产三级国产a久久 | 中文一区一区三区高中清不卡| 国产精品白丝av| 国产精品国产三级国产普通话蜜臀| av资源站一区| 一区二区三区av电影| 91精品久久久久久久久99蜜臂| 午夜激情一区二区| 91精品国产综合久久久久久漫画| 亚洲三级小视频| 91啪九色porn原创视频在线观看| 亚洲九九爱视频| 欧美日韩免费一区二区三区视频| 免费久久99精品国产| 国产亚洲欧洲一区高清在线观看| www.欧美日韩国产在线| 亚洲免费观看高清完整版在线观看熊 | 国产精品免费av| 国产福利91精品一区| 久久精品一区二区三区不卡牛牛| 国产成人在线视频网址| 亚洲日本一区二区三区| 欧美精品久久99久久在免费线| 美女视频网站久久| 国产精品美女一区二区三区| 欧美日韩色一区| 成人美女视频在线观看| 亚洲国产精品久久久男人的天堂| 欧美www视频| 91成人看片片| 国产美女在线观看一区| 亚洲黄色小说网站| 久久久久久**毛片大全| 91福利视频在线| 国产高清久久久久| 蜜桃视频在线观看一区| 亚洲视频免费看| 久久美女高清视频| 欧美日韩国产电影| 91麻豆蜜桃一区二区三区| 韩国一区二区三区| 亚洲妇女屁股眼交7| 国产精品不卡在线| 久久这里只有精品首页| 717成人午夜免费福利电影| 色香蕉久久蜜桃| 成人精品视频一区二区三区 | 国产精品亚洲成人| 免费欧美高清视频| 日韩国产欧美在线视频| 一区二区三区国产| 一个色在线综合| 亚洲三级在线观看| 亚洲欧美综合色| 国产精品美女久久久久久久网站| 精品三级在线看| 欧美大尺度电影在线| 5858s免费视频成人| 在线观看免费一区| 在线观看视频一区| 一本大道久久a久久综合| www.欧美日韩国产在线| 成人爱爱电影网址| 91小视频免费看| 91日韩在线专区| 色国产综合视频| 在线观看视频一区二区 | 亚洲成人精品一区二区| 又紧又大又爽精品一区二区| 亚洲激情在线激情| 一区二区三区四区视频精品免费| 亚洲精品视频在线观看免费| 亚洲欧美日韩电影| 亚洲一区视频在线观看视频| 一区二区三区精品在线| 五月天亚洲婷婷| 另类小说色综合网站| 国产原创一区二区| av在线播放不卡| 欧美日韩视频在线观看一区二区三区 | 欧美日韩国产片| 日韩欧美高清一区| 欧美国产一区二区| 一区二区三区精品久久久| 午夜精品福利一区二区蜜股av| 日韩—二三区免费观看av| 裸体在线国模精品偷拍| 国产成a人亚洲精| 日本精品视频一区二区三区| 欧美久久婷婷综合色| 久久综合一区二区| 综合久久久久久久| 日本vs亚洲vs韩国一区三区二区| 国内外精品视频| 91麻豆精品秘密| 欧美一区二区三区在线视频 | 亚洲精品国产视频| 美女精品自拍一二三四| 成人18视频日本| 欧美福利视频导航| 国产精品久久久久永久免费观看| 亚洲欧美日韩国产综合在线| 蜜乳av一区二区三区| 99久久精品国产一区| 日韩美女主播在线视频一区二区三区| 久久久精品国产免大香伊| 亚洲在线免费播放| 一区二区三区视频在线观看| 在线观看91av| 久久久久高清精品| 亚洲一区二区美女|