This repository contains implementations of all popular ML-algorithms from scratch using Python with their detailed theoretical description. In addition, this course is presented in two languages (eng, rus) in the form of jupyter notebooks and will feature tutorials on the necessary ML-libraries and also all the theory of concepts in ML, starting from methods of evaluating models and ending with optimization methods.
🔔This course is also available on other platforms: Habr (rus) and Kaggle (eng)
- python (at the function and OOP level);
- mathematics (linear algebra, calculus, probability theory and statistics).
At the moment, the course is under development and new notebooks will be gradually added
Initial theory
- 8) Quality metrics and error analysis
- 9) Optimization methods in ML and DL
Supervised learning
- 1) Linear regression and its modifications
- 2) Logistic & Softmax-regressions
- 3) Linear Discriminant Analysis (LDA)
- 4) Naive Bayes Classifier
- 5) Support Vector Machines (SVM)
- 6) K-Nearest Neighbors (KNN)
- 7) Decision Tree (CART)
- 8) Bagging & Random Forest
- 9) AdaBoost (SAMME & R2)
- 10) Gradient Boosting algorithms (XGBoost, CatBoost, LightGBM)
- 11) Stacking & Blending
Unsupervised learning
- 12) Principal Component Analysis (PCA)
- 13) Popular clustering algorithms (K-Means, DBSCAN et al.)
Books
- "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow" (3rd edition) by Aurélien Géron
- "An Introduction to Statistical Learning: with Applications in R" (2nd edition) by Gareth James et al.
- "The Elements of Statistical Learning: Data Mining, Inference, and Prediction" (2nd edition) by Trevor Hastie et al.
- "Pattern Recognition and Machine Learning" by Christopher M. Bishop
- "Deep Learning" by Ian Goodfellow et al.
Courses and playlists