Awesome list (courses, books, videos etc.) and implementation of Machine Learning Algorithms
See the code
This repository contains examples of popular machine learning algorithms implemented in Python with mathematics behind them being explained.
- For Octave/MatLab version of Machine Learning algorithms please check Machine Learning Course in Octave / MatLab repository.
- For Deep Learning algorithms please check Deep Learning repository.
- For Natural Language Processing (NLU = NLP + NLG) please check Natural Language Processing repository.
- For Computer Vision please check Computer Vision repository.

Machine Learning Foundations: Linear Algebra, Calculus, Statistics & Computer Science
🔹 Introductory Lectures:
These are great courses to get started in machine learning and AI. No prior experience in ML and AI is needed. You should have some knowledge of linear algebra, introductory calculus and probability. Some programming experience is also recommended.
🔸 Advanced Lectures:
Advanced courses that require prior knowledge in machine learning and AI.
Free courses:
Перечень лучших курсов по практически любым областям математики
Coursera:
Udacity:
Edx:
Hyperskill from JetBrains Academy:
Google:
Learning from Data – введение в машинное обучение (основная теория, алгоритмы и области практического применения)
Data Science and Machine Learning Essentials от Microsoft
A complete guide to start and improve in machine learning (ML), artificial intelligence (AI) in 2021 without ANY background in the field and stay up-to-date with the latest news and state-of-the-art techniques!
A series of Jupyter notebooks that walk you through the fundamentals of Machine Learning and Deep Learning in python using Scikit-Learn and TensorFlow.
Computer Vision:
Nalural Language Processing:
AI-related tutorials.
| Title | Description, Information |
|---|---|
| Top-down learning path: Machine Learning for Software Engineers | |
| 100-Days-Of-ML-Code | |
| ml-course-msu | Репозиторий с конспектами, кодом и прочими материалами к семинарам по машинному обучению ВМК МГУ |
| 100-best-github-machine-learning | |
| awesome-machine-learning | |
| trekhleb, homemade-machine-learning | Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained |
| trekhleb, machine-learning-experiments | Interactive Machine Learning experiments: models training + models demo |
| trekhleb, machine-learning-octave | MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained |
| Machine Learning Notebooks | A collection of Machine Learning fundamentals and useful python notebooks by Diego Inácio |
| Open Source Society University's Data Science course | This is a solid path for those of you who want to complete a Data Science course on your own time, for free, with courses from the best universities in the World |
| data-science-blogs | |
| Dive into Machine Learning | (:octocat: repo on github) with Python Jupyter notebook and scikit-learn |
| Рекомендации от преподавателей курса «Математика и Python» и специализации | |
| Литература для поступления в ШАД | |
| Machine learning cheat sheet | - soulmachine (2015) |
| Probabilistic Programming and Bayesian Methods for Hackers | (free) |
| ml-surveys | Survey papers summarizing advances in deep learning, NLP, CV, graphs, reinforcement learning, recommendations, graphs, etc. |
| Machine_Learning_and_Deep_Learning | Getting started with Machine Learning and Deep Learning |
| MachineLearning_DeepLearning | Share about Machine Learning and Deep Learning |
| Machine Learning Guide | A guide covering Machine Learning including the applications, libraries and tools that will make you better and more efficient with Machine Learning development. |
Bayesian statistics and related books:
Correlation does not imply causation
More online lectures, courses, papers, books, etc. on Causality:
Coursera:
Powerful Concepts in Social Science playlists, Duke
4 lectures on causality by J.Peters (8 h), MIT Statistics and Data Science Center, 2017
Causality tutorial by D.Janzing and S.Weichwald (4 h), Conference on Cognitive Computational Neuroscience 2019
Course on causality by S.Bauer and B.Schölkopf (3 h), Machine Learning Summer School 2020
Course on causality by D.Janzing and B.Schölkopf (3 h), Machine Learning Summer School 2013
Causal Structure Learning,Christina Heinze-Deml, Marloes H. Maathuis, Nicolai Meinshausen, 2017
JUDEA PEARL, MADELYN GLYMOUR, NICHOLAS P. JEWELL CAUSAL INFERENCE IN STATISTICS: A PRIMER
Causality in cognitive neuroscience: concepts, challenges, and distributional robustness
Investigating Causal Relations by Econometric Models and Cross-spectral Methods, 1969
Fast Greedy Equivalence Search (FGES) Algorithm for Continuous Variables
Greedy Fast Causal Inference (GFCI) Algorithm for Continuous Variables
Casual Machine Learning (Papers):
Experimental designs for casual learning:
PyCharm от JetBrains - серьезная IDE для больших проектов
Spyder – the Scientific PYthon Development EnviRonment. Spyder входит в Анаконду (просто введите spyder в командной строке)
Canopy — scientific and analytic Python deployment with integrated analysis environment (рекомендуют в курсе MITx)
Rodeo — a data science IDE for Python
Jupyter – open source, interactive data science and scientific computing across over 40 programming languages. The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text
nbviewer – renders notebooks available on other websites
Sublime Text 3 - VIM XXI века*;, отлично подходит для python, если использовать вместе с плагинами:
Read-eval-print loop в соседней вкладке, удобно для пошаговой отладки кодаPyCharm vs Sublime Text – a blog post comparing these two popular development tools and text editors.
PEP 0008 -- Style Guide for Python Code.
The initial list was provided by Kevyn Collins-Thomson from the University of Michigan School of Information.
Long general-purpose list of datasets:
This website has dozens of public datasets - some fun, some a bit, well.. quirky. external link:
The Academic Torrents site has a growing number of datasets, including a few text collections that might be of interest (Wikipedia, email, twitter, academic, etc.) for current or future projects.
Google Books n-gram corpus
Common Crawl: • Currently 6 billion Web documents (81 Tb) • Amazon S3 Public Data Set
Business/commercial data Yelp external link:
Internet Archive (huge, ever-growing archive of the Web going back to 1990s) external link:
WikiData:
World Food Facts
Data USA - a variety of census data
U.S. Government open data - datasets from 75 agencies and subagencies
NASA data portal - space and earth science
Training Set: this data set is used to adjust the weights on the neural network.
Validation Set: this data set is used to minimize overfitting. You're not adjusting the weights of the network with this data set, you're just verifying that any increase in accuracy over the training data set actually yields an increase in accuracy over a data set that has not been shown to the network before, or at least the network hasn't trained on it (i.e. validation data set). If the accuracy over the training data set increases, but the accuracy over the validation data set stays the same or decreases, then you're overfitting your neural network and you should stop training.
The validation data set is a set of data for the function you want to learn, which you are not directly using to train the network. You are training the network with a set of data which you call the training data set. If you are using gradient based algorithm to train the network then the error surface and the gradient at some point will completely depend on the training data set thus the training data set is being directly used to adjust the weights. To make sure you don't overfit the network you need to input the validation dataset to the network and check if the error is within some range. Because the validation set is not being using directly to adjust the weights of the network, therefore a good error for the validation and also the test set indicates that the network predicts well for the train set examples, also it is expected to perform well when new example are presented to the network which was not used in the training process.
Testing Set: this data set is used only for testing the final solution in order to confirm the actual predictive power of the network.
Also, in the case you do not have enough data for a validation set, you can use cross-validation to tune the parameters as well as estimate the test error.
Cross-validation set is used for model selection, for example, select the polynomial model with the least amount of errors for a given parameter set. The test set is then used to report the generalization error on the selected model.
Early stopping is a way to stop training. There are different variations available, the main outline is, both the train and the validation set errors are monitored, the train error decreases at each iteration (backpropagation and brothers) and at first the validation error decreases. The training is stopped at the moment the validation error starts to rise. The weight configuration at this point indicates a model, which predicts the training data well, as well as the data which is not seen by the network . But because the validation data actually affects the weight configuration indirectly to select the weight configuration. This is where the Test set comes in. This set of data is never used in the training process. Once a model is selected based on the validation set, the test set data is applied on the network model and the error for this set is found. This error is a representative of the error which we can expect from absolutely new data for the same problem.
⚙️ Methods:
💻 Code
Neural Network for generating text based on training txt file using Google Colab. As a base text were used Alice in Wonderland by Lewis Carroll.
Implemented a Bidirectional Attention Flow neural network as a baseline on SQuAD, improving Chris Chute's model implementation, adding word-character inputs as described in the original paper and improving GauthierDmns' code.
311 commits
Jupyter Notebook
99.9%
Awesome list (courses, books, videos etc.) and implementation of Machine Learning Algorithms
See the code
This repository contains examples of popular machine learning algorithms implemented in Python with mathematics behind them being explained.
- For Octave/MatLab version of Machine Learning algorithms please check Machine Learning Course in Octave / MatLab repository.
- For Deep Learning algorithms please check Deep Learning repository.
- For Natural Language Processing (NLU = NLP + NLG) please check Natural Language Processing repository.
- For Computer Vision please check Computer Vision repository.

Machine Learning Foundations: Linear Algebra, Calculus, Statistics & Computer Science
🔹 Introductory Lectures:
These are great courses to get started in machine learning and AI. No prior experience in ML and AI is needed. You should have some knowledge of linear algebra, introductory calculus and probability. Some programming experience is also recommended.
🔸 Advanced Lectures:
Advanced courses that require prior knowledge in machine learning and AI.
Free courses:
Перечень лучших курсов по практически любым областям математики
Coursera:
Udacity:
Edx:
Hyperskill from JetBrains Academy:
Google:
Learning from Data – введение в машинное обучение (основная теория, алгоритмы и области практического применения)
Data Science and Machine Learning Essentials от Microsoft
A complete guide to start and improve in machine learning (ML), artificial intelligence (AI) in 2021 without ANY background in the field and stay up-to-date with the latest news and state-of-the-art techniques!
A series of Jupyter notebooks that walk you through the fundamentals of Machine Learning and Deep Learning in python using Scikit-Learn and TensorFlow.
Computer Vision:
Nalural Language Processing:
AI-related tutorials.
| Title | Description, Information |
|---|---|
| Top-down learning path: Machine Learning for Software Engineers | |
| 100-Days-Of-ML-Code | |
| ml-course-msu | Репозиторий с конспектами, кодом и прочими материалами к семинарам по машинному обучению ВМК МГУ |
| 100-best-github-machine-learning | |
| awesome-machine-learning | |
| trekhleb, homemade-machine-learning | Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained |
| trekhleb, machine-learning-experiments | Interactive Machine Learning experiments: models training + models demo |
| trekhleb, machine-learning-octave | MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained |
| Machine Learning Notebooks | A collection of Machine Learning fundamentals and useful python notebooks by Diego Inácio |
| Open Source Society University's Data Science course | This is a solid path for those of you who want to complete a Data Science course on your own time, for free, with courses from the best universities in the World |
| data-science-blogs | |
| Dive into Machine Learning | (:octocat: repo on github) with Python Jupyter notebook and scikit-learn |
| Рекомендации от преподавателей курса «Математика и Python» и специализации | |
| Литература для поступления в ШАД | |
| Machine learning cheat sheet | - soulmachine (2015) |
| Probabilistic Programming and Bayesian Methods for Hackers | (free) |
| ml-surveys | Survey papers summarizing advances in deep learning, NLP, CV, graphs, reinforcement learning, recommendations, graphs, etc. |
| Machine_Learning_and_Deep_Learning | Getting started with Machine Learning and Deep Learning |
| MachineLearning_DeepLearning | Share about Machine Learning and Deep Learning |
| Machine Learning Guide | A guide covering Machine Learning including the applications, libraries and tools that will make you better and more efficient with Machine Learning development. |
Bayesian statistics and related books:
Correlation does not imply causation
More online lectures, courses, papers, books, etc. on Causality:
Coursera:
Powerful Concepts in Social Science playlists, Duke
4 lectures on causality by J.Peters (8 h), MIT Statistics and Data Science Center, 2017
Causality tutorial by D.Janzing and S.Weichwald (4 h), Conference on Cognitive Computational Neuroscience 2019
Course on causality by S.Bauer and B.Schölkopf (3 h), Machine Learning Summer School 2020
Course on causality by D.Janzing and B.Schölkopf (3 h), Machine Learning Summer School 2013
Causal Structure Learning,Christina Heinze-Deml, Marloes H. Maathuis, Nicolai Meinshausen, 2017
JUDEA PEARL, MADELYN GLYMOUR, NICHOLAS P. JEWELL CAUSAL INFERENCE IN STATISTICS: A PRIMER
Causality in cognitive neuroscience: concepts, challenges, and distributional robustness
Investigating Causal Relations by Econometric Models and Cross-spectral Methods, 1969
Fast Greedy Equivalence Search (FGES) Algorithm for Continuous Variables
Greedy Fast Causal Inference (GFCI) Algorithm for Continuous Variables
Casual Machine Learning (Papers):
Experimental designs for casual learning:
PyCharm от JetBrains - серьезная IDE для больших проектов
Spyder – the Scientific PYthon Development EnviRonment. Spyder входит в Анаконду (просто введите spyder в командной строке)
Canopy — scientific and analytic Python deployment with integrated analysis environment (рекомендуют в курсе MITx)
Rodeo — a data science IDE for Python
Jupyter – open source, interactive data science and scientific computing across over 40 programming languages. The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text
nbviewer – renders notebooks available on other websites
Sublime Text 3 - VIM XXI века*;, отлично подходит для python, если использовать вместе с плагинами:
Read-eval-print loop в соседней вкладке, удобно для пошаговой отладки кодаPyCharm vs Sublime Text – a blog post comparing these two popular development tools and text editors.
PEP 0008 -- Style Guide for Python Code.
The initial list was provided by Kevyn Collins-Thomson from the University of Michigan School of Information.
Long general-purpose list of datasets:
This website has dozens of public datasets - some fun, some a bit, well.. quirky. external link:
The Academic Torrents site has a growing number of datasets, including a few text collections that might be of interest (Wikipedia, email, twitter, academic, etc.) for current or future projects.
Google Books n-gram corpus
Common Crawl: • Currently 6 billion Web documents (81 Tb) • Amazon S3 Public Data Set
Business/commercial data Yelp external link:
Internet Archive (huge, ever-growing archive of the Web going back to 1990s) external link:
WikiData:
World Food Facts
Data USA - a variety of census data
U.S. Government open data - datasets from 75 agencies and subagencies
NASA data portal - space and earth science
Training Set: this data set is used to adjust the weights on the neural network.
Validation Set: this data set is used to minimize overfitting. You're not adjusting the weights of the network with this data set, you're just verifying that any increase in accuracy over the training data set actually yields an increase in accuracy over a data set that has not been shown to the network before, or at least the network hasn't trained on it (i.e. validation data set). If the accuracy over the training data set increases, but the accuracy over the validation data set stays the same or decreases, then you're overfitting your neural network and you should stop training.
The validation data set is a set of data for the function you want to learn, which you are not directly using to train the network. You are training the network with a set of data which you call the training data set. If you are using gradient based algorithm to train the network then the error surface and the gradient at some point will completely depend on the training data set thus the training data set is being directly used to adjust the weights. To make sure you don't overfit the network you need to input the validation dataset to the network and check if the error is within some range. Because the validation set is not being using directly to adjust the weights of the network, therefore a good error for the validation and also the test set indicates that the network predicts well for the train set examples, also it is expected to perform well when new example are presented to the network which was not used in the training process.
Testing Set: this data set is used only for testing the final solution in order to confirm the actual predictive power of the network.
Also, in the case you do not have enough data for a validation set, you can use cross-validation to tune the parameters as well as estimate the test error.
Cross-validation set is used for model selection, for example, select the polynomial model with the least amount of errors for a given parameter set. The test set is then used to report the generalization error on the selected model.
Early stopping is a way to stop training. There are different variations available, the main outline is, both the train and the validation set errors are monitored, the train error decreases at each iteration (backpropagation and brothers) and at first the validation error decreases. The training is stopped at the moment the validation error starts to rise. The weight configuration at this point indicates a model, which predicts the training data well, as well as the data which is not seen by the network . But because the validation data actually affects the weight configuration indirectly to select the weight configuration. This is where the Test set comes in. This set of data is never used in the training process. Once a model is selected based on the validation set, the test set data is applied on the network model and the error for this set is found. This error is a representative of the error which we can expect from absolutely new data for the same problem.
⚙️ Methods:
💻 Code
Neural Network for generating text based on training txt file using Google Colab. As a base text were used Alice in Wonderland by Lewis Carroll.
Implemented a Bidirectional Attention Flow neural network as a baseline on SQuAD, improving Chris Chute's model implementation, adding word-character inputs as described in the original paper and improving GauthierDmns' code.
311 commits
Jupyter Notebook
99.9%