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

📄 miningmodel.cs

📁 利用AMO开发包做的一个数据挖掘小程序 包括创建数据连接 数据视图 挖掘结构 挖掘模型 训练
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.AnalysisServices;
using System.Data.OleDb;
using System.Data.SqlClient;

namespace ADO
{
    public partial class Miningmodel : Form
    {
        public MiningStructure ms;
        public Database m_db;
        private string st;
        private string connectst;

        public Miningmodel()
        {
            InitializeComponent();
            st = "";
            connectst = "Data Source=localhost;" + "Integrated Security=true;Initial Catalog=ZJXT;User ID=sa;Password=123;persist security info=False";//数据库连接字符串
            ms = null;
            m_db = null;
        }


        private void dismodel()
        {
            if (ms != null)
            {
                textBox1.Clear();
                int n = m_db.MiningStructures.Count;
                for (int i = 0; i < n; i++)
                {
                    textBox1.AppendText(m_db.MiningStructures[i].ToString());
                    textBox1.AppendText("\t");
                }
            }
            else
                MessageBox.Show("请回到前一个窗口创建挖掘结构!");
        }

        private bool Valida() //检查医生lable1不为空
        {
            if (textname.Text != "")
            {
                st=textname.Text;
                return true;
            } 
            else return false;
        }

        private void Redydata() //清空T_WZWZ T_JCJC T_ZDZD;
        {
            SqlConnection thisconnection = new SqlConnection(connectst);
            thisconnection.Open();
            SqlCommand thiscommand = thisconnection.CreateCommand();

            thiscommand.CommandText = "DELETE FROM T_WZWZ";
            thiscommand.ExecuteNonQuery();

            thiscommand.CommandText = "DELETE FROM T_ZDZD";
            thiscommand.ExecuteNonQuery();

            thiscommand.CommandText = "DELETE FROM T_JCJC";
            thiscommand.ExecuteNonQuery();

            thisconnection.Close();

        }

        private void Datamunipulate(string name) //数据进行转换
        {
            SqlConnection thisconnection = new SqlConnection(connectst);
            thisconnection.Open();
            SqlCommand thiscommand = thisconnection.CreateCommand();

            thiscommand.CommandText = "INSERT INTO T_WZWZ(BRBH, WZBH, WZYS, YSZD)" +
                                       "SELECT T_WZBH.BRBH, T_WZBH.WZBH, T_WZJG.WZYS, T_WZJG.YSZD " +
                                         "FROM T_WZJG INNER JOIN T_WZBH ON T_WZBH.BRBH = T_WZJG.BRBH AND T_WZBH.WZBH = T_WZJG.WZBH AND T_WZJG.WZYS="+"'"+name+"'";
            thiscommand.ExecuteNonQuery();//在T_WZWZ中放入诊断医生代码为name的BRBH, WZBH, WZYS, YSZD


            thiscommand.CommandText = "INSERT INTO T_ZDZD(BRBH, WZBH, ZZBM, YZCD, FSPL,FSBW)" +
                                       "SELECT T_ZDJL.BRBH, T_ZDJL.WZBH, T_ZDJL.ZZBM, T_ZDJL.YZCD, T_ZDJL.FSPL,T_ZDBW.FSBW "+
                                       "FROM T_ZDBW INNER JOIN T_ZDJL ON T_ZDJL.BRBH = T_ZDBW.BRBH AND T_ZDBW.WZBH = T_ZDJL.WZBH AND T_ZDBW.ZZBM=T_ZDJL.ZZBM ";
            thiscommand.ExecuteNonQuery();

            thiscommand.CommandText = "DELETE FROM T_ZDZD1";
            thiscommand.ExecuteNonQuery();//清空T_ZDZD

            thiscommand.CommandText = "INSERT INTO T_ZDZD1(BRBH, WZBH, ZZBM, YZCD, FSPL,FSBW) " +
                                      "SELECT T_WZWZ.BRBH, T_WZWZ.WZBH, T_ZDZD.ZZBM, T_ZDZD.YZCD, T_ZDZD.FSPL, T_ZDZD.FSBW "+
                                      "FROM T_ZDZD INNER JOIN T_WZWZ ON T_ZDZD.BRBH = T_WZWZ.BRBH AND T_ZDZD.WZBH = T_WZWZ.WZBH";
            thiscommand.ExecuteNonQuery();

            thiscommand.CommandText = "DELETE FROM T_ZDZD";
            thiscommand.ExecuteNonQuery();//清空T_ZDZD

            thiscommand.CommandText = "INSERT INTO T_ZDZD(BRBH, WZBH, ZZBM, YZCD, FSPL, FSBW) "+
                                      "SELECT BRBH, WZBH, ZZBM, YZCD, FSPL, FSBW FROM T_ZDZD1";
            thiscommand.ExecuteNonQuery();

          




            thiscommand.CommandText = "INSERT INTO T_JCJC (JCBM, BRBH, WZBH, JCLB, JCJG, ZBBM, HYJG) " +
                                      "SELECT T_JCJL.JCBM, T_JCJL.BRBH, T_JCJL.WZBH, T_JCJL.JCLB, T_JCJL.JCJG, T_HYMX.ZBBM, T_HYMX.HYJG " +
                                      "FROM  T_HYMX INNER JOIN T_JCJL ON T_HYMX.BRBH = T_JCJL.BRBH AND T_HYMX.WZBH = T_JCJL.WZBH AND T_HYMX.JCBM = T_JCJL.JCBM";
            thiscommand.ExecuteNonQuery();
            thiscommand.CommandText = "INSERT INTO T_JCJC(JCBM, BRBH, WZBH, JCLB, JCJG, ZBBM, HYJG)"+
                                      "SELECT JCBM, BRBH, WZBH, JCLB, JCJG, 0 AS ZBBM, 0 AS HYJG "+
                                      "FROM   T_JCJL WHERE (JCLB = 1)";
            thiscommand.ExecuteNonQuery();////在T_JCJC中放入诊断医生代码为name的检查信息

            thiscommand.CommandText = "DELETE FROM T_JCJC1";
            thiscommand.ExecuteNonQuery();//清空T_JCJC

            thiscommand.CommandText = "INSERT INTO T_JCJC1(JCBM, BRBH, WZBH, JCLB, JCJG, ZBBM, HYJG) "+
                                      "SELECT T_JCJC.JCBM, T_WZWZ.BRBH, T_WZWZ.WZBH, T_JCJC.JCLB, T_JCJC.JCJG, T_JCJC.ZBBM, T_JCJC.HYJG " +
                                      "FROM T_JCJC INNER JOIN T_WZWZ ON T_JCJC.BRBH = T_WZWZ.BRBH AND T_JCJC.WZBH = T_WZWZ.WZBH";
            thiscommand.ExecuteNonQuery();

            thiscommand.CommandText = "DELETE FROM T_JCJC";
            thiscommand.ExecuteNonQuery();//清空T_JCJC

            thiscommand.CommandText = "INSERT INTO T_JCJC(BRBH, WZBH, ZBBM, JCLB, JCJG, HYJG, JCBM) " +
                                     "SELECT BRBH, WZBH, ZBBM, JCLB, JCJG, HYJG, JCBM FROM T_JCJC1";
            thiscommand.ExecuteNonQuery();


            thisconnection.Close();


        }

        private void study_Click(object sender, EventArgs e)//彻底训练
        {
            if (Valida())
            {
                if (ms != null)
                {
                    if (ms.MiningModels.Count == 0)
                    {
                        Creatmodel(st);
                        Redydata();
                        Datamunipulate(st);
                        ms.MiningModels[st].Process(ProcessType.ProcessFull);
                        dismodel();
                    }
                    else
                    {
                        Toaddmodel(st);
                        Redydata();
                        Datamunipulate(st);
                        m_db.MiningStructures["专家"+st].Process(ProcessType.ProcessFull);
                        dismodel();
                    }
                }
                else
                {
                    MessageBox.Show("请回到前一个窗口创建挖掘结构!");
                    return;
                }
            }
            else
            {
                MessageBox.Show("请输入医生姓名!");
                return;
            }
        }

      //  private bool inms(string string1) 
        //{
        //    foreach(MiningModel MM in ms.MiningModels)
        //    {
        //         if(ms.MiningModels[].ToString)
        //    }

        //}

        private void Creatmodel(string st) //创建挖掘模型
        {
            MiningModel NNModel;
            MiningModelColumn mmc;


            NNModel = ms.CreateMiningModel(true, st);
            NNModel.Columns.Clear();
            NNModel.Algorithm = "Microsoft_Neural_Network";

            mmc = NNModel.Columns.Add("BH");
            mmc.SourceColumnID = "BH";
            mmc.Usage = "Key";

            mmc = NNModel.Columns.Add("YSZD");
            mmc.SourceColumnID = "YSZD";
            mmc.Usage = "Predict";

            mmc = NNModel.Columns.Add("T_ZDZD");
            mmc.SourceColumnID = "T_ZDZD";

            MiningModelColumn mmc1;

            mmc1 = mmc.Columns.Add("XXBH");
            mmc1.SourceColumnID = "XXBH";
            mmc1.Usage = "Key";
            //mmc1.Usage

            mmc1 = mmc.Columns.Add("ZZBM");
            mmc1.SourceColumnID = "ZZBM";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("FSBW");
            mmc1.SourceColumnID = "FSBW";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("FSPL");
            mmc1.SourceColumnID = "FSPL";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("YZCD");
            mmc1.SourceColumnID = "YZCD";
            mmc1.Usage = "Input";


            mmc = NNModel.Columns.Add("T_JCJC");
            mmc.SourceColumnID = "T_JCJC";

            mmc1 = mmc.Columns.Add("XXBH");
            mmc1.SourceColumnID = "XXBH";
            mmc1.Usage = "Key";

            mmc1 = mmc.Columns.Add("HYJG");
            mmc1.SourceColumnID = "HYJG";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("ZBBM");
            mmc1.SourceColumnID = "ZBBM";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("JCBM");
            mmc1.SourceColumnID = "JCBM";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("JCJG");
            mmc1.SourceColumnID = "JCJG";
            mmc1.Usage = "Input";

            mmc1 = mmc.Columns.Add("JCLB");
            mmc1.SourceColumnID = "JCLB";
            mmc1.Usage = "Input";

            NNModel.Update();
        }

        private void Toaddmodel(string st) //添加挖掘模型
        {
            MiningStructure ms1 = ms.Clone();
            ms1.Name = "专家" + st;
            ms1.ID = "专家" + st;
            ms1.MiningModels.Clear();
            ms1.Source = new DataSourceViewBinding("ZJXT");
            m_db.MiningStructures.Add(ms1);
            ms1.Update();

            MiningModel AddModel = ms.MiningModels[0].Clone();
            AddModel.Name = st;
            AddModel.ID = st;
            m_db.MiningStructures["专家" + st].MiningModels.Add(AddModel);
            AddModel.Update();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

⌨️ 快捷键说明

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