private int Compare(DataWeightedKNearestNeighborsModel data1, DataWeightedKNearestNeighborsModel data2) { int compare = data1.Distance.CompareTo(data2.Distance); // CompareTo() method return(compare); }
public string run(List <Data> listInputData, Data predictData, int K) { double maxTemperature, minTemperature; if (findMaxTemperature(listInputData, out maxTemperature) && fineMinTemperature(listInputData, out minTemperature)) { List <DataWeightedKNearestNeighborsModel> listData = new List <DataWeightedKNearestNeighborsModel>(); foreach (Data inputdata in listInputData) { DataWeightedKNearestNeighborsModel weightKNNData = new DataWeightedKNearestNeighborsModel(); weightKNNData.Eat = inputdata.Eat; weightKNNData.Sick = inputdata.Sick; weightKNNData.Temperature = inputdata.Temperature; weightKNNData.Normalized = NormalizeAttributes(maxTemperature, minTemperature, inputdata.Temperature); double predicNomorized = NormalizeAttributes(maxTemperature, minTemperature, predictData.Temperature); weightKNNData.Distance = EuclideanDistance(weightKNNData.Eat, weightKNNData.Normalized, predictData.Eat, predicNomorized); listData.Add(weightKNNData); } List <DataWeightedKNearestNeighborsModel> listWeightKNNData = getKElement(K, listData); calWeight(listWeightKNNData); double[] predicArr; if (predicData(listWeightKNNData, out predicArr)) { if (predicArr[(int)GroupIndex.Y] > predicArr[(int)GroupIndex.N]) { return("Y"); } else { return("N"); } } } return("cannot run"); }