DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. AI/ML
  4. Machine Learning for .Net Developers Using Visual Studio

Machine Learning for .Net Developers Using Visual Studio

Se how to install an extension to Visual Studio and a Nuget package.

Ajay Kumar Singh user avatar by
Ajay Kumar Singh
·
May. 21, 19 · Tutorial
Like (5)
Save
Tweet
Share
14.54K Views

Join the DZone community and get the full member experience.

Join For Free

To do machine learning, I have been learning Python and R, and learning a new language sometimes takes time and effort (but of course Python is easy).

But I am very happy with the fact that I can also create machine learning applications using my .Net skills. The only extra effort I have to put forth is installing an extension to Visual Studio and a Nuget package. Let's see how to do this.

What we need:

Visual Studio 2017 15.6 or later

What we will build:

We will be creating a machine learning Hello World! app.

Installing Extension:

Download and install the Extension "ML.NET Model Builder."

Let's Start

Once we are done with the extension, let's create a Console App (.Net Core) named myMLApp.

Image title

The above is a simple console solution. Now we make use of the extension. When we right-click the project and click Add, We see an option for machine learning.

Image title

So let's add it. After adding, we get the below model builder.
Image titleChoose Sentiment Analysis (Binary classification) for Now. On the next step, we are asked to add data. The best thing is that it also has the option to add data from SQL Server.
Image titleBut we would choose file and upload the file downloaded from here. The data looks like below

SentimentSentimentText
1  ==RUDE== Dude, you are rude upload that carl picture back, or else.
1  == OK! ==  IM GOING TO VANDALIZE WILD ONES WIKI THEN!!!   

Select "Sentiment" under Column to Predict (Label). After uploading the file, we also see the preview of data.

Now its time to train our model. So we go to the next tab: "Train." This step is simple; you select the time duration you want to train your model for and the model builder will choose the best possible algorithm based on the accuracy. I think that's the best part of it.
Image titleWe can see that the best accuracy for the data we uploaded is 82.35 percent. No, we would also like to evaluate. Below, we can see why the particular algorithm was chosen and we could also increase the time and look for more options. But we'll continue with this for now.
Image titleNow comes the best part where the model builder generates code for us. So we just move to the next tab, "Code," and click "Add Projects." This has added 2 new projects in my solution, as shown below.
Image titleFor now, we can run the myMLAppML.ConsoleApp to try the model. In the above screenshot, we also have the sample code to consume the model.

Let's consume the model:

1. From myMLApp, add reference of "myMLAppML.Model"

2. Install nuget package Microsoft.ML to myMLApp

3. In myMLAppML.Model for the file MLModel.zip set the property "Copy to Output" to "Always"

4. Change the Program.cs Code for myMLApp to the below code

namespace myMLApp
{
class Program
{
static void Main(string[] args)
{
ConsumeModel();
}

public static void ConsumeModel()
{
// Load the model
MLContext mlContext = new MLContext();
ITransformer mlModel = mlContext.Model.Load("MLModel.zip", out var modelInputSchema);
var predEngine = mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel);
// Use the code below to add input data
var input = new ModelInput();
Console.WriteLine("Type your sentiment :");
input.SentimentText = Console.ReadLine();
// Try model on sample data
ModelOutput result = predEngine.Predict(input);
Console.WriteLine("Result=" + result.Prediction);
Console.ReadKey();
}
}
}

Now we can run our project "myMLApp."
Image titleWe're done! I tried to make it simple to understand, but you can also look at the below pages to learn more about it. Enjoy machine learning in .Net.

  • https://dotnet.microsoft.com/learn/machinelearning-ai/ml-dotnet-get-started-tutorial/intro
  • https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet
Machine learning

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Cloud-Native Application Networking
  • Deploying Java Serverless Functions as AWS Lambda
  • GPT-3 Playground: The AI That Can Write for You
  • Java Development Trends 2023

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: