public static double Regressor(DataRow dataRow, DataSet trainData, int k) { int rowCount = trainData.DataRows.Count; IndexAndDistance[] info = new IndexAndDistance[rowCount]; for (int i = 0; i < rowCount; i++) { IndexAndDistance curr = new IndexAndDistance(); double dist = Distance(dataRow, trainData.DataRows[i].AllValues.ToArray()); curr.idx = i; curr.dist = dist; info[i] = curr; } Array.Sort(info); //sortera distans return(Regress(info, dataRow, trainData, k)); }
public static double WeightedRegressedClassify(DataRow dataRow, DataSet trainData, int k) { int rowCount = trainData.DataRows.Count; IndexAndDistance[] info = new IndexAndDistance[rowCount]; for (int i = 0; i < rowCount; i++) { IndexAndDistance curr = new IndexAndDistance(); double dist = Distance(dataRow, trainData.DataRows[i].AllValues.ToArray()); curr.idx = i; curr.dist = dist; info[i] = curr; } Array.Sort(info); //sortera distans double[] weights = MakeWeights(k, info); return(WeightedRegressedVote(info, dataRow, trainData, weights, k)); }