Ejemplo n.º 1
0
        public void TestNaiveBaysClassify()
        {
            NaiveBays nb = new NaiveBays(DocumentFiltering.GetWords, null);

            nb.SetDB("cistore");

            CIUtil.SampleTrain(nb);
            string defclass = "unknown";

            string result0 = nb.Classify("quick rabbit", defclass);
            string result1 = nb.Classify("quick money", defclass);

            nb.SetThresholds("bad", 3.0);

            /* badに分類されるしきい値が上がったためbadに分類されなくなる */
            string result2 = nb.Classify("quick money", defclass);

            for (int i = 0; i < 10; i++)
            {
                CIUtil.SampleTrain(nb);
            }

            /* トレーニングが積まれたためbadに分類できるようになる。 */
            string result3 = nb.Classify("quick money", defclass);

            Assert.AreEqual("good", result0);
            Assert.AreEqual("bad", result1);
            Assert.AreEqual("unknown", result2);
            Assert.AreEqual("bad", result3);
        }
Ejemplo n.º 2
0
        /*
         * //[Test]
         * public void TestCProb()
         * {
         *      int fix = 4;
         *
         *      FisherClassifier fc = new FisherClassifier(DocumentFiltering.GetWords, null);
         *      CIUtil.SampleTrain(fc);
         *      double result0 = fc.CProb("quick", "good");
         *      double result1 = fc.CProb("money", "bad");
         *      double result2 = fc.WeightedProb("money", "bad", fc.CProb);
         *      Assert.AreEqual(0.5714, Math.Round(result0, fix));
         *      Assert.AreEqual(1.0, result1);
         *      Assert.AreEqual(0.75, result2);
         * }
         *
         * //[Test]
         * public void TestFisherProb()
         * {
         *      FisherClassifier fc = new FisherClassifier(DocumentFiltering.GetWords, null);
         *      CIUtil.SampleTrain(fc);
         *      //fc.CProb("quick", "good");
         *      double result0 = fc.Prob("quick rabbit", "good");
         *      double result1 = fc.Prob("quick rabbit", "bad");
         *      Assert.AreEqual(0.7801, Math.Round(result0, FIX));
         *      Assert.AreEqual(0.3563, Math.Round(result1, FIX));
         * }
         */

        //[Test]
        public void TestFisherClassify()
        {
            FisherClassifier fc = new FisherClassifier(DocumentFiltering.GetWords, null);

            CIUtil.SampleTrain(fc);
            string result0 = fc.Classify("quick rabbit");
            string result1 = fc.Classify("quick money");

            /* badに判定されるしきい値を高くしてbadに分類されにくくする。 */
            fc.SetThresholds("bad", 0.8);

            string result2 = fc.Classify("quick money");

            fc.SetThresholds("good", 0.4);

            string result3 = fc.Classify("quick money");

            Assert.AreEqual("good", result0);
            Assert.AreEqual("bad", result1);
            Assert.AreEqual("good", result2);
            Assert.AreEqual("good", result3);
        }