Ejemplo n.º 1
0
        private string UseModelWithSingleItem(TextBox txtResult, String sTestSql)
        {
            // Create Predict Engine
            //PredictionEngine<SqlData, SqlPrediction> predictionFunction = mlContext.Model.CreatePredictionEngine<SqlData, SqlPrediction>(model);

            var predictor = _mlContext.Model.CreatePredictionEngine <AppInput, AppPrediction>(_model);


            // Create Issue
            AppInput issueSql = new AppInput
            {
                Text = sTestSql
            };

            // Predict
            var resultPrediction = predictor.Predict(issueSql);

            // Too many record have to save in short time so we must create a long sql strint instead use ony-by-one insert to history database
            string sSQL = sTestSql.Replace("'", "''");

            string str = "INSERT INTO [dbo].[history] ([TestNumber], [CatalogName], [TrainerName], [DatabaseName], [SqlCommand], [Label], [Prediction], [Probability], [Recorded])"
                         + " VALUES (" + iTestNumber + ", N'" + sCatalog + "', N'" + sTrainer + "', N'" + sDatabase + "', N'" + sSQL + "', " + iLabel.ToString() + ", " + resultPrediction.Label
                         + ", 0, '" + DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + "');";

            // Output Prediction
            txtResult.Text += Environment.NewLine + "=============== Prediction Test of model with a single sample and test dataset ===============" + Environment.NewLine;

            txtResult.Text += $"SQL Command: {sTestSql}" + Environment.NewLine +
                              $"Prediction: {((resultPrediction.Label == "1") ? "Positive" : "Negative")}" + Environment.NewLine;

            txtResult.Text += "=============== End of Predictions ===============" + Environment.NewLine;

            return(str);
        }
Ejemplo n.º 2
0
        private void UseModelWithSingleItem(TextBox txtResult, String sTestSql)
        {
            // Create Predictio nEngine1
            //PredictionEngine<SqlData, SqlPrediction> predictionFunction = mlContext.Model.CreatePredictionEngine<SqlData, SqlPrediction>(_model);

            var predictor = _mlContext.Model.CreatePredictionEngine <AppInput, AppPrediction>(_model);


            // Create Issue
            AppInput issueSql = new AppInput
            {
                Text = sTestSql
            };

            // Predict
            var resultPrediction = predictor.Predict(issueSql);

            Logs lo = new Logs();

            if (bUrlRequest)
            {
                int iLog = lo.RecordLogFromURL(sCatalog, sTrainer, sDatabase, sTestSql, iLabel, Convert.ToInt32(resultPrediction.Label));
            }
            else
            {
                int iLog = lo.RecordLogFromInput(sCatalog, sTrainer, sDatabase, sTestSql, Convert.ToInt32(resultPrediction.Label));
            }


            // Output Prediction
            txtResult.Text += Environment.NewLine + "=============== Prediction Test of model with a single sample and test dataset ===============" + Environment.NewLine;

            txtResult.Text += $"SQL Command: {sTestSql}" + Environment.NewLine +
                              $"Prediction: {((resultPrediction.Label == "1") ? "Positive" : "Negative")}" + Environment.NewLine;

            txtResult.Text += "=============== End of Predictions ===============" + Environment.NewLine;
        }