ML.NET Revealed: Simple Tools for Applying Machine Learning to Your Applications
()
About this ebook
Get introduced to ML.NET, a new open source, cross-platform machine learning framework from Microsoft that is intended to democratize machine learning and enable as many developers as possible.
Dive in to learn how ML.NET is designed to encapsulate complex algorithms, making it easy to consume them in many application settings without having to think about the internal details. You will learn about the features that do the necessary “plumbing” that is required in a variety of machine learning problems, freeing up your time to focus on your applications. You will understand that while the infrastructure pieces may at first appear to be disconnected and haphazard, they are not.
Developers who are curious about trying machine learning, yet are shying away from it due to its perceived complexity, will benefit from this book. This introductory guide will help you make sense of it all and inspire you to try outscenarios and code samples that can be used in many real-world situations.
What You Will Learn
- Create a machine learning model using only the C# language
- Build confidence in your understanding of machine learning algorithms
- Painlessly implement algorithms
- Begin using the ML.NET library software
- Recognize the many opportunities to utilize ML.NET to your advantage
- Apply and reuse code samples from the book
- Utilize the bonus algorithm selection quick references available online
Who This Book Is For
Developers who want to learn how to use and apply machine learning to enrich their applications
Related to ML.NET Revealed
Related ebooks
Machine Learning for Beginners: An Introduction for Beginners, Why Machine Learning Matters Today and How Machine Learning Networks, Algorithms, Concepts and Neural Networks Really Work Rating: 4 out of 5 stars4/5Generating a New Reality: From Autoencoders and Adversarial Networks to Deepfakes Rating: 0 out of 5 stars0 ratingsLeadership & Self-Worth: A Tech Nerd's Guide Rating: 0 out of 5 stars0 ratingsPractical Machine Learning in JavaScript: TensorFlow.js for Web Developers Rating: 0 out of 5 stars0 ratingsPragmatic Machine Learning with Python: Learn How to Deploy Machine Learning Models in Production Rating: 0 out of 5 stars0 ratingsPractical Computer Vision Applications Using Deep Learning with CNNs: With Detailed Examples in Python Using TensorFlow and Kivy Rating: 0 out of 5 stars0 ratingsMachine Learning with PySpark: With Natural Language Processing and Recommender Systems Rating: 0 out of 5 stars0 ratingsDeep Learning with Keras: Beginner’s Guide to Deep Learning with Keras Rating: 3 out of 5 stars3/5Deploy Machine Learning Models to Production: With Flask, Streamlit, Docker, and Kubernetes on Google Cloud Platform Rating: 0 out of 5 stars0 ratingsPractical Full Stack Machine Learning: A Guide to Build Reliable, Reusable, and Production-Ready Full Stack ML Solutions Rating: 0 out of 5 stars0 ratingsA Practical Approach for Machine Learning and Deep Learning Algorithms: Tools and Techniques Using MATLAB and Python Rating: 0 out of 5 stars0 ratingsHands-on ML Projects with OpenCV: Master computer vision and Machine Learning using OpenCV and Python (English Edition) Rating: 0 out of 5 stars0 ratingsHands-on ML Projects with OpenCV Rating: 0 out of 5 stars0 ratingsApplied Deep Learning: A Case-Based Approach to Understanding Deep Neural Networks Rating: 0 out of 5 stars0 ratingsBuilding Chatbots with Python: Using Natural Language Processing and Machine Learning Rating: 0 out of 5 stars0 ratingsExpert T-SQL Window Functions in SQL Server 2019: The Hidden Secret to Fast Analytic and Reporting Queries Rating: 0 out of 5 stars0 ratingsDeep Learning: Computer Vision, Python Machine Learning And Neural Networks Rating: 0 out of 5 stars0 ratingsDeep learning: deep learning explained to your granny – a guide for beginners Rating: 3 out of 5 stars3/5An Introduction to Machine Learning Rating: 0 out of 5 stars0 ratingsApplied Machine Learning Solutions with Python: SOLUTIONS FOR PYTHON, #1 Rating: 0 out of 5 stars0 ratingsPractical MATLAB: With Modeling, Simulation, and Processing Projects Rating: 0 out of 5 stars0 ratingsPractical TensorFlow.js: Deep Learning in Web App Development Rating: 0 out of 5 stars0 ratingsBeginning Machine Learning in iOS: CoreML Framework Rating: 0 out of 5 stars0 ratingsMachine Learning For Beginners Guide Algorithms: Supervised & Unsupervsied Learning. Decision Tree & Random Forest Introduction Rating: 0 out of 5 stars0 ratingsMastering Clojure Rating: 0 out of 5 stars0 ratings
Programming For You
Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Python Machine Learning By Example Rating: 4 out of 5 stars4/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Hacking: Ultimate Beginner's Guide for Computer Hacking in 2018 and Beyond: Hacking in 2018, #1 Rating: 4 out of 5 stars4/5Programming Arduino: Getting Started with Sketches Rating: 4 out of 5 stars4/5A Slackers Guide to Coding with Python: Ultimate Beginners Guide to Learning Python Quick Rating: 0 out of 5 stars0 ratingsPYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Mastering Windows PowerShell Scripting Rating: 4 out of 5 stars4/5Hacking Essentials - The Beginner's Guide To Ethical Hacking And Penetration Testing Rating: 3 out of 5 stars3/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 0 out of 5 stars0 ratingsSQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5How to Learn PHP, MySQL and Javascript Quickly!: For Dummies Rating: 5 out of 5 stars5/5Python QuickStart Guide: The Simplified Beginner's Guide to Python Programming Using Hands-On Projects and Real-World Applications Rating: 0 out of 5 stars0 ratingsPython: Learn Python in 24 Hours Rating: 4 out of 5 stars4/5
Reviews for ML.NET Revealed
0 ratings0 reviews
Book preview
ML.NET Revealed - Sudipta Mukherjee
© Sudipta Mukherjee 2021
S. MukherjeeML.NET Revealedhttps://doi.org/10.1007/978-1-4842-6543-7_1
1. Meet ML.NET
Sudipta Mukherjee¹
(1)
Bangalore, India
../images/489446_1_En_1_Chapter/489446_1_En_1_Figa_HTML.gifMachine learning is nothing but a means of enabling the computer to have a sophisticated sense of proximity between several things. Let me elaborate that point for you with a few examples. Human vision is very advanced. So much so that we hardly realize what is going on in our brain when we recognize something. For example, do you think about the complex processes running in your brain when you read a handwritten note and recognize that is a letter a
? Consider the pictures of the letter a
in Figure 1-1.
Figure 1-1
a
written in multiple fonts
We recognize each of these as the letter a
because although they look different, they are within a permissible range of proximity from the ideal
(if you will) a
that we were taught in our childhood. Teaching a computer to recognize things is no different. We must provide the algorithm several examples with labels, and eventually the algorithm will start to spot similar things with better results. This approach is called supervised learning and will be explained in more detail in further chapters.
Figure 1-2
Different types of wooden shapes
Another type of learning that we develop without realizing is the capability of segregating things (also known as clustering ) without much input from outside. For example, if you present the shapes shown in Figure 1-2 to a toddler and tell them to determine how many different types of things are there, the answer will be 6. I urge you to look at the picture and determine the number yourself. The problem of this is you know the result, but how did you arrive at that is difficult to convey. This makes me remember this great quote (Figure 1-3).
../images/489446_1_En_1_Chapter/489446_1_En_1_Fig3_HTML.jpgFigure 1-3
Quotation of Lord Kelvin
Throughout the book, we will consider more examples like this where the task will be to identify different types of things automatically without being told how many there are. The task they have in common is that these sorts of questions don’t have a correct answer known ahead of time (e.g., how many different shapes are there). This is known as unsupervised learning.
For the first group, you can think of it like a class with pupils and a teacher that is asking questions and telling the kids if they are correct or not. And that’s why it is called Supervised.
In the second case, we don’t know the answer – we don’t have a supervisor.
There is another kind of learning that is reinforced by the experience of good and bad outcomes of the tasks performed. Do you remember how you learned to walk? Can you teach a baby or a robot to walk? We learn to walk because our brain had been continuously taking cues from the bad and good steps we took. Teaching a computer to do similar things is similar. All we must do is provide the computer with several opportunities to do mistakes and learn from the outcomes. Good outcomes will reinforce the belief of the algorithm that the steps taken were good, and bad outcomes will reinforce the fact that the steps taken were bad and therefore advisable to avoid. This type of learning is called reinforcement learning
in machine learning literature. This is a little hard to follow along just by reading text. This is something to feel. I urge you to watch this video of a robotic arm throwing objects: www.youtube.com/watch?v=JJlSgm9OByM.
Abstraction matters
What is your favorite concept in object-oriented programming? Mine is abstraction . A good abstraction makes everything look easy. Achieving good abstraction over complex things/domains like machine learning, for example, is very hard because identifying which part would be a great choice for a building block is difficult at best and impossible at worst; but ML.NET does a great job striking a balance.
Note
As you know, this book is about ML.NET, Microsoft’s new ML framework for .NET developers released in 2019. It allows developers to enhance their application with ML capabilities, but the best thing about it is that you don't need to learn data science and math to be able to use it.
ML.NET democratizes machine learning by bringing it to .NET developers who have been developing line-of-business applications for enterprises, web pages, applications, and what-have-you since ages and now facing the challenge to solve machine learning problems because enterprises have gargantuan amount of data and they want their existing staff to help them turn these data into actionable insights – fast. It’s a tall order. Not an easy task at all, but a good framework like ML.NET can help.
ML.NET encapsulates machine learning algorithms such that most of the time using the algorithm merely becomes calling a function. This can seem to be an oversimplification , but this makes it easy for developers who don’t really need to understand how the algorithm works internally, to consume the algorithm, thereby removing/reducing the barrier of entry – if you will, into the machine learning arena. Using an algorithm and assessing its performance based on some preset matrices is one thing, and understanding how the algorithm works internally is a completely different thing. For the most part, however, it is enough for developers to know how to use an algorithm and how to measure its performance for the task at hand, so that the parameters can be changed for optimization and they (developers) can do away with requiring to acquire the knowledge of really understanding what goes under the