protected void Button1_Click(object sender, EventArgs e)
        {
            double    calyxLength = double.Parse(CalyxLength.Text);
            double    calyxWidth  = double.Parse(CalyxWidth.Text);
            double    petalLength = double.Parse(PetalLength.Text);
            double    petalWidth  = double.Parse(PetalWidth.Text);
            string    sql         = "select Label, CalyxLength, CalyxWidth, PetalLength, PetalWidth from tblIris";
            SQLHelper sh          = new SQLHelper();
            DataTable dt          = new DataTable();
            DataSet   ds          = new DataSet();

            try
            {
                sh.RunSQL(sql, ref ds);
                if (ds.Tables[0] != null)
                {
                    dt = ds.Tables[0];
                    if (dt.Rows.Count > 0)
                    {
                        ClassNaiveBayes classifier = new ClassNaiveBayes();
                        classifier.TrainClassifier(dt);
                        Response.Write(classifier.Classify(new double[] { calyxLength, calyxWidth, petalLength, petalWidth }));
                    }
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            finally
            {
                sh.Close();
            }
        }
Exemple #2
0
        protected void btnOut_Click(object sender, EventArgs e)
        {
            double Symptom = double.Parse(ddlSymptom.SelectedValue);
            double Job     = double.Parse(ddlJob.SelectedValue);

            /*
             * 打喷嚏--1
             * 头痛--2
             *
             * 护士--1
             * 农夫--2
             * 建筑工人--3
             * 教师--4
             */
            //training data
            DataTable table = new DataTable();

            table.Columns.Add("disease");
            table.Columns.Add("symptom", typeof(double));
            table.Columns.Add("job", typeof(double));

            table.Rows.Add("感冒", 1, 1);
            table.Rows.Add("过敏", 1, 2);
            table.Rows.Add("脑震荡", 2, 3);
            table.Rows.Add("感冒", 2, 3);
            table.Rows.Add("感冒", 1, 4);
            table.Rows.Add("脑震荡", 2, 4);
            ClassNaiveBayes classifier = new ClassNaiveBayes();

            classifier.TrainClassifier(table);
            Response.Write(classifier.Classify(new double[] { Symptom, Job }));//新来了打喷嚏的建筑工人,问可能得什么病
        }
        protected void btnOut_Click(object sender, EventArgs e)
        {
            double    Symptom = double.Parse(ddlSymptom.SelectedValue);
            double    Job     = double.Parse(ddlJob.SelectedValue);
            DataTable table   = new DataTable();

            table.Columns.Add("disease");
            table.Columns.Add("symptom", typeof(double));
            table.Columns.Add("job", typeof(double));
            table.Rows.Add("感冒", 1, 1);
            table.Rows.Add("过敏", 1, 2);
            table.Rows.Add("脑震荡", 2, 3);
            table.Rows.Add("感冒", 2, 3);
            table.Rows.Add("感冒", 1, 4);
            table.Rows.Add("脑震荡", 2, 4);
            ClassNaiveBayes classifier = new ClassNaiveBayes();

            classifier.TrainClassifier(table);
            Response.Write(classifier.Classify(new double[] { Symptom, Job }));
        }
Exemple #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string    sql = "select (case gender when 1 then '男性' else '女性' end) as Gender, Footsize, Weight, Height from tblBodies";
            SQLHelper sh  = new SQLHelper();
            DataTable dt  = new DataTable();
            DataSet   ds  = new DataSet();

            try
            {
                sh.RunSQL(sql, ref ds);
                if (ds.Tables[0] != null)
                {
                    dt = ds.Tables[0];
                    if (dt.Rows.Count > 0)
                    {
                        DataTable table = new DataTable();
                        table.Columns.Add("gender");
                        table.Columns.Add("footsize", typeof(double));
                        table.Columns.Add("height", typeof(double));
                        table.Columns.Add("weight", typeof(double));
                        for (int i = 0; i < Math.Ceiling(dt.Rows.Count * 0.7); i++)
                        {
                            table.Rows.Add(dt.Rows[i][0], dt.Rows[i][1], dt.Rows[i][2], dt.Rows[i][3]);
                        }
                        ClassNaiveBayes classifier = new ClassNaiveBayes();
                        classifier.TrainClassifier(table);
                        int times  = 0;
                        int people = 1;
                        for (int j = int.Parse(Math.Ceiling(dt.Rows.Count * 0.7).ToString()); j < dt.Rows.Count; j++)
                        {
                            double footsize       = double.Parse(dt.Rows[j]["footsize"].ToString());
                            double height         = double.Parse(dt.Rows[j]["height"].ToString());
                            double weight         = double.Parse(dt.Rows[j]["weight"].ToString());
                            string possiblegender = classifier.Classify(new double[] { footsize, height, weight });
                            string realgender     = dt.Rows[j]["gender"].ToString();
                            Response.Write(string.Format("第{0}人脚长{1} cm,身高{2} cm,体重{3} kg,预测性别为:{4};", people, footsize, height, weight, possiblegender));
                            Response.Write("实际性别为:" + realgender + "。");
                            people++;
                            if (possiblegender == realgender)
                            {
                                Response.Write("预测成功!" + "</br>");
                                times++;
                            }
                            else
                            {
                                Response.Write("预测失败!" + "</br>");
                            }
                        }
                        Response.Write(string.Format("共预测成功{0}次,成功率为{1}%。", times, 100 * times / people));
                    }
                }
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
            finally
            {
                sh.Close();
            }
        }