public DTWExperiment(bool includeTime, string setName, bool crossValidate, int nTrainingOrSubsets, double pointDistance = 0) { this.includeTime = includeTime; this.dataSourceName = setName; this.nTrainingOrSubsets = nTrainingOrSubsets; this.crossValidate = crossValidate; this.pointDistance = pointDistance; ISubsetCreator subsetCreator = crossValidate ? new CrossvalidationSubsetCreator(nTrainingOrSubsets) : (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets); var traceProcessor = (pointDistance > 0) ? new DynamicAreaPointSampling(pointDistance) : null; GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName); if (traceProcessor != null) { allGestures = traceProcessor.processAllGestures(allGestures); } subsetCreator.createSubsets(allGestures); trainingSubSets = subsetCreator.getTrainingSubsets(); testSubSets = subsetCreator.getTestSubsets(); }
public void execute() { var dtwRec = new DTWRecognitionSystem(includeTime); ISubsetCreator subsetCreator = crossValidate ? new CrossvalidationSubsetCreator(nTrainingOrSubsets) : (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets); var tracePreprocessor = (pointDistance > 0) ? new DynamicAreaPointSampling(pointDistance) : null; var recognitionExperiment = new RecognitionExperiment(dtwRec, subsetCreator, tracePreprocessor, dataSourceName); var results = recognitionExperiment.execute(); var txtTime = (includeTime) ? "withTime" : "withoutTime"; string fileName = $"GestureRecognition_DTW{txtTime}_{dataSourceName}_5trains.csv"; GestureRecognitionResults.saveResultsToFile("..\\..\\ExperimentResults\\" + fileName, results); }
public DollarExperiment(string setName, bool crossValidate, int nTrainingOrSubsets) { this.dataSourceName = setName; this.nTrainingOrSubsets = nTrainingOrSubsets; this.crossValidate = crossValidate; ISubsetCreator subsetCreator = crossValidate ? new CrossvalidationSubsetCreator(nTrainingOrSubsets) : (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets); GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName); subsetCreator.createSubsets(allGestures); trainingSubSets = subsetCreator.getTrainingSubsets(); testSubSets = subsetCreator.getTestSubsets(); }
public RecognitionExperiment(IRecognitionSystem recognizer, ISubsetCreator subsetCreator, ITraceDataProcessor traceProcessor, string setName) { gestureSetName = setName; this.recognizer = recognizer; this.subsetCreator = subsetCreator; this.traceProcessor = traceProcessor; GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName); if (traceProcessor != null) { allGestures = traceProcessor.processAllGestures(allGestures); } subsetCreator.createSubsets(allGestures); trainingSubSets = subsetCreator.getTrainingSubsets(); testSubSets = subsetCreator.getTestSubsets(); }
public void execute() { var results = new LinkedList <GestureRecognitionResults.CrossValidationResult>(); foreach (var config in configs) { var chnmmRec = new CHnMMRecognitionSystem(config); ISubsetCreator subsetCreator = crossValidate ? new CrossvalidationSubsetCreator(nTrainingOrSubsets) : (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets); var recognitionExperiment = new RecognitionExperiment(chnmmRec, subsetCreator, null, dataSourceName); results.AddLast(new GestureRecognitionResults.CrossValidationResult(config, recognitionExperiment.execute().ToArray(), -1)); } var txt = (crossValidate) ? $"{nTrainingOrSubsets}subsets" : $"{nTrainingOrSubsets}trainingtraces"; string fileName = $"GestureRecognition_CHnMM_{dataSourceName}_{txt}.csv"; GestureRecognitionResults.saveResultsToFile("..\\..\\ExperimentResults\\" + fileName, results.ToArray()); }
public CHnMMRecognitionExperiment(string setName, bool crossValidate, int nTrainingOrSubsets, IEnumerable <Configuration> configs, ITraceDataProcessor traceProcessor = null) { this.dataSourceName = setName; this.nTrainingOrSubsets = nTrainingOrSubsets; this.crossValidate = crossValidate; this.configs = configs; ISubsetCreator subsetCreator = crossValidate ? new CrossvalidationSubsetCreator(nTrainingOrSubsets) : (ISubsetCreator) new SimpleSplitSubsetCreator(nTrainingOrSubsets); GestureDataSet allGestures = DataSets.getTrajectoryDataSet(setName); if (traceProcessor != null) { allGestures = traceProcessor.processAllGestures(allGestures); } subsetCreator.createSubsets(allGestures); trainingSubSets = subsetCreator.getTrainingSubsets(); testSubSets = subsetCreator.getTestSubsets(); }