**Course Leader:** Dr Vitalii Naumov

**Home Institution:** Cracow University of Technology

**Course pre-requisites:** basics of Calculus and Probability Theory, basic programming skills are desirable but not mandatory

**Course Overview**

Machine learning has its origins in the epoch of artificial intelligence development as an academic discipline. Since the very beginning, machine learning focuses on prediction, based on known properties learned from the training data. Nowadays, in the age of information, understanding of machine learning techniques is the must skill almost in every field – from medicine and fine arts to transport and finance business.

The course is devoted to persons who want to get acquainted with basic machine learning techniques, and in this way, to become the demanded professional in their field of business.

During the course, students will learn the basics of Python and also will get acquainted with the most popular machine learning techniques. We will start with basic data types and essential commands of Python, students will implement their own functions of simple data analysis operations. In the second part of the course, students will get acquainted with simple classifiers and essential regression analysis models, we’ll cover the least squares method and the gradient descent algorithm from scratch. In the last part of the course, I will present simple neural networks and training algorithms.

All the methods and algorithms presented in the course will be supported by the tools implemented in the Python programming language.

**Learning Outcomes**

By the end of the course, students will be able to use the Python language and functionality of its libraries in order to perform basic operations of data processing. Students will have basic skills in data visualization with the use of Python libraries. They will be proficient in using basic machine learning techniques.

**Course Content**

1. Basics of Python: data types, conditions, loops, and functions

2. Creating in Python simple functions for basic data analysis

3. Numpy library: the most important functions for data processing and analysis

4. Data visualization in Python: basic tools of the matplotlib library

5. Naive Bayes classifier

6. Another simple classifier: k-nearest neighbors algorithm

7. Linear regression: estimation of the regression coefficients and significance tests

8. Logistic regression. Gradient descent algorithm

9. Basics of neural networks: linear classification using the perceptron

10. Multilayer perceptron. Backpropagation algorithm

**Instructional Method**

During the course, we will have lectures and individual projects in 50/50 proportion of time

**Required Course Materials**

All the required materials will be provided by the instructor during the course.

Recommended additional reading:

Downey, A.B. Think Python: How to Think Like a Computer Scientist, O'Reilly, 2015 Raschka, S., Mirjalili, V. Python Machine Learning, Packt, 2017 Garreta R., Moncecchi G. Learning scikit-learn: Machine Learning in Python, Packt, 2013

**Assessment**

The final grade will be calculated on the grounds of two tests (midterm and final) and the project developed during the course. Tests will contribute 80% to the final result, and the project will give 20% respectively.