⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 It s the Naive Bayes algorithm with import function dat-files, realized by the tools of Visual Stu
💻 CS
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace NaiveBayes
{
    public partial class Form1 : Form
    {
        private Dataset dataset;
               
        public Form1()
        {
            InitializeComponent();
        }

        public void openSample()
        {
            comboBox1.Items.Clear();


            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                StreamReader reader = new StreamReader(openFileDialog1.FileName);
                string[] columns = reader.ReadLine().Split(',');

                //initializing datatable
                DataTable dataTable = new DataTable();
                DataRow row = dataTable.NewRow();
                for (int i = 0; i < columns.Length; i++)
                {
                    dataTable.Columns.Add();
                    row[i] = columns[i];
                    dataTable.Columns[i].ColumnName = ("Attribute" + (i + 1).ToString());
                }
                dataTable.Rows.Add(row);
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    row = dataTable.NewRow();
                    string[] sample = line.Split(',');
                    for (int i = 0; i < sample.Length; i++)
                    {
                        row[i] = sample[i];
                    }
                    dataTable.Rows.Add(row);
                }
                //initializing combobox items (target attribute)
                for (int i = 0; i < columns.Length; i++)
                {
                    comboBox1.Items.Add("Attribute" + (i + 1).ToString());
                }
                //default target attribute 
                comboBox1.SelectedIndex = comboBox1.Items.Count - 1;


                //default teaching&test sample proportion
                comboBox2.SelectedIndex = 0;

                //default discretization step 
                comboBox3.SelectedIndex = comboBox3.Items.Count - 1;

                this.dataset = new Dataset(dataTable, comboBox1.SelectedIndex, Convert.ToDouble(comboBox3.SelectedItem));

                dataGridView1.DataSource = this.dataset.getDataTable();
            }
        }

        private void classify()
        {
            for (int i = 0; i < this.dataset.getDigitizedTestSamples().Count; i++)
            {
                Classifier classifier = new Classifier((this.dataset.getDigitizedTestSamples()[i] as TestSample), this.dataset.getTargetAttribute(), this.dataset.getTrainingAttributes());
                (this.dataset.getDigitizedTestSamples()[i] as TestSample).setClassAssumed(classifier.getClassAssumed());
            }
        }
        private double countAccuracy()
        {
            double accuracy = 0;
            foreach (TestSample testSample in this.dataset.getDigitizedTestSamples())
            {
                int temp1 = testSample.getClassAssumed();
                int temp2 = Convert.ToInt32(testSample.getTargetValue());
                if (testSample.getClassAssumed() == Convert.ToInt32(testSample.getTargetValue()))
                    accuracy++;
            }
            return (accuracy/this.dataset.getDigitizedTestSamples().Count*100);
 
        }

        private void DevideSample(int index)
        {
            double n = 0;
            switch (index)
            {
                case 0:
                    n = 0.9;
                    break;
                case 1:
                    n = 0.8;
                    break;
                case 2:
                    n = 0.7;
                    break;
                case 3:
                    n = 0.6;
                    break;
                case 4:
                    n = 0.5;
                    break;
                case 5:
                    n = 0.4;
                    break;
                case 6:
                    n = 0.3;
                    break;
                case 7:
                    n = 0.2;
                    break;
                case 8:
                    n = 0.1;
                    break;
                default:
                    n = 0.9;
                    break;
            }
            this.dataset.Devide(n);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openSample();
            groupBox1.Enabled = true;
            groupBox2.Enabled = true;
        }
        private void button3_Click(object sender, EventArgs e)
        {
            this.dataset.digitize();
            dataGridView2.DataSource = this.dataset.getDigitizedTrainingTable();
            dataGridView3.DataSource = this.dataset.getDigitizedTestTable_();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.dataset.update();
            DevideSample(comboBox2.SelectedIndex);
            groupBox3.Enabled = true;
            dataGridView2.DataSource = this.dataset.getTrainingTable();
            dataGridView3.DataSource = this.dataset.getTestTable();

        }

        private void button4_Click(object sender, EventArgs e)
        {
            classify();
            label2.Visible = true;
            label1.Visible = true;
            label2.Text = countAccuracy().ToString()+"%";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            this.dataset.randomize();
        }

       
        
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -