SlideShare a Scribd company logo
www.DataPlatformGeeks.com | www.SQLServerGeeks.com
@TheDataGeeks | @SQLServerGeeks | admin@DataPlatformGeeks.com
Getting started with ML.Net
Bruno Capuano (@elbruno)
Microsoft AI MVP
Canada Innovation Lead at Avanade
DESKTOP CLOUDWEB MOBILE ML
.NET
IoTGAMING
Your platform for building anything
Windows 10 (Windows Defender)
Power Point (Design Ideas)
Excel (Chart Recommendations)
Bing Ads (Ad Predictions)
+ more
Azure Stream Analytics (Anomaly Detection)
Power BI (Key Influencers)
ML.NET is proven at scale, enterprise ready
Proven & Extensible
Open Source & Cross platform
dot.net/ml
Build your own
Developer Focused
ML.NET is a machine learning framework
made for .NET developers
And many more examples
@ https://github.com/dotnet/machinelearning-samples
Customer segmentation
Recommendations
Predictive maintenance
Forecasting
Issue Classification
Ranking news/topics
Image classification
Sentiment Analysis
Machine Learning scenarios with ML.NET
Easy / Less Control Full Control / Harder
Vision Speech Language
Knowledge SearchLabs
TextAnalyticsAPI client = new TextAnalyticsAPI();
client.AzureRegion = AzureRegions.Westus;
client.SubscriptionKey = "1bf33391DeadFish";
client.Sentiment(
new MultiLanguageBatchInput(
new List<MultiLanguageInput>()
{
new MultiLanguageInput("en","0",
"This is a great vacuum cleaner")
}));
e.g. Sentiment Analysis using Azure Cognitive Services
96% positive
Pre-built machine learning models
Easy / Less Control Full Control / Harder
TextAnalyticsAPI client = new TextAnalyticsAPI();
client.AzureRegion = AzureRegions.Westus;
client.SubscriptionKey = "1bf33391DeadFish";
client.Sentiment(
new MultiLanguageBatchInput(
new List<MultiLanguageInput>()
{
new MultiLanguageInput("en","0",
"This vacuum cleaner sucks so much dirt")
}));
e.g. Sentiment Analysis using Azure Cognitive Services
9% positive
Vision Speech Language
Knowledge SearchLabs
Limitations with pre-built machine learning
models
Easy / Less Control Full Control / Harder
TextAnalyticsAPI client = new TextAnalyticsAPI();
client.AzureRegion = AzureRegions.Westus;
client.SubscriptionKey = "1bf33391DeadFish";
client.Sentiment(
new MultiLanguageBatchInput(
new List<MultiLanguageInput>()
{
new MultiLanguageInput("en","0",
"This vacuum cleaner sucks so much dirt")
}));
e.g. Sentiment Analysis using Azure Cognitive Services
9% positive
Vision Speech Language
Knowledge SearchLabs
Limitations with pre-built machine learning
models
Load Data
Extract
Features
Model
Consumption
Train
Model
Evaluate
Model
Prepare Your Data Build & Train Run
Machine Leaning workflow
Getting Started with Sentiment Analysis
Comment Toxic? (Sentiment)
==RUDE== Dude, you are rude … 1
== OK! == IM GOING TO VANDALIZE … 1
I also found use of the word "humanists” confusing … 0
Oooooh thank you Mr. DietLime … 0
Wikipedia detox data at https://figshare.com/articles/Wikipedia_Talk_Labels_Personal_Attacks/4054689
Features (input) Label (output)
Sentiment Analysis
Is this A or B? Is this a toxic comment?
Yes or no
Sentiment analysis explained
Prepare Your Data
Example
Comment Toxic? (Sentiment)
==RUDE== Dude, you are rude … 1
== OK! == IM GOING TO VANDALIZE … 1
I also found use of the word "humanists” confusing … 0
Oooooh thank you Mr. DietLime … 0
Important concepts: Data
Prepare Your Data
Text Featurizer
Featurized Text
[0.76, 0.65, 0.44, …]
[0.98, 0.43, 0.54, …]
[0.35, 0.73, 0.46, …]
[0.39, 0, 0.75, …]
Example
Text
==RUDE== Dude, you are rude …
== OK! == IM GOING TO VANDALIZE …
I also found use of the word "humanists” …
Oooooh thank you Mr. DietLime …
Important concepts: Transformer
Build & Train
Example
Estimator
Comment Toxic? (Sentiment)
==RUDE== Dude, you … 1
== OK! == IM GOING … 1
I also found use of the … 0
Oooooh thank you Mr. … 0
Important concepts: Estimator
Comment
==RUDE== Dude, you …
Prediction Function
Predicted Label – Toxic? (Sentiment)
1
Run
Example
Important concepts: Prediction Function
Demo: Sentiment Analysis
MakeMagicHappen();
https://www.avanade.com/AI
AutoML and Model Builder
AutoML
Model
Builder
ML.NET Tooling
ML.NET CLI global tool accelerates productivity
How much is the taxi fare for 1 passenger going from Burlington to Toronto?
ML.NET CLI global tool accelerates productivity
AutoML with ML.NET
Criterion
Loss
Min Samples Split
Min Samples Leaf
XYZ
Parameter 1
Parameter 2
Parameter 3
Parameter 4
…
Distance
Trip time
Car type
Passengers
Time of day
…
Gradient Boosted
Nearest Neighbors
SGD
Bayesian Regression
LGBM
…
Distance Gradient Boosted
Model
Car type
Passengers
Getting started w/machine learning can be hard
ML.NET takes the guess work out of data prep,
feature selection & hyperparameter tuning
Which algorithm? Which parameters?Which features?
Getting started w/machine learning can be
hard
N Neighbors
Weights
Metric
P
ZYX
Criterion
Loss
Min Samples Split
Min Samples Leaf
XYZ
Which algorithm? Which parameters?Which features?
Distance
Trip time
Car type
Passengers
Time of day
…
Gradient Boosted
Nearest Neighbors
SGD
Bayesian Regression
LGBM
…
Nearest Neighbors
Model
Iterate
Gradient BoostedDistance
Car brand
Year of make
Car type
Passengers
Trip time
Getting started w/machine learning can be hard
ML.NET takes the guess work out of data prep,
feature selection & hyperparameter tuning
Getting started w/machine learning can be
hard
Which algorithm? Which parameters?Which features?
Iterate
Getting started w/machine learning can be hard
ML.NET takes the guess work out of data prep,
feature selection & hyperparameter tuning
Getting started w/machine learning can be
hard
25%40%70%
25%
95%
25% 25%
25%
25%
40%
40%
40%
40%
70%
70%
70%Enter data
Define goals
Apply constraints
Input Intelligently test multiple models in parallel
Optimized model
95%
ML.NET accelerates model development
70%95% Feature importance
Distance
Trip time
Car type
Passengers
Time of day
0 1
Model B (70%)
Distance
0 1
Trip time
Car type
Passengers
Time of day
Feature importance Model A (95%)
ML.NET accelerates model development
with model explainability
ML.NET accelerates model development
# STEP 1: Load data
IDataView trainingDataView = mlContext.Data.LoadFromTextFile<TaxiTrip>( ... )
IDataView testDataView = mlContext.Data.LoadFromTextFile<TaxiTrip>( ... )
ConsoleHelper.ShowDataViewInConsole(mlContext, trainingDataView)
# STEP 2: Initialize user-defined progress handler that AutoML will invoke after each model
var progressHandler = new RegressionExperimentProgressHandler()
# STEP 3: Run AutoML regression experiment
ExperimentResult<RegressionMetrics> experimentResult = mlContext.Auto()
.CreateRegressionExperiment(ExperimentTime)
.Execute(trainingDataView, LabelColumnName, progressHandler: progressHandler)
PrintTopModels(experimentResult)
# STEP 4: Evaluate the model on test data
RunDetail<RegressionMetrics> best = experimentResult.BestRun
ITransformer trainedModel = best.Model
IDataView predictions = trainedModel.Transform(testDataView)
# STEP 5: Save trained model to a .ZIP file
mlContext.Model.Save(trainedModel, trainingDataView.Schema, ModelPath)
Demo: Auto ML
MakeMagicHappen();
https://www.avanade.com/AI
Try ML.NET today!
http://dot.net/ml
http://aka.ms/mlnetsamples
http://aka.ms/mlnetdocs
http://aka.ms/mlnet
https://aka.ms/mlnetprod
Getting started with ML.Net
Bruno Capuano (@elbruno)
Microsoft AI MVP
Canada Innovation Lead at Avanade

More Related Content

Similar to 2020 01 21 Data Platform Geeks - Machine Learning.Net

OSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine LearningOSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine Learning
Paco Nathan
 
Belladati Meetup Singapore Workshop
Belladati Meetup Singapore WorkshopBelladati Meetup Singapore Workshop
Belladati Meetup Singapore Workshop
belladati
 

Similar to 2020 01 21 Data Platform Geeks - Machine Learning.Net (20)

2021 02 23 MVP Fusion Getting Started with Machine Learning.Net and AutoML
2021 02 23 MVP Fusion Getting Started with Machine Learning.Net and AutoML2021 02 23 MVP Fusion Getting Started with Machine Learning.Net and AutoML
2021 02 23 MVP Fusion Getting Started with Machine Learning.Net and AutoML
 
2020 11 19 MVP Days Israel 2020 - Introduction to Machine Learning.Net and Au...
2020 11 19 MVP Days Israel 2020 - Introduction to Machine Learning.Net and Au...2020 11 19 MVP Days Israel 2020 - Introduction to Machine Learning.Net and Au...
2020 11 19 MVP Days Israel 2020 - Introduction to Machine Learning.Net and Au...
 
Machine Learning Classifiers
Machine Learning ClassifiersMachine Learning Classifiers
Machine Learning Classifiers
 
2019 12 14 Global AI Bootcamp - Auto ML with Machine Learning.Net
2019 12 14 Global AI Bootcamp   - Auto ML with Machine Learning.Net2019 12 14 Global AI Bootcamp   - Auto ML with Machine Learning.Net
2019 12 14 Global AI Bootcamp - Auto ML with Machine Learning.Net
 
Data Workflows for Machine Learning - Seattle DAML
Data Workflows for Machine Learning - Seattle DAMLData Workflows for Machine Learning - Seattle DAML
Data Workflows for Machine Learning - Seattle DAML
 
OSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine LearningOSCON 2014: Data Workflows for Machine Learning
OSCON 2014: Data Workflows for Machine Learning
 
Data Workflows for Machine Learning - SF Bay Area ML
Data Workflows for Machine Learning - SF Bay Area MLData Workflows for Machine Learning - SF Bay Area ML
Data Workflows for Machine Learning - SF Bay Area ML
 
Certification Study Group - NLP & Recommendation Systems on GCP Session 5
Certification Study Group - NLP & Recommendation Systems on GCP Session 5Certification Study Group - NLP & Recommendation Systems on GCP Session 5
Certification Study Group - NLP & Recommendation Systems on GCP Session 5
 
Azure Machine Learning
Azure Machine LearningAzure Machine Learning
Azure Machine Learning
 
201909 Automated ML for Developers
201909 Automated ML for Developers201909 Automated ML for Developers
201909 Automated ML for Developers
 
What’s New with Databricks Machine Learning
What’s New with Databricks Machine LearningWhat’s New with Databricks Machine Learning
What’s New with Databricks Machine Learning
 
Data Analysis - Making Big Data Work
Data Analysis - Making Big Data WorkData Analysis - Making Big Data Work
Data Analysis - Making Big Data Work
 
JoTechies -Azure Machine Learning
JoTechies -Azure Machine LearningJoTechies -Azure Machine Learning
JoTechies -Azure Machine Learning
 
Data engineering design patterns
Data engineering design patternsData engineering design patterns
Data engineering design patterns
 
Integrate the most advanced text analytics into your predictive models - Mean...
Integrate the most advanced text analytics into your predictive models - Mean...Integrate the most advanced text analytics into your predictive models - Mean...
Integrate the most advanced text analytics into your predictive models - Mean...
 
Deep Dive Amazon SageMaker
Deep Dive Amazon SageMakerDeep Dive Amazon SageMaker
Deep Dive Amazon SageMaker
 
Building predictive models in Azure Machine Learning
Building predictive models in Azure Machine LearningBuilding predictive models in Azure Machine Learning
Building predictive models in Azure Machine Learning
 
2024-02-24_Session 1 - PMLE_UPDATED.pptx
2024-02-24_Session 1 - PMLE_UPDATED.pptx2024-02-24_Session 1 - PMLE_UPDATED.pptx
2024-02-24_Session 1 - PMLE_UPDATED.pptx
 
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
 
Belladati Meetup Singapore Workshop
Belladati Meetup Singapore WorkshopBelladati Meetup Singapore Workshop
Belladati Meetup Singapore Workshop
 

More from Bruno Capuano

More from Bruno Capuano (20)

Let's code a drone to follow faces using Python 🐍
Let's code a drone to follow faces using Python 🐍Let's code a drone to follow faces using Python 🐍
Let's code a drone to follow faces using Python 🐍
 
Using Azure IoT to feed my squirrels ️
Using Azure IoT to feed my squirrels ️Using Azure IoT to feed my squirrels ️
Using Azure IoT to feed my squirrels ️
 
2021 12 01 Global XR Conference - My experiences adapting a Digital Twin WebG...
2021 12 01 Global XR Conference - My experiences adapting a Digital Twin WebG...2021 12 01 Global XR Conference - My experiences adapting a Digital Twin WebG...
2021 12 01 Global XR Conference - My experiences adapting a Digital Twin WebG...
 
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
Global AI on Virtual Tour Oslo - Anomaly Detection using ML.Net on a drone te...
 
2021 04 21 Azure Sydney User Group - Scaling a POC to an Enterprise using Azu...
2021 04 21 Azure Sydney User Group - Scaling a POC to an Enterprise using Azu...2021 04 21 Azure Sydney User Group - Scaling a POC to an Enterprise using Azu...
2021 04 21 Azure Sydney User Group - Scaling a POC to an Enterprise using Azu...
 
2021 02 13 CodeGen Verona - Let’s code a drone to follow faces syncing everyt...
2021 02 13 CodeGen Verona - Let’s code a drone to follow faces syncing everyt...2021 02 13 CodeGen Verona - Let’s code a drone to follow faces syncing everyt...
2021 02 13 CodeGen Verona - Let’s code a drone to follow faces syncing everyt...
 
2020 10 22 AI Fundamentals - Azure Machine Learning
2020 10 22 AI Fundamentals - Azure Machine Learning2020 10 22 AI Fundamentals - Azure Machine Learning
2020 10 22 AI Fundamentals - Azure Machine Learning
 
2020 08 06 Global XR Talks - Lessons Learned creating a multiplatform AI proj...
2020 08 06 Global XR Talks - Lessons Learned creating a multiplatform AI proj...2020 08 06 Global XR Talks - Lessons Learned creating a multiplatform AI proj...
2020 08 06 Global XR Talks - Lessons Learned creating a multiplatform AI proj...
 
2020 06 27 Global AI On Tour Virtual GTA
2020 06 27 Global AI On Tour Virtual GTA2020 06 27 Global AI On Tour Virtual GTA
2020 06 27 Global AI On Tour Virtual GTA
 
2020 06 13 Best of Build 2020 - Canada Community Edition - Artificial Intelli...
2020 06 13 Best of Build 2020 - Canada Community Edition - Artificial Intelli...2020 06 13 Best of Build 2020 - Canada Community Edition - Artificial Intelli...
2020 06 13 Best of Build 2020 - Canada Community Edition - Artificial Intelli...
 
Global Azure AI Tour Buenos Aires Argentina, Drones and AI
Global Azure AI Tour Buenos Aires Argentina, Drones and AIGlobal Azure AI Tour Buenos Aires Argentina, Drones and AI
Global Azure AI Tour Buenos Aires Argentina, Drones and AI
 
2020 04 18 Global AI On Tour Monterrey - Program a Drone using AI
2020 04 18 Global AI On Tour Monterrey - Program a Drone using AI2020 04 18 Global AI On Tour Monterrey - Program a Drone using AI
2020 04 18 Global AI On Tour Monterrey - Program a Drone using AI
 
2020 04 09 Global AI Community Virtual Tour - Drones and AI
2020 04 09 Global AI Community Virtual Tour - Drones and AI2020 04 09 Global AI Community Virtual Tour - Drones and AI
2020 04 09 Global AI Community Virtual Tour - Drones and AI
 
2019 11 26 BotTO November 2019 Meetup at TD
2019 11 26 BotTO November 2019 Meetup at TD2019 11 26 BotTO November 2019 Meetup at TD
2019 11 26 BotTO November 2019 Meetup at TD
 
2019 10 27 Everyday Artificial Intelligence @ Hack4Heritage
2019 10 27 Everyday Artificial Intelligence @ Hack4Heritage2019 10 27 Everyday Artificial Intelligence @ Hack4Heritage
2019 10 27 Everyday Artificial Intelligence @ Hack4Heritage
 
2019 05 23 Visual Studio 2019 Launch at mississauga - Machine Learning.Net
2019 05 23 Visual Studio 2019 Launch at mississauga - Machine Learning.Net2019 05 23 Visual Studio 2019 Launch at mississauga - Machine Learning.Net
2019 05 23 Visual Studio 2019 Launch at mississauga - Machine Learning.Net
 
2019 05 11 Chicago Codecamp - Deep Learning for everyone? Challenge Accepted!
2019 05 11 Chicago Codecamp - Deep Learning for everyone? Challenge Accepted!2019 05 11 Chicago Codecamp - Deep Learning for everyone? Challenge Accepted!
2019 05 11 Chicago Codecamp - Deep Learning for everyone? Challenge Accepted!
 
2019 04 27 global azure bootcamp Machine Learning.Net
2019 04 27 global azure bootcamp Machine Learning.Net2019 04 27 global azure bootcamp Machine Learning.Net
2019 04 27 global azure bootcamp Machine Learning.Net
 
2019 04 02 Global AI Night
2019 04 02 Global AI Night2019 04 02 Global AI Night
2019 04 02 Global AI Night
 
2019 02 27 How to earn an MVP Awards and what are the benefits
2019 02 27 How to earn an MVP Awards and what are the benefits2019 02 27 How to earn an MVP Awards and what are the benefits
2019 02 27 How to earn an MVP Awards and what are the benefits
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 

2020 01 21 Data Platform Geeks - Machine Learning.Net

  • 1. www.DataPlatformGeeks.com | www.SQLServerGeeks.com @TheDataGeeks | @SQLServerGeeks | admin@DataPlatformGeeks.com Getting started with ML.Net Bruno Capuano (@elbruno) Microsoft AI MVP Canada Innovation Lead at Avanade
  • 2. DESKTOP CLOUDWEB MOBILE ML .NET IoTGAMING Your platform for building anything
  • 3. Windows 10 (Windows Defender) Power Point (Design Ideas) Excel (Chart Recommendations) Bing Ads (Ad Predictions) + more Azure Stream Analytics (Anomaly Detection) Power BI (Key Influencers) ML.NET is proven at scale, enterprise ready
  • 4. Proven & Extensible Open Source & Cross platform dot.net/ml Build your own Developer Focused ML.NET is a machine learning framework made for .NET developers
  • 5. And many more examples @ https://github.com/dotnet/machinelearning-samples Customer segmentation Recommendations Predictive maintenance Forecasting Issue Classification Ranking news/topics Image classification Sentiment Analysis Machine Learning scenarios with ML.NET
  • 6. Easy / Less Control Full Control / Harder Vision Speech Language Knowledge SearchLabs TextAnalyticsAPI client = new TextAnalyticsAPI(); client.AzureRegion = AzureRegions.Westus; client.SubscriptionKey = "1bf33391DeadFish"; client.Sentiment( new MultiLanguageBatchInput( new List<MultiLanguageInput>() { new MultiLanguageInput("en","0", "This is a great vacuum cleaner") })); e.g. Sentiment Analysis using Azure Cognitive Services 96% positive Pre-built machine learning models
  • 7. Easy / Less Control Full Control / Harder TextAnalyticsAPI client = new TextAnalyticsAPI(); client.AzureRegion = AzureRegions.Westus; client.SubscriptionKey = "1bf33391DeadFish"; client.Sentiment( new MultiLanguageBatchInput( new List<MultiLanguageInput>() { new MultiLanguageInput("en","0", "This vacuum cleaner sucks so much dirt") })); e.g. Sentiment Analysis using Azure Cognitive Services 9% positive Vision Speech Language Knowledge SearchLabs Limitations with pre-built machine learning models
  • 8. Easy / Less Control Full Control / Harder TextAnalyticsAPI client = new TextAnalyticsAPI(); client.AzureRegion = AzureRegions.Westus; client.SubscriptionKey = "1bf33391DeadFish"; client.Sentiment( new MultiLanguageBatchInput( new List<MultiLanguageInput>() { new MultiLanguageInput("en","0", "This vacuum cleaner sucks so much dirt") })); e.g. Sentiment Analysis using Azure Cognitive Services 9% positive Vision Speech Language Knowledge SearchLabs Limitations with pre-built machine learning models
  • 10. Getting Started with Sentiment Analysis
  • 11. Comment Toxic? (Sentiment) ==RUDE== Dude, you are rude … 1 == OK! == IM GOING TO VANDALIZE … 1 I also found use of the word "humanists” confusing … 0 Oooooh thank you Mr. DietLime … 0 Wikipedia detox data at https://figshare.com/articles/Wikipedia_Talk_Labels_Personal_Attacks/4054689 Features (input) Label (output) Sentiment Analysis
  • 12. Is this A or B? Is this a toxic comment? Yes or no Sentiment analysis explained
  • 13. Prepare Your Data Example Comment Toxic? (Sentiment) ==RUDE== Dude, you are rude … 1 == OK! == IM GOING TO VANDALIZE … 1 I also found use of the word "humanists” confusing … 0 Oooooh thank you Mr. DietLime … 0 Important concepts: Data
  • 14. Prepare Your Data Text Featurizer Featurized Text [0.76, 0.65, 0.44, …] [0.98, 0.43, 0.54, …] [0.35, 0.73, 0.46, …] [0.39, 0, 0.75, …] Example Text ==RUDE== Dude, you are rude … == OK! == IM GOING TO VANDALIZE … I also found use of the word "humanists” … Oooooh thank you Mr. DietLime … Important concepts: Transformer
  • 15. Build & Train Example Estimator Comment Toxic? (Sentiment) ==RUDE== Dude, you … 1 == OK! == IM GOING … 1 I also found use of the … 0 Oooooh thank you Mr. … 0 Important concepts: Estimator
  • 16. Comment ==RUDE== Dude, you … Prediction Function Predicted Label – Toxic? (Sentiment) 1 Run Example Important concepts: Prediction Function
  • 18. AutoML and Model Builder
  • 19. AutoML Model Builder ML.NET Tooling ML.NET CLI global tool accelerates productivity
  • 20. How much is the taxi fare for 1 passenger going from Burlington to Toronto? ML.NET CLI global tool accelerates productivity AutoML with ML.NET
  • 21. Criterion Loss Min Samples Split Min Samples Leaf XYZ Parameter 1 Parameter 2 Parameter 3 Parameter 4 … Distance Trip time Car type Passengers Time of day … Gradient Boosted Nearest Neighbors SGD Bayesian Regression LGBM … Distance Gradient Boosted Model Car type Passengers Getting started w/machine learning can be hard ML.NET takes the guess work out of data prep, feature selection & hyperparameter tuning Which algorithm? Which parameters?Which features? Getting started w/machine learning can be hard
  • 22. N Neighbors Weights Metric P ZYX Criterion Loss Min Samples Split Min Samples Leaf XYZ Which algorithm? Which parameters?Which features? Distance Trip time Car type Passengers Time of day … Gradient Boosted Nearest Neighbors SGD Bayesian Regression LGBM … Nearest Neighbors Model Iterate Gradient BoostedDistance Car brand Year of make Car type Passengers Trip time Getting started w/machine learning can be hard ML.NET takes the guess work out of data prep, feature selection & hyperparameter tuning Getting started w/machine learning can be hard
  • 23. Which algorithm? Which parameters?Which features? Iterate Getting started w/machine learning can be hard ML.NET takes the guess work out of data prep, feature selection & hyperparameter tuning Getting started w/machine learning can be hard
  • 24. 25%40%70% 25% 95% 25% 25% 25% 25% 40% 40% 40% 40% 70% 70% 70%Enter data Define goals Apply constraints Input Intelligently test multiple models in parallel Optimized model 95% ML.NET accelerates model development
  • 25. 70%95% Feature importance Distance Trip time Car type Passengers Time of day 0 1 Model B (70%) Distance 0 1 Trip time Car type Passengers Time of day Feature importance Model A (95%) ML.NET accelerates model development with model explainability ML.NET accelerates model development
  • 26. # STEP 1: Load data IDataView trainingDataView = mlContext.Data.LoadFromTextFile<TaxiTrip>( ... ) IDataView testDataView = mlContext.Data.LoadFromTextFile<TaxiTrip>( ... ) ConsoleHelper.ShowDataViewInConsole(mlContext, trainingDataView) # STEP 2: Initialize user-defined progress handler that AutoML will invoke after each model var progressHandler = new RegressionExperimentProgressHandler() # STEP 3: Run AutoML regression experiment ExperimentResult<RegressionMetrics> experimentResult = mlContext.Auto() .CreateRegressionExperiment(ExperimentTime) .Execute(trainingDataView, LabelColumnName, progressHandler: progressHandler) PrintTopModels(experimentResult) # STEP 4: Evaluate the model on test data RunDetail<RegressionMetrics> best = experimentResult.BestRun ITransformer trainedModel = best.Model IDataView predictions = trainedModel.Transform(testDataView) # STEP 5: Save trained model to a .ZIP file mlContext.Model.Save(trainedModel, trainingDataView.Schema, ModelPath)
  • 29. Getting started with ML.Net Bruno Capuano (@elbruno) Microsoft AI MVP Canada Innovation Lead at Avanade

Editor's Notes

  1. .NET is a great tech stack for building a wide variety of applications. There is ASP.NET for web development, Xamarin for mobile development and with ML.NET we are trying to make .NET great for Machine Learning.
  2. Even though we just recently released ML.NET at Build this year, ML.NET has been used at Microsoft heavily for over a decade by iconic MS products. Bing Ads uses ML.NET for add-click predictions Excel uses ML.NET for chart recommendations PowerPoint uses ML.NET for Design Ideas Windows10 uses ML.NET for Windows Defender
  3. 4
  4. 5
  5. 6
  6. 7
  7. 8
  8. 9
  9. 11
  10. 13
  11. 14
  12. 15
  13. 16
  14. ML.NET provides tooling that makes it easy to use. In particular, 2 really valuable tools are: AutoML and Model Builder What is AutoML? It is an API that accelerates model development for you. A lot of developers do not have the experience required to build or train Machine Learning models. With AutoML, the process of finding the best algorithm, is automated! Model Builder on the other hand provides an easy to understand visual interface to build, train, and deploy custom machine learning models. Prior machine learning expertise is not required. It also supports AutoML Rememeber depending on your data, giving you the error of each of the models and you can then decide which model to use. Most people just use the model with the least error. And we will see it in action soon.
  15. To demonstrate what AutoML is, let’s consider that we want to provide a service that allows users to predict taxi fare before they book or call a taxi. How can we build this feature/service?
  16. A data scientist’s job is to find the best algorithm that will do taxi fare prediction. Let’s says we have a dataset that contains information such as trip distance, trip time, number of passengers, time of day of the trip etc. A data scientist will spend a lot of time trying to decide which of these pieces of information is important when predicting taxi fare. In ML, there are so many algorithms and are generally referred to as trainers, for example linear regression, convolutional neural network etc The data scientist will try one algorithm at a time, picking features as he desires, and then wait to see how the model performs. In this case, this model only scored 30% based on number of bad predictions it made.
  17. Microsoft Envision 2016
  18. Microsoft Envision 2016
  19. Microsoft Envision 2016
  20. 25
  21. ML.NET is an end to end solution for your Machine Learning needs. The steps taken: We loaded data, which we already do! We initialized a progress handler which would help track each model tried! We then ran AutoML which tried many different models and returned back to us the top models! We picked the best preforming model and evaluated it on test data! Finally, we saved the model for future use. Very few lines of code needed. No model building expertise is needed. There’s throurough documentation on the ML.NET site and there also many samples provided – you might find what you need there and code provided to you.