Example #1
0
        public void ClassifyTest()
        {
            String text   = "雁塔王家村民房凌晨突发火灾 4人死亡13人受伤";
            int    result = BayesClassifier.Classify(text);

            Console.WriteLine(result);
        }
Example #2
0
        static void Main(string[] args)
        {
            DataTable table = new DataTable();

            table.Columns.Add("Sex");
            table.Columns.Add("Height", typeof(double));
            table.Columns.Add("Weight", typeof(double));
            table.Columns.Add("FootSize", typeof(double));

            //training data.
            table.Rows.Add("male", 6, 180, 12);
            table.Rows.Add("male", 5.92, 190, 11);
            table.Rows.Add("male", 5.58, 170, 12);
            table.Rows.Add("male", 5.92, 165, 10);

            table.Rows.Add("female", 5, 100, 6);
            table.Rows.Add("female", 5.5, 150, 8);
            table.Rows.Add("female", 5.42, 130, 7);
            table.Rows.Add("female", 5.75, 150, 9);

            BayesClassifier classifier = new BayesClassifier();

            classifier.TrainClassifier(table);

            Console.WriteLine(classifier.Classify(new double[] { 4, 150, 12 }));
            Console.Read();
        }
Example #3
0
        protected Int16 Judgement(String Title)
        {
            //IsAccident isAccident = new IsAccident(Title);
            //if (isAccident.isAccResu)
            //    return 0;
            //每判断一个类别,插入一个类别
            // BayesClassifier classifier = new BayesClassifier();// 构造Bayes分类器
            Int16 result = BayesClassifier.Classify(Title);// 进行分类

            return(result);
        }
Example #4
0
        private void button3_Click(object sender, EventArgs e)
        {
            Glass newGlass     = new Glass(-1, (double)riNum.Value, (double)naNum.Value, (double)mgNum.Value, (double)alNum.Value, (double)siNum.Value, (double)kNum.Value, (double)caNum.Value, (double)baNum.Value, (double)feNum.Value, -1);
            var   neuralOutput = network.GetOutputs(newGlass);

            output(("[BACK PROPOGATION] Siūloma tipas: "******"[K-Nearest-Neighbors] Siūloma tipas: "******"[Bayes] Siūloma tipas: " + bayes.test(newGlass)));
        }
        public static void Train()
        {
            classifier = new BayesClassifier("1", "2", "3", "4", "5");
            DataHandler.ImportReviewData(3);
            for (int i = 1; i <= 5; i++)
            {
                var data = DataHandler.Reviews.Where(r => r.overall == i);

                foreach (ReviewData item in data)
                {
                    var text = item.reviewText;
                    classifier.Train(i.ToString(), text);
                }
            }
        }
Example #6
0
        private async Task OnClassifyBayes()
        {
            await Task.Run(() =>
            {
                try
                {
                    var bayes     = new BayesClassifier(FirstClass, SecondClass);
                    var stopwatch = new Stopwatch();

                    stopwatch.Start();
                    for (var i = 0; i < 5000; i++)
                    {
                        var randomPointX = random.NextDouble() * (PlotModel.Axes[0].Maximum - PlotModel.Axes[0].Minimum) + PlotModel.Axes[0].Minimum;
                        var randomPointY = random.NextDouble() * (PlotModel.Axes[1].Maximum - PlotModel.Axes[1].Minimum) + PlotModel.Axes[1].Minimum;

                        var result = bayes.ClassifyByCorrelation(randomPointX, randomPointY, new Matrix(CorrelationMatrix));

                        if (result == FirstClass)
                        {
                            FirstClassScatterSeries.Points.Add(new ScatterPoint(randomPointX, randomPointY, 4, double.NaN, FirstClass.Id));
                        }
                        else
                        {
                            SecondClassScatterSeries.Points.Add(new ScatterPoint(randomPointX, randomPointY, 4, double.NaN, FirstClass.Id));
                        }

                        if (stopwatch.Elapsed > TimeSpan.FromMilliseconds(100))
                        {
                            PlotModel.InvalidatePlot(true);
                            stopwatch.Restart();
                        }
                    }

                    PlotModel.InvalidatePlot(true);
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            });
        }
Example #7
0
        private void bajes_start_Click(object sender, EventArgs e)
        {
            double       averageAccurasy = 0;
            List <Glass> glasses         = new List <Glass>();

            if (radioButton1.Checked)
            {
                glasses = dataList;
            }
            else
            {
                glasses = clearDistantValuesFromList(dataList);
            }
            int testingFileCount = glasses.Count / NUMBER_OF_SEGMENTS;

            for (int segment = 0; segment < NUMBER_OF_SEGMENTS; segment++)
            {
                richTextBox1.AppendText(String.Format("Crosscheck segment {0} \n ", segment + 1));
                int correctGuesses       = 0;
                int guessCounter         = 0;
                int falseGuesses         = 0;
                int testingDataFromIndex = segment * testingFileCount;
                int testingDataToIndex   = (segment + 1) * testingFileCount;
                var trainingData         = new List <Glass>();
                var testingData          = new List <Glass>();
                for (int i = 0; i < glasses.Count; i++)
                {
                    if (i >= testingDataFromIndex && i <= testingDataToIndex)
                    {
                        testingData.Add(glasses[i]);
                    }
                    else
                    {
                        trainingData.Add(glasses[i]);
                    }
                }
                BayesClassifier bayes = new BayesClassifier(trainingData.Count);
                bayes.trainClassifier(trainingData);
                foreach (Glass glass in testingData)
                {
                    int guess = bayes.test(glass);
                    if (guess == glass.group_type)
                    {
                        correctGuesses++;
                    }
                    else
                    {
                        falseGuesses++;
                    }
                    guessCounter++;
                }
                var    totalGlasses = glasses.Count;
                var    totalTrain   = trainingData.Count;
                var    totalTest    = testingData.Count;
                double trainProc    = Math.Round(((double)totalTrain / totalGlasses) * 100, 2);
                double testProc     = Math.Round(((double)totalTest / totalGlasses) * 100, 2);
                double accuracy     = Math.Round(((double)correctGuesses / guessCounter) * 100, 2);
                averageAccurasy += accuracy;

                richTextBox1.AppendText(string.Format("Total: {0, 3}; Training: {1, 3}({2, 4}%); Testing: {3, 3}({4, 4}%)\n", totalGlasses, totalTrain, trainProc, totalTest, testProc));
                richTextBox1.AppendText(string.Format("Correct guesses: {0, 3} ; Total guesses: {1, 3} ; Accuracy: {2, 4}%\n", correctGuesses, guessCounter, accuracy));
            }
            richTextBox1.AppendText(string.Format("Average accurasy of all segments - {0}%\n", averageAccurasy / NUMBER_OF_SEGMENTS));
        }