Example #1
0
        private void outputError(ClassificationAlgorithmBase <double[][, ]> alg)
        {
            Console.WriteLine("Errors:");

            var sample = new ClassifiedSample <double[][, ]>();

            foreach (var obj in Data.Data)
            {
                var data = obj.Key;

                var key = new double[data.Length][, ];
                for (int i = 0; i < data.Length; i++)
                {
                    key[i] = new double[1, 1];
                }

                for (int i = 0; i < data.Length; i++)
                {
                    key[i][0, 0] = data[i];
                }
                sample[key] = obj.Value;
            }

            var errors = alg.GetErrors(sample, 0, true);
            var ec     = errors.Count();
            var dc     = Data.Data.Count;
            var pct    = Math.Round(100.0F * ec / dc, 2);

            Console.WriteLine("{0} of {1} ({2}%)", ec, dc, pct);
        }
Example #2
0
        private void outputError(ClassificationAlgorithmBase <double[]> alg)
        {
            Console.WriteLine("Errors:");
            var errors = alg.GetErrors(Data.Data, 0, true);
            var ec     = errors.Count();
            var dc     = Data.Data.Count;
            var pct    = Math.Round(100.0F * ec / dc, 2);

            Console.WriteLine("{0} of {1} ({2}%)", ec, dc, pct);
        }
Example #3
0
        public void Run(ClassificationAlgorithmBase <double[]> algorithm, int xidx = 0, int yidx = 1, double[] shear = null)
        {
            m_XIdx     = xidx;
            m_YIdx     = yidx;
            m_Shear    = shear;
            m_InputDim = algorithm.TrainingSample.First().Key.Length;

            var fn  = string.Format("data/{0}-{1:yyyyMMdd-hhmmss}.csv", algorithm.Name, DateTime.Now);
            var dir = Path.GetDirectoryName(fn);

            Directory.CreateDirectory(dir);

            using (var file = File.Create(fn))
                using (var writer = new StreamWriter(file))
                {
                    prepareCanvas();
                    doCalc(algorithm, writer);
                }
        }
Example #4
0
        private void init()
        {
            using (var spam = Assembly.GetExecutingAssembly().GetManifestResourceStream("ML.TextDemo.data.SPAM_p2.42.mld"))
            {
                var proc = new TextPreprocessor(new EnglishSimpleTokenizer(),
                                                new EnglishStopwords(),
                                                new EnglishSimpleNormalizer(),
                                                new EnglishPorterStemmer());
                m_SpamAlgorithm = new ComplementNaiveBayesianAlgorithm()
                {
                    Preprocessor = proc
                };
                m_SpamAlgorithm.Deserialize(spam);
            }

            using (var r8 = Assembly.GetExecutingAssembly().GetManifestResourceStream("ML.TextDemo.data.RR8_p4.37.mld"))
            {
                var proc = new TextPreprocessor(new EnglishSimpleTokenizer(),
                                                new EnglishStopwords(),
                                                new EnglishSimpleNormalizer(),
                                                new EnglishPorterStemmer());
                m_ReutersR8Algorithm = new MultinomialNaiveBayesianAlgorithm()
                {
                    Preprocessor = proc
                };
                m_ReutersR8Algorithm.Deserialize(r8);
            }

            using (var n20 = Assembly.GetExecutingAssembly().GetManifestResourceStream("ML.TextDemo.data.N20_p17.35.mld"))
            {
                var proc = new TextPreprocessor(new EnglishSimpleTokenizer(),
                                                new EnglishStopwords(),
                                                new EnglishSimpleNormalizer(),
                                                new EnglishPorterStemmer());
                m_Newsgroups20Algorithm = new TFIDFNaiveBayesianAlgorithm()
                {
                    Preprocessor = proc
                };
                m_Newsgroups20Algorithm.Deserialize(n20);
            }
        }
Example #5
0
        private void doCalc(ClassificationAlgorithmBase <double[]> algorithm, StreamWriter writer)
        {
            for (var k = 0; k < Math.Max(m_XCnt, m_YCnt); k++)
            {
                var px = (k < m_XCnt) ? getProjPoint(k, 0)[0].ToString(CultureInfo.InvariantCulture) : string.Empty;
                var py = (k < m_YCnt) ? getProjPoint(0, k)[1].ToString(CultureInfo.InvariantCulture) : string.Empty;
                var pd = string.Empty;
                if (k < m_YCnt)
                {
                    var data = new double[m_XCnt];
                    for (int i = 0; i < m_XCnt; i++)
                    {
                        var point = getPoint(i, k);
                        var cls   = algorithm.Predict(point);
                        data[i] = cls.Value;
                    }
                    pd = string.Join(COMMA, data);
                }

                writer.WriteLine("{0},{1},{2}", px, py, pd);
            }
        }