public IEnumerable <StudentPredictionModel> Predict(StudentTrainingModel model) { foreach (var trainedModel in trainedModels) { var predictedModel = Predict(trainedModel.Value, model); predictedModel.TrainerName = trainedModel.Key; yield return(predictedModel); } }
static IEnumerable <StudentTrainingModel> ReadPredictionSamples() { object ConvertValue(string val, Type toType) { if (toType == typeof(float)) { return(Convert.ToSingle(val)); } return(val); } var predictionSamples = new List <StudentTrainingModel>(); using (var fileStream = new FileStream("student-mat-test.txt", FileMode.Open, FileAccess.Read)) { using (var textReader = new StreamReader(fileStream)) { var lineNumber = 0; var line = string.Empty; var columns = new List <string>(); while (!textReader.EndOfStream) { line = textReader.ReadLine(); if (lineNumber == 0) { columns.AddRange(line.Split('\t')); } else { var values = line.Split('\t'); var sample = new StudentTrainingModel(); for (var idx = 0; idx < values.Length; idx++) { var column = columns[idx]; var fieldInfo = typeof(StudentTrainingModel) .GetFields() .FirstOrDefault(x => string.Equals(x.Name, column, StringComparison.InvariantCultureIgnoreCase)); if (fieldInfo != null) { fieldInfo.SetValue(sample, ConvertValue(values[idx], fieldInfo.FieldType)); } } predictionSamples.Add(sample); } lineNumber++; } } } return(predictionSamples); }
public StudentPredictionModel Predict(ITransformer trainedModel, StudentTrainingModel model) { var engine = trainedModel.CreatePredictionEngine <StudentTrainingModel, StudentPredictionModel>(mlContext); return(engine.Predict(model)); }
public IActionResult Predict([FromBody] StudentTrainingModel model) => Ok(predictionEngine.Predict(model));