private void IterateThroughTypes(List <double> windowWidths, int neighborsCount) { foreach (WindowType windowType in Enum.GetValues(typeof(WindowType))) { foreach (DistanceFunctionType distanceFunctionType in Enum.GetValues(typeof(DistanceFunctionType))) { foreach (KernelFunctionType kernelFunctionType in Enum.GetValues(typeof(KernelFunctionType))) { var parameters = new Parameters( Entities, DistancesForEachType[Convert.ToInt32(distanceFunctionType)], distanceFunctionType, windowType, kernelFunctionType, windowWidths[Convert.ToInt32(distanceFunctionType)], neighborsCount); var naiveFMeasure = LeaveOneOutService.CalculateFMeasureNaive(parameters); NaiveFMeasures.Add(new FMeasureFromEnums(parameters, naiveFMeasure)); var oneHotFMeasure = LeaveOneOutService.CalculateFMeasureOneHot(parameters); OneHotFMeasures.Add(new FMeasureFromEnums(parameters, oneHotFMeasure)); } } } }
private void FindDependencies() { var minWidth = 0d; var maxWidth = 0d; var step = 0d; switch (NaiveBestFMeasure.Parameters.DistanceFunctionType) { case DistanceFunctionType.Manhattan: minWidth = 15; maxWidth = 100; step = 1; break; case DistanceFunctionType.Euclidean: minWidth = 3; maxWidth = 20; step = 0.25; break; case DistanceFunctionType.Chebyshev: minWidth = 0.2; maxWidth = 6; step = 0.1; break; default: break; } switch (NaiveBestFMeasure.Parameters.WindowType) { case WindowType.Fixed: NaiveFMeasureDependency = LeaveOneOutService.FindFMeasureFromWindowWidth( NaiveBestFMeasure.Parameters, minWidth, maxWidth, step, ReductionType.Naive); break; case WindowType.Variable: NaiveFMeasureDependency = LeaveOneOutService.FindFMeasureFromNeighborsCount( NaiveBestFMeasure.Parameters, 1, Entities.Count - 2, 1, ReductionType.Naive); break; default: break; } switch (OneHotBestFMeasure.Parameters.DistanceFunctionType) { case DistanceFunctionType.Manhattan: minWidth = 15; maxWidth = 100; step = 1; break; case DistanceFunctionType.Euclidean: minWidth = 3; maxWidth = 20; step = 0.25; break; case DistanceFunctionType.Chebyshev: minWidth = 0.2; maxWidth = 6; step = 0.1; break; default: break; } switch (OneHotBestFMeasure.Parameters.WindowType) { case WindowType.Fixed: OneHotFMeasureDependency = LeaveOneOutService.FindFMeasureFromWindowWidth( OneHotBestFMeasure.Parameters, minWidth, maxWidth, step, ReductionType.OneHot); break; case WindowType.Variable: OneHotFMeasureDependency = LeaveOneOutService.FindFMeasureFromNeighborsCount( OneHotBestFMeasure.Parameters, 1, Entities.Count - 2, 1, ReductionType.OneHot); break; default: break; } }