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(); } }
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 })); }
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(); } }