コード例 #1
0
 public IEnumerable <StudentPredictionModel> Predict(StudentTrainingModel model)
 {
     foreach (var trainedModel in trainedModels)
     {
         var predictedModel = Predict(trainedModel.Value, model);
         predictedModel.TrainerName = trainedModel.Key;
         yield return(predictedModel);
     }
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: yangyuhaizi/mlnet-trainer
        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);
        }
コード例 #3
0
        public StudentPredictionModel Predict(ITransformer trainedModel, StudentTrainingModel model)
        {
            var engine = trainedModel.CreatePredictionEngine <StudentTrainingModel, StudentPredictionModel>(mlContext);

            return(engine.Predict(model));
        }
コード例 #4
0
 public IActionResult Predict([FromBody] StudentTrainingModel model)
 => Ok(predictionEngine.Predict(model));