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); }
/* * //[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); }