示例#1
0
        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));
                    }
                }
            }
        }
示例#2
0
        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;
            }
        }