Example #1
0
        } // Main

        static int Classify(double[] unknown, double[][] trainData, int numClasses, int k)
        {
            // compute and store distances from unknown to all train data
            int n = trainData.Length;  // number data items

            IndexAndDistance[] info = new IndexAndDistance[n];
            for (int i = 0; i < n; ++i)
            {
                IndexAndDistance curr = new IndexAndDistance();
                double           dist = Distance(unknown, trainData[i]);
                curr.idx  = i;
                curr.dist = dist;
                info[i]   = curr;
            }

            Array.Sort(info);  // sort by distance
            Console.WriteLine("\nNearest  /  Distance  / Class");
            Console.WriteLine("==============================");
            for (int i = 0; i < k; ++i)
            {
                int    c    = (int)trainData[info[i].idx][2];
                string dist = info[i].dist.ToString("F3");
                Console.WriteLine("( " + trainData[info[i].idx][0] + "," + trainData[info[i].idx][1] + " )  :  " + dist + "        " + c);
            }

            int result = Vote(info, trainData, numClasses, k);  // k nearest classes

            return(result);
        } // Classify
Example #2
0
        static int Classify(double[] unknown, double[][] trainData, int numClasses, int k)
        {
            int n = trainData.Length;

            IndexAndDistance[] info = new IndexAndDistance[n];
            for (int i = 0; i < n; ++i)
            {
                IndexAndDistance curr = new IndexAndDistance();
                double           dist = Distance(unknown, trainData[i]);
                curr.idx  = i;
                curr.dist = dist;
                info[i]   = curr;
            }
            int result = Vote(info, trainData, numClasses, k);

            return(result);
        }