// please before call this fuction set 2 properties and then call generate method public MyCategorizedTimeSeri <T> generate(int numberOfTests, int numberOfForecastTests) { MyTimeSeri <T> tmp = generate(); MyCategorizedTimeSeri <T> myCategorizedTimeSeri = new MyCategorizedTimeSeri <T>(); int rows = tmp.inputs.GetLength(0) - numberOfTests - numberOfForecastTests; myCategorizedTimeSeri.TimeSeri = TimeSeri; myCategorizedTimeSeri.TrainInputs = new T[rows, NumberOfInputVariables]; myCategorizedTimeSeri.TrainTargets = new T[rows]; myCategorizedTimeSeri.TestInputs = new T[numberOfTests, NumberOfInputVariables]; myCategorizedTimeSeri.TestTargets = new T[numberOfTests]; myCategorizedTimeSeri.ForecastTestInputs = new T[numberOfForecastTests, NumberOfInputVariables]; myCategorizedTimeSeri.ForecastTestTargets = new T[numberOfForecastTests]; int l = 0; for (; l < rows; l++) { for (int j = 0; j < NumberOfInputVariables; j++) { myCategorizedTimeSeri.TrainInputs[l, j] = tmp.inputs[l, j]; } myCategorizedTimeSeri.TrainTargets[l] = tmp.targets[l]; } for (int i = 0; i < numberOfTests; i++, l++) { for (int j = 0; j < NumberOfInputVariables; j++) { myCategorizedTimeSeri.TestInputs[i, j] = tmp.inputs[l, j]; } myCategorizedTimeSeri.TestTargets[i] = tmp.targets[l]; } for (int i = 0; i < numberOfForecastTests; i++, l++) { for (int j = 0; j < NumberOfInputVariables; j++) { myCategorizedTimeSeri.ForecastTestInputs[i, j] = tmp.inputs[l, j]; } myCategorizedTimeSeri.ForecastTestTargets[i] = tmp.targets[l]; } return(myCategorizedTimeSeri); }
public void StartSVM(float[] data) { timeSeriGenerator = new TimeSeriGenerator <float>(); MyTimeSeri <float> myTimeSeri = timeSeriGenerator.generateWithThisData(data, 6); Matrix <float> trainData = new Matrix <float>(myTimeSeri.inputs); Matrix <float> trainClasses = new Matrix <float>(myTimeSeri.targets); svmModel = new SVM(); SVMParams p = new SVMParams(); p.KernelType = Emgu.CV.ML.MlEnum.SVM_KERNEL_TYPE.POLY; p.SVMType = Emgu.CV.ML.MlEnum.SVM_TYPE.EPS_SVR; // for regression p.C = 1; p.TermCrit = new MCvTermCriteria(100, 0.00001); p.Gamma = 1; p.Degree = 1; p.P = 1; p.Nu = 0.1; bool trained = svmModel.TrainAuto(trainData, trainClasses, null, null, p.MCvSVMParams, 10); }