private EstimatorChain <KeyToValueMappingTransformer> BuildAndTrainModel(IDataView trainingDataView, EstimatorChain <ITransformer> pipeline) { var trainer = new SdcaMultiClassTrainer(_mlContext, DefaultColumnNames.Label, DefaultColumnNames.Features); var trainingPipeline = pipeline.Append(trainer) .Append(_mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel")); _trainedModel = trainingPipeline.Fit(trainingDataView); _predEngine = _trainedModel.CreatePredictionEngine <ConformChecker, CheckerPrediction>(_mlContext); var conf = new ConformChecker { Name = "Электронный аукцион" }; var prediction = _predEngine.Predict(conf); SaveModelAsFile(_mlContext, _trainedModel); return(trainingPipeline); }
private void UpdateConformity(DataRowCollection dr, MySqlConnection connect) { foreach (DataRow o in dr) { var idPw = (int)o["id_placing_way"]; var namePw = (string)o["name"]; var singleConf = new ConformChecker { Name = namePw }; var prediction = _predEngine.Predict(singleConf); var res = prediction.Con; var updateConf = $"UPDATE {AppBuilder.Prefix}placing_way SET conformity = @conformity WHERE id_placing_way = @id_placing_way"; var cmd2 = new MySqlCommand(updateConf, connect); cmd2.Prepare(); cmd2.Parameters.AddWithValue("@conformity", res); cmd2.Parameters.AddWithValue("@id_placing_way", idPw); cmd2.ExecuteNonQuery(); Log.Logger($"Add new conformity for {idPw} Name: {namePw} Conformity: {res}"); } }