- How to configure your computer for machine learning tasks
- How to configure your computer for local machine learning tasks
- Getting used to working with Jupyter notebooks
- An introduction to Scikit-Learn, including installation
- An introduction to Scikit-Learn, including installation
- Some tips on working with Python for ML
## Installations and Configurations
### Prerequisite
[](https://youtu.be/7EXd4_ttIuw "Using Python with Visual Studio Code")
> Click this image to watch a video on using Python within VS Code.
1. Ensure that [Python](https://www.python.org/downloads/) is also installed on your computer. You will use Python for many data science and machine learning tasks. Most computer systems already include a Python installation. Some usages of Python, however, require one version of the software, whereas others require a different version. For this reason, it's useful to work within a virtual environment, or VM. There are useful [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers) available for Windows and ready for integration with VS Code.
1. Ensure that [Python](https://www.python.org/downloads/) is installed on your computer. You will use Python for many data science and machine learning tasks. Most computer systems already include a Python installation. There are useful [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers) available as well to ease the setup for some users. Some usages of Python, however, require one version of the software, whereas others require a different version. For this reason, it's useful to work within a virtual environment.
2. Make sure you have Visual Studio Code installed on your computer. Follow [these instructions](https://code.visualstudio.com/) for the basic installation. You are going to use Python in Visual Studio Code in this course, so you might want to brush up on how to [configure](https://docs.microsoft.com/en-us/learn/modules/python-install-vscode/) VS Code for Python development.
2. Make sure you have Visual Studio Code installed on your computer. Follow [these instructions](https://code.visualstudio.com/) for the basic installation. You are going to use Python in Visual Studio Code in this course, so you might want to brush up on how to [configure](https://docs.microsoft.com/learn/modules/python-install-vscode/) VS Code for Python development.
> Get comfortable with Python by working through this collection of [Learn modules]()
> Get comfortable with Python by working through this collection of [Learn modules](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7)
3. Install Scikit-Learn (pronounce it `sci` as in `science`). Follow [these instructions](https://scikit-learn.org/stable/install.html). Since you need to ensure that you use Python 3, it's recommended that you use a pip virtual environment.
3. Install Scikit-Learn by following [these instructions](https://scikit-learn.org/stable/install.html). Since you need to ensure that you use Python 3, it's recommended that you use a virtual environment.
### Preparation
## Jupyter Notebooks
You are going to use **notebooks** to develop your Python code and create machine learning models. This type of file is a common tool for data scientists, and they can be identified by their suffix `.ipynb`.
You are going to use **notebooks** to develop your Python code and create machine learning models. This type of file is a common tool for data scientists, and they can be identified by their suffix `.ipynb`.
Notebooks are an interactive environment that allow the developer to both code and add notes and documentation around the code.
Notebooks are an interactive environment that allow the developer to both code and add notes and documentation around the code.
### Work with Your Notebook
### Work with A Notebook
In this folder, you will find the file `notebook.ipynb`. If you open it in VS Code, assuming VS Code is properly configured, a Jupyter server will start with Python 3+ started. You will find areas of the notebook that can be 'run' by pressing arrows next to code blocks, and other areas that contain text.
In your notebook, add a comment. To do this, click the 'md' icon and add a bit of markdown, like `# Welcome to your notebook`.
Next, add some Python code: Type `print('hello notebook')` and click the arrow to run the code. You should see the printed statement, 'hello notebook'.

You can interleaf your code with comments to self-document the notebook.
✅ Think for a minute how different a web developer's working environment is versus that of a data scientist.
## Up and Running with Scikit-Learn
Now that Python is set up in your local environment and you are comfortable with Jupyter notebooks, let's get equally comfortable with Scikit-Learn (pronounce it `sci` as in `science`).
According to their [website](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn is an open source machine learning library that supports supervised and unsupervised learning. It also provides various tools for model fitting, data preprocessing, model selection and evaluation, and many other utilities."
Let's unpack some of this jargon:
> 🎓 A machine learning **model**
> 🎓 **[Supervised Learning](https://en.wikipedia.org/wiki/Supervised_learning)** works by mapping an input to an output based on example pairs. It uses **labeled** training data to build a function to make predictions. [Download a printable Zine about Supervised Learning](https://zines.jenlooper.com/zines/supervisedlearning.html). Regression, which is covered in this group of lessons, is a type of supervised learning.
> 🎓 [Unsupervised Learning](https://en.wikipedia.org/wiki/Unsupervised_learning) works similarly but it maps pairs using **unlabeled data**. [Download a printable Zine about Supervised Learning](https://zines.jenlooper.com/zines/unsupervisedlearning.html)
> 🎓 **Model Fitting** in the context of machine learning refers to the accuracy of the model's underlying function as it attempts to analyze data with which it is not familiar. **Underfitting** and **overfitting** are common problems that degrade the quality of the model as the model fits either not well enough or too well. This causes the model to make predictions either too closely aligned or too loosely aligned with its training data. An overfit model predicts training data too well because it has learned the data's details and noise too well. An underfit model is not accurate as it can neither accurately analyze its training data nor data it has not yet 'seen'.
> 🎓 **Data Preprocessing** is the process whereby data scientists clean and convert data for use in the machine learning lifecycle.
> 🎓 **Model Selection and Evaluation** is the process whereby data scientists evaluate the accuracy of a model by feeding it unseen data, selecting the most appropriate model for the task at hand.
In this folder, you will find the file `notebook.ipynb`. If you open it in VS Code, assuming VS Code is properly configured, a Jupyter server will start with Python 3+ started.
In this course, you will use Scikit-Learn and other tools to build machine learning models to perform what we call 'traditional machine learning' tasks. We have deliberately avoided neural networks and deep learning, as they are better covered in our forthcoming 'AI and ML' curriculum.
In your notebook, add a comment. To do this, click the 'md' icon and add a bit of markdown, like `# My First Notebook`.
Scikit-Learn makes is straightforward to build models and evaluate them for use.
Next, add some Python code: Type `print('hi')` and click the arrow to run the code. You should see the printed statement, 'hi'.
✅ Knowledge Check - think for a minute how different a web developer's working environment is versus that of a data scientist.
## Scikit-Learn
Now that you are comfortable with Jupyter notebooks and Python in your local environment, let's get equally comfortable with scikit-learn.
## [Topic 3]
🚀 Challenge: Add a challenge for students to work on collaboratively in class to enhance the project
🚀 Challenge: Add a challenge for students to work on collaboratively in class to enhance the project
@ -23,12 +23,12 @@ Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson cur
- Start with a pre-lecture quiz
- Start with a pre-lecture quiz
- Read the lecture and complete the activities, pausing and reflecting at each knowledge check.
- Read the lecture and complete the activities, pausing and reflecting at each knowledge check.
- Try to create the projects by comprehending the lessons rather than copying the solution code; however that code is available in the `/solutions` folders in each project-oriented lesson.
- Try to create the projects by comprehending the lessons rather than copying the solution code; however that code is available in the `/solution` folders in each project-oriented lesson.
- Take the post-lecture quiz
- Take the post-lecture quiz
- Complete the challenge
- Complete the challenge
- Complete the assignment
- Complete the assignment
- Consider forming a study group with friends and go through the content together.
- Consider forming a study group with friends and go through the content together.
- For further study, we recommend [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) and by watching the videos mentioned below.
- For further study, we recommend following [Microsoft Learn](https://docs.microsoft.com?WT.mc_id=academic-15963-cxa) modules and learning paths.
@ -56,35 +56,35 @@ By ensuring that the content aligns with projects, the process is made more enga
- assignment
- assignment
- post-lesson quiz
- post-lesson quiz
> **A note about quizzes**: All quizzes are contained [in this app](link a quiz app here), for 48 total quizzes of three questions each. They are linked from within the lessons but the quiz app can be run locally; follow the instruction in the `quiz-app` folder.
> **A note about quizzes**: All quizzes are contained [in this app](https://jolly-sea-0a877260f.azurestaticapps.net), for 48 total quizzes of three questions each. They are linked from within the lessons but the quiz app can be run locally; follow the instruction in the `quiz-app` folder.
| 02 | [Introduction](1-Introduction/README.md) | The History of Machine Learning | Learn the history underlying this field | [lesson](1-Introduction/2-history-of-ML/README.md) | Amy |
| 02 | [Introduction](1-Introduction/README.md) | The History of Machine Learning | Learn the history underlying this field | [lesson](1-Introduction/2-history-of-ML/README.md) | Amy |
| 03 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Get started with Python and Scikit-Learn for Regression models | [lesson](2-Regression/1-Tools/README.md) | Jen |
| 03 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Get started with Python and Scikit-Learn for Regression models | [lesson](2-Regression/1-Tools/README.md) | Jen |
| 04 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](2-Regression/2-Data/README.md) | Jen |
| 04 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](2-Regression/2-Data/README.md) | Jen |
| 05 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Build a Linear Regression model | [lesson](2-Regression/3-Linear/README.md) | Jen |
| 05 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Build a Linear Regression model | [lesson](2-Regression/3-Linear/README.md) | Jen |
| 06 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Build a Logistic Regression model | [lesson](2-Regression/4-Logistic/README.md) | Jen |
| 06 | North American Pumpkin Prices 🎃 | [Regression](2-Regression/README.md) | Build a Logistic Regression model | [lesson](2-Regression/4-Logistic/README.md) | Jen |
| 15 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 15 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 16 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 16 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 17 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 17 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 18 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 18 | Romantic Hotels of Europe ♥️ | [Natural Language Processing]() | tbd | [lesson]() | Stephen |
| 19 | Power Usage in India ⚡️ | [Time Series]() | tbd | [lesson]() | Francesca |
| 19 | Power Usage in India ⚡️ | [Time Series]() | tbd | [lesson]() | Francesca |
| 20 | Power Usage in India ⚡️ | [Time Series]() | tbd | [lesson]() | Francesca |
| 20 | Power Usage in India ⚡️ | [Time Series]() | tbd | [lesson]() | Francesca |
| 21 | A fancy French mousetrap 🍫 | [Reinforcement Learning]() | tbd | [lesson]() | |
| 21 | A fancy French mousetrap 🍫 | [Reinforcement Learning]() | tbd | [lesson]() | |
| 22 | A fancy French mousetrap 🍫 | [Reinforcement Learning]() | tbd | [lesson]() | |
| 22 | A fancy French mousetrap 🍫 | [Reinforcement Learning]() | tbd | [lesson]() | |
| 23 | Future | The Ethics of Machine Learning | What are the important ethical issues apparent now and how will they impact the field going forward? | [lesson](8-Future/Ethics/README.md) | |
| 23 | Future | The Ethics of Machine Learning | What are the important ethical issues apparent now and how will they impact the field going forward? | [lesson](8-Future/Ethics/README.md) | Tomomi |
| 24 | Future | The Future of Machine Learning | What are the important trends that will shape the future of ML? | [lesson](8-Future/Future-Trends/README.md) | |
| 24 | Future | The Future of Machine Learning | What are the important trends that will shape the future of ML? | [lesson](8-Future/Future-Trends/README.md) | |
## Offline access
## Offline access
You can run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork this repo, [install Docsify](https://docsify.js.org/#/quickstart) on your local machine, and then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`.
You can run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork this repo, [install Docsify](https://docsify.js.org/#/quickstart) on your local machine, and then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`.