AI/ML.NET

ML.NET MSSQL 연동 [3]

Urong 2020. 11. 23. 18:21
728x90

앞 포스트에 이어서

일단 간단하게 폼을 하나 만들고

입력, 출력 클래스를 만들어주고

        public class Data
        {
            public float A { get; set; }
            public float Target { get; set; }
        }

        public class Prediction
        {
            [ColumnName("Target")]
            public float Target { get; set; }
        }

버튼에 이벤트를 주었다.

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
            	//Import or create training data
                MLContext mlContext = new MLContext();
                DatabaseLoader loader = mlContext.Data.CreateDatabaseLoader<Data>();

                string connectionString = @"Data Source = localhost; Initial Catalog = aTEST; Persist Security Info = True; User ID = sa; Password = ********";

                string query = "select CAST(Target as REAL) as Target, CAST(A as REAL) as A from Mltest";
                DatabaseSource dbSource = new DatabaseSource(SqlClientFactory.Instance,
                                                connectionString,
                                                query);

                IDataView dataView = loader.Load(dbSource);
				
                //Specify data preparation and model training pipeline
				var pipeline = mlContext.Transforms.Concatenate("Features", new[] { "A" })
                    .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Target", maximumNumberOfIterations: 100));

                // Train model
                var model = pipeline.Fit(dataView);

                // Make a prediction
                // 입력값을 받는다.
                var ik = input.Text;

                var size = new Data() { A = ((float)Int32.Parse(ik)) };
                var price = mlContext.Model.CreatePredictionEngine<Data, Prediction>(model).Predict(size);
				
                // 예측값 출력.
                output.Text = $"{ price.Target}";

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

입력값을 넣고 버튼을 누르면 데이터를 가져와서 학습하고 모델만들고 다 했는데!!

0만 나온다.

되게 간단한건데 어디 순서가 잘못된거 같은데 지금 머리가 복잡해서 모르겠다.

728x90
반응형