Hands-on-Supervised-Machine.../curriculum.docx

32 KiB
Raw Permalink History

<html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang> <head> </head>

https://lh4.googleusercontent.com/YAkJn7VqqmAS8Vv8-JktR7RmdchyEDaNQUZSWUg3c1E1rKm9PSRoZwMP1pBLNrGNZ_sdrzO83F1Kg_RJHQis9STLyEw8TN12v56np9ZB7Qmwb_WAsfmGdxKFLcSFMUnIe-5ZJczX
Hands-on Supervised Machine Learning Algorithms

Learn the underpinnings of many supervised learning algorithms, and develop rich python coding practices in the process.

Supervised learning—help teach a machine to think for itself!

AUTHOR - TAYLOR SMITH

DURATION -

OVERVIEW

Supervised machine learning is used in a wide range of industries across sectors like finance, online advertising, analytics, and its here to stay. Supervised learning allows you to train your system to make price predictions, recommendations, and to make decisions on its own. Understanding the core principles that drive how a machine “learns” is a critical skill for any would-be practitioner or consumer alike.

This course will guide you through the implementation and nuances of many popular supervised machine learning algorithms while facilitating a deep understanding along the way.

You will embark on this journey with a quick course overview of how supervised machine learning differs from unsupervised learning. Next, youll learn about parametric models such as linear and logistic regression, and non-parametric methods such as decision trees & various clustering techniques. As we proceed, you will work hands-on with recommender systems, which are widely used by ecommerce sites to increase user interaction and enrich their shopping experience. Finally, youll wrap up with a brief foray into neural networks and transfer learning.

By the end of the video course, you will be equipped with intimate knowledge of how these algorithms work, and will possess the know-how needed to apply them to new problems.

TARGET AUDIENCE

This course is suitable for developers/aspiring data scientists who want to enter the field of data science & are new to machine learning. Intermediate knowledge of Python is required for the best course experience.

KEY FEATURES

  • Take a deep dive into supervised learning, grasping how a machine “learns” from data

  • Follow detailed and thorough coding examples to implement popular machine learning algorithms from scratch, developing a deep understanding along the way

  • Work your Python muscle! This course will help you grow as a developer by heavily relying some of the most popular scientific and mathematical libraries in the Python language

APPROACH

  1. This course will be a step-by-step guide to understanding complex mathematical concepts in a practical fashion. This video course highlights clean coding techniques, object-oriented class design, and general best practices in machine learning.

  2. Though solutions may exist (i.e., implementations in various other Python libraries), this course adheres to a “learning by doing” pattern.

WHAT WILL YOU LEARN

1) Crack how a machine learns a concept and generalizes its understanding to new data

2) Uncover the fundamental and theoretical differences between parametric and non-parametric models. Distinguish why you might opt for one over the other.

3) Implement and grok several well-known supervised learning algorithms from scratch; build out your github portfolio and show off what youre capable of!

4) Work with model families like recommender systems, which are immediately applicable in domains such as ecommerce and marketing.

5) Expand your expertise using various algorithms like regression, decision trees, clustering and many more to become a much stronger Python developer

6) Build your own models capable of making predictions

7) Delve into some of the most popular topics in machine learning, like neural networks and transfer learning

ABOUT THE AUTHOR -

Taylor smith is a machine learning enthusiast with over five years of experience who loves to apply interesting computational solutions to challenging business problems. Currently working as Principal Data-scientist, Taylor is also an active open-source contributor and staunch pythonista.
LinkedIn and Github profile.

SUMMARY OF CONTENTS

This course will cover several broad families of supervised learning models, introducing you to the concepts and mathematics behind the algorithm before moving on to actually implementing them from scratch in Python.

  1. First steps towards Supervised Learning - In this section, well get up and running with our Anaconda environment and cover the fundamentals of supervised learning, including loss functions and hill climbing.

  2. Implementing parametric models In this section we will discuss parametric models, their pros and cons, and will implement several commonly used algorithms from scratch.

  3. Working with non-parametric models Here well introduce non-parametric models, which come with a whole host of new pros and cons. We will implement several popular non-parametric algorithms.

  4. Advanced topics in supervised ML In this section, well cover more specific, nuanced families of machine learning algorithms such as recommender systems, neural networks and transfer learning.

COURSE ROADMAP

SECTION ONE First steps towards supervised learning

In section 1, well introduce supervised machine learning and how it differs from unsupervised machine learning. Well also discuss the concept of loss functions and hill climbing, as they are central to all machine learning algorithms we will cover in the course.

  • Video 1 Getting our environment setup. In this video, well cover a brief real-world example of machine learning and how it impacts our everyday lives, and then well get up and running with Anaconda and create our development environment for future videos.

  • Video 2 Supervised learning. At this point, were ready to begin with the course material. In this video, we will introduce the definition of supervised machine learning and how it differs from other methods (namely unsupervised).

  • Video 3 Hill climbing & loss functions. At the end of the day, machine learning is simply applied mathematics. This video will cover the optimization functions that are core to machine learning algorithms and how they drive the behavior of various algorithms.

  • Video 4 Model evaluation and data splitting. Though this course is more geared towards the algorithmic “guts” of models, its important we at least acknowledge the importance of data splitting in model development and evaluation so the terminology makes sense throughout the course.

SECTION TWO Implementing parametric models

This section will cover parametric models and their pros/cons. In addition, well implement various models from scratch and introduce various concepts that are crucial to understanding how machine learning works.

  • Video 1 Introduction to parametric models & linear regression. In this video well begin by explaining parametric models, starting with the most simple: linear regression.

  • Video 2 Implementing linear regression from scratch. In this video, we will code a linear regression class from scratch in order to get a better understanding of how it works under the hood.

  • Video 3 Introduction to logistic regression models. Logistic regression is similar in spirit to linear regression, but is used for discrete (i.e., classification) outputs rather than continuous. In this video, well introduce the concept and mathematics behind logistic regression models.

  • Video 4 Implementing logistic regression from scratch. In this lesson, we will code a logistic regression in python to learn how various hyper-parameters affect its ability to learn.

  • Video 5 Parametric models—pros/cons. Here well examine some of the parametric models weve discussed and go over some of their common strengths and weaknesses.

SECTION THREE Working with non-parametric models

Now that weve covered parametric models and some of their pros and cons, its time to consider alternative algorithmic approaches that complement the former.

  • Video 1 The bias/variance trade-off. At the end of section two, we hinted at some weaknesses of parametric models. This video will cover those weaknesses in greater detail while introducing a sliding spectrum of “bias” and “variance” that well reference frequently.

  • Video 2 Introduction to non-parametric models & decision trees. One of the most ubiquitous non-parametric models is a decision tree. In this lesson, well introduce non-parametric models in conjunction with the decision tree and how it works.

  • Video 3 Decision trees part 2. In this video, well begin to explore some code and explain the internal working of decision trees, namely the splitting criteria.

  • Video 4 Implementing a decision tree from scratch. In this lesson we will pick up where we left off in the last video, hand-coding the remainder of the decision tree from scratch.

  • Video 5 Introduction to clustering methods. Another common non-parametric family of models is clustering. We will go over several common methods, honing in on one in particular: k-nearest neighbors.

  • Video 6 Implementing K-nearest neighbors from scratch. Here, well write code for a kNN classifier, per the lesson in video 5.

  • Video 7 Non-parametric models—pros/cons (when to use vs. parametric models). In this video, well summarize the common pros and cons of non-parametric models with respect to how to are impacted by the bias/variance trade-off, etc.

SECTION FOUR Advanced topics in supervised ML

After having learned the difference between parametric and non-parametric models, as well as about the bias/variance trade-off and various other modeling considerations, you might be ready to apply some modeling techniques in the real world. However, there are several applications of machine learning that dont necessarily fit into the aforementioned categories, or that are so specific that they were not included there. In this section, we will cover such topics outside of the context of an entire devoted section.

  • Video 1 Recommender systems & an introduction to collaborative filtering. Recommender systems are a quickly emerging field of study in machine learning. In this lesson, well introduce collaborative filtering (CF) techniques with an emphasis on item-to-item CF.

  • Video 2 Collaborative filtering part 2: matrix factorization. In this video, well introduce a new form of collaborative filtering: matrix completion techniques. Here well cover the motivation and benefits of a factorization approach.

  • Video 3 Collaborative filtering in Python. Well pick up where we left off in the last video, jumping right into a coding example of collaborative filtering, where well design both an item-to-item collaborative filtering recommender as well as an Alternating Least Squares recommendation engine.

  • Video 4 Content-based filtering. Content-based filtering is an alternative to collaborative filtering. In this video, we will cover how content-based methods can supplement collaborative filtering methods.

  • Video 5 Neural networks & “deep learning”. Deep learning is another emerging field in data science and machine learning. Here well cover an introduction to how multilayer perceptrons work at a mathematical level.

  • Video 6 Neural networks part 2. In this video, well continue our exploration of neural networks, coding one from scratch in Python.

  • Video 7 Introduction to transfer learning. Now that weve learned about neural networks, well cover an advanced concept: transfer learning. Though there are libraries that can handle transfer learning elegantly, in this video well demonstrate how to perform transfer learning by hand.

SETUP AND INSTALLATION

Minimum Hardware Requirements

For successful completion of this course, students will require the computer systems with at least the following:

  • OS: Mac OS, Linux or Windows

  • Processor: N/A (any modern processor should be fine)

  • Memory: 4GB memory

  • Storage: 4GB

For an optimal experience with hands-on labs and other practical activities, we recommend the following configuration:

  • OS: Mac OS, Linux or Windows

  • Processor: 2.5GHz+

  • Memory: 16GB

  • Storage: 4GB

Software Requirements

</html>