Пример #1
0
        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));
        }
Пример #2
0
        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));
        }