# Introduction to Machine Learning

## Intro

This course will provide a fundamental understanding of machine learning principles and models including supervised learning, linear regression, logistic regression, unsupervised learning, k-means, decision trees and support vector machines as well as the demonstration of how these models can solve complex problems in a variety of industries, from medical diagnostics to image recognition to finance applications.

We will use the Jupyter Notebook environment for coding and build our models using the scikit-learn library.

## Syllabus

The course is organized in a lecture-recitation format. This is the planned schedule for the whole course, but of course, changes are possible due to unforeseen reasons.

The mapping between lectures and course sessions is not one to one. Meaning that we might work on several lectures in one course session or working on one lecture for several sessions.

Lecture # | Title | Lecture Topics | Recitations | Externals |
---|---|---|---|---|

1 | Introduction to Artificial Intelligence | AI in business | Python programming language | |

2 | Introduction to Machine Learning |
What is machine learning? Machine learning algorithms Supervised learning Unsupervised Learning Reinforcement Learning |
Pandas Library | |

3 | Supervised learning: Regression |
Model representation and cost function Linear regression Gradient descent |
Regression hands-on practice | |

4 | Supervised learning: Classification |
Binary classification Multi-class classification Logistic regression K nearest neighbours (KNN) Support vector machines (SVM) Decision trees Ensemble methods and random forest |
Classification hands-on practice | |

5 | Overfitting |
Bias-variance trade-off Cross validation Regularization |
Overfitting in decision trees | |

6 | Model Evaluation | Model Selection |
Evaluation metrics (case of regression) Evaluation metrics (case of classification) Unbalanced datasets |
Model evaluations | |

7 | Unsupervised Learning |
K-means clustering Hierarchical clustering DBSCAN clustering Find optimal number of clusters |
Clustering practice | |

8 | Data Exploration | Data visualization in Python | Final project |