Skip to content

seckinbeduk/MyFirstMLApplication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyFirstMLApplication

This is my first Machine Learning application with Microsoft.ML

Compiling and run

dotnet build
dotnet run

Machine Learning Codes

using Microsoft.ML;
using Microsoft.ML.Runtime.Api;
using Microsoft.ML.Trainers;
using Microsoft.ML.Transforms;
using System;

namespace myApp
{
  class Program
  {
      // STEP 1: Define your data structures

      // IrisData is used to provide training data, and as 
      // input for prediction operations
      // - First 4 properties are inputs/features used to predict the label
      // - Label is what you are predicting, and is only set when training
      public class IrisData
      {
          [Column("0")]
          public float SepalLength;

          [Column("1")]
          public float SepalWidth;

          [Column("2")]
          public float PetalLength;

          [Column("3")]
          public float PetalWidth;

          [Column("4")]
          [ColumnName("Label")]
          public string Label;
      }

      // IrisPrediction is the result returned from prediction operations
      public class IrisPrediction
      {
          [ColumnName("PredictedLabel")]
          public string PredictedLabels;
      }

      static void Main(string[] args)
      {
          // STEP 2: Create a pipeline and load your data
          var pipeline = new LearningPipeline();

          // If working in Visual Studio, make sure the 'Copy to Output Directory' 
          // property of iris-data.txt is set to 'Copy always'
          string dataPath = "iris-data.txt";
          pipeline.Add(new TextLoader<IrisData>(dataPath, separator: ","));

          // STEP 3: Transform your data
          // Assign numeric values to text in the "Label" column, because only
          // numbers can be processed during model training
          pipeline.Add(new Dictionarizer("Label"));

          // Puts all features into a vector
          pipeline.Add(new ColumnConcatenator("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth"));

          // STEP 4: Add learner
          // Add a learning algorithm to the pipeline. 
          // This is a classification scenario (What type of iris is this?)
          pipeline.Add(new StochasticDualCoordinateAscentClassifier());

          // Convert the Label back into original text (after converting to number in step 3)
          pipeline.Add(new PredictedLabelColumnOriginalValueConverter() { PredictedLabelColumn = "PredictedLabel" });

          // STEP 5: Train your model based on the data set
          var model = pipeline.Train<IrisData, IrisPrediction>();

          // STEP 6: Use your model to make a prediction
          // You can change these numbers to test different predictions
          var prediction = model.Predict(new IrisData()
          {
              SepalLength = 3.3f,
              SepalWidth = 1.6f,
              PetalLength = 0.2f,
              PetalWidth = 5.1f,
          });

          Console.WriteLine($"Predicted flower type is: {prediction.PredictedLabels}");
      }
  }
}
  ```

About

This is my first Machine Learning application with Microsoft.ML

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages