Beispiel #1
0
int main ()  
{ 

	// Make a new OnlineSVR
	OnlineSVR* SVR = new OnlineSVR();

	// Set parameters
	SVR->SetC(1);
	SVR->SetEpsilon(0.01);
	SVR->SetKernelType(OnlineSVR::KERNEL_RBF);
	SVR->SetKernelParam(30);
	SVR->SetVerbosity(OnlineSVR::VERBOSITY_NORMAL);	

	// Build training set
	Matrix<double>* TrainingSetX = Matrix<double>::RandMatrix(20,1);
	Vector<double>* TrainingSetY = new Vector<double>();
	for (int i=0; i<TrainingSetX->GetLengthRows(); i++)
		TrainingSetY->Add(sin(TrainingSetX->GetValue(i,0)));
	
	// Train OnlineSVR
	SVR->Train(TrainingSetX,TrainingSetY);

	// Show OnlineSVR info
	SVR->ShowInfo();

	// Predict some new values
	Matrix<double>* TestSetX = new Matrix<double>();
	Vector<double>* X1 = new Vector<double>();
	Vector<double>* X2 = new Vector<double>();
	X1->Add(0);
	X2->Add(1);
	TestSetX->AddRowRef(X1);
	TestSetX->AddRowRef(X2);
	Vector<double>* PredictedY = SVR->Predict(TestSetX);
	cout << "f(0) = " << PredictedY->GetValue(0) << endl;
	cout << "f(1) = " << PredictedY->GetValue(1) << endl;	

	// Forget some samples
	Vector<int>* RemainingSamples = SVR->GetRemainingSetIndexes()->Clone();
	SVR->Forget(RemainingSamples);

	// Save OnlineSVR
	SVR->SaveOnlineSVR("Sin.svr");

	// Delete	
	delete SVR;
	delete TrainingSetX;
	delete TrainingSetY;	
	delete TestSetX;
	delete PredictedY;
	delete RemainingSamples;	
	
	return 0;
}