Self-hosted service
Yorko/mlcourse.ai avatar
Yorko/mlcourse.ai

mlcourse.ai: A Self-Paced Machine Learning Course You Run Locally

Open Machine Learning Course

10,712 stars5,692 forksPythonNOASSERTION

At a glance

What is it?
mlcourse.ai is a ten-week, notebook-driven machine learning curriculum from the OpenDataScience community, mapped onto Kaggle Inclass competitions. It is a teaching repository, not a library, and its value depends on whether you want a structured syllabus rather than a single tool.
Who is it for?
Adopt mlcourse.ai if you want a sequenced, notebook-based path from Pandas to gradient boosting and you are willing to work through Kaggle Inclass competitions rather than follow a video series. Do not adopt it if you need a maintained library, a certification, or a course whose assignments you can redistribute.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 13 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What mlcourse.ai actually is, and who it is written for

The repository is the courseware for mlcourse.ai, an open machine learning course run by the OpenDataScience community and led by Yury Kashnitsky. The README describes the design goal directly: a balance between theory and practice, with math formulae in the lectures and practice delivered as assignments and Kaggle Inclass competitions. The stated audience is someone who wants both halves. If you only want runnable code for a task, this is the wrong repository. If you want a syllabus that forces you to derive a loss function and then submit a model to a leaderboard, the structure is built for that.

The current mode is self-paced. The README says you are guided through ten weeks, from Pandas to Gradient Boosting, with instructions per week on which articles to read, which lectures to watch, and which assignments to complete. The only listed release is v1.0.0, tagged "Self-paced mlcourse.ai" and dated 2022-01-16. That date matters: the self-paced packaging is a specific snapshot, and the repository has continued to receive pushes since, so the release tag and the current main branch are not the same thing.

How the ten weeks are assembled from notebooks, articles and Kaggle

The course is organized by topic number, and each topic fans out into several delivery channels. Topic 1 is Exploratory Data Analysis with Pandas. Topic 2 is Visual Data Analysis with Python, split into two Kaggle notebooks, one covering the basics and one covering seaborn and plotly. Topic 3 covers classification, decision trees and k nearest neighbors. Topic 4 is linear classification and regression, and it is the widest: the README lists five Kaggle notebooks for it, covering ordinary least squares, classification, regularization, more of the logit, and validation. Topic 5 is bagging and random forests.

Each entry carries parallel links. There is an English article on medium.com, a Russian one on habr.com, a Chinese notebook under jupyter_chinese, and one or more Kaggle Notebooks in English. The README also names mirrors: the main site at mlcourse.ai, a Kaggle Dataset holding the same notebooks as Kaggle Notebooks, and an Arabic version under jupyter_arabic. So the same lesson exists in at least four places and three languages. The practical consequence is that you can follow the course without cloning anything, and you can also clone it and run the notebooks locally. Those are different experiences, and the repository supports both.

The topic list also exposes the toolchain the course teaches. The repository topics include numpy, pandas, scipy, scikit-learn, matplotlib, seaborn, plotly and vowpal-wabbit, alongside docker and ipynb. Vowpal Wabbit appearing in that list is the least obvious entry and suggests at least one topic goes beyond the scikit-learn stack. That is an inference from the topic tags, not something the truncated README confirms.

Getting the notebooks running on your own machine

The README does not spell out a local install procedure in the portion available here, so treat the following as the shape of the workflow rather than a verified recipe. The repository is Python and notebook based, and it carries a docker topic tag, which points to a container path for reproducing the environment. The Kaggle mirror exists precisely because dependency resolution is the usual friction point: running the notebooks as Kaggle Notebooks sidesteps your local Python version entirely.

If you clone the repository, the notebooks live in topic directories and the translated copies live under jupyter_chinese and jupyter_arabic. The Kaggle Dataset mirror is described as containing the same notebooks, which gives you a way to diff what you have locally against a known-good copy. That comparison is worth doing before you spend time debugging an import error that is really a stale notebook.

The honest statement is that the material here does not include a documented requirements file, a pinned environment, or a stated supported Python version. The docker topic tag implies a container is part of the intended setup, but the README excerpt does not name an image, a compose file, or a build command. Verify that before you plan around it. The v1.0.0 release is from January 2022, and notebooks written against the library versions of that period can behave differently on a current interpreter.

The Bonus Assignments pack and where the free material stops

The README is explicit that the course is not fully monetized and is intended to remain open and free, while a separate paid pack exists. The Bonus Assignments pack contains ten assignments and is sold through a Patreon tier or a Boosty tier for a stated contribution of $17 per month. The README explains the billing shape: the first payment is charged when you join the tier, the next on the first day of the following month, so joining in the first half of a month avoids paying twice in quick succession.

The pack is not just harder versions of the free work. The README says some assignments challenge you to beat a baseline in a Kaggle competition under guidance, naming the "Alice" and "Medium" tasks, and others ask you to implement an algorithm from scratch, specifically an efficient stochastic gradient descent classifier and gradient boosting. That is a meaningful difference in kind: implementing SGD and boosting yourself tests understanding in a way that calling the scikit-learn estimator does not.

The licensing split is the part to read carefully. The repository badge shows CC BY-NC-SA 4.0 for the course content, while the README states that the Bonus Assignments are copyrighted and that public sharing of the pack is prohibited, with an informal allowance for sharing with two or three friends. Those are two different regimes inside one project. Note also that the repository metadata reports the licence as NOASSERTION, which means the automated classifier did not recognize a standard licence file even though the README displays a CC BY-NC-SA 4.0 badge. If you plan to reuse any of this material, resolve that discrepancy yourself; this is a description of what the files say, not legal advice.

Where the format fails: no maintenance contract and no certification

The most concrete limitation is that this is teaching material with no compatibility promise. The single tagged release is v1.0.0 from January 2022. The repository is not archived and has been pushed to more recently, but a push to the default branch is not the same as a maintained environment. Nothing in the README states a supported Python version, a dependency lockfile, or a policy for updating notebooks when scikit-learn or pandas changes behaviour.

That has a specific failure mode. A learner follows the ten-week sequence, hits a notebook whose output no longer matches because a default changed in a library, and cannot tell whether the mismatch is their mistake or the notebook's age. The Kaggle mirror reduces this risk because Kaggle pins the runtime, but it moves you off your own machine and into a hosted editor.

A second limitation is that the course does not award a credential. The README describes self-paced passing and assignment work, not a certificate or an assessment that a third party recognizes. Anyone who needs documented proof of training should look elsewhere, because nothing here provides it.

A third is scope. Ten weeks from Pandas to gradient boosting covers classical supervised learning and visualization. The topic tags do not suggest deep learning, and the README excerpt does not mention neural networks. If that is your goal, the syllabus ends before you get there.

How it differs from a video course or a documentation-first tutorial

The closest comparison is a structured video course such as Andrew Ng's machine learning material, which is lecture-first and assessment-light, or a documentation-first path through the scikit-learn user guide, which is reference-first and has no sequence at all. mlcourse.ai sits between them and is deliberately uneven: it puts the math in the reading and pushes the verification into Kaggle Inclass competitions, where your model is scored against other people's submissions.

That competition layer is the real difference. A video course lets you watch a derivation and nod. A documentation page lets you look up an estimator and leave. Here, the README states that assignments and Kaggle Inclass competitions are the practice mechanism, so the feedback is a leaderboard position rather than a quiz score. That is a stronger signal and a harsher one. It also means the course assumes you are comfortable with the Kaggle submission workflow, or willing to learn it as part of week one.

The multi-language mirrors are the second difference, and they are unusual. English, Russian, Chinese and Arabic versions of the same topics, plus a Kaggle Dataset mirror, mean the material has been maintained across translations rather than only in its original language. For a learner who reads one of the non-English versions more comfortably, that is not a minor convenience.

Upgrade cost and the decision to adopt

There is no upgrade path to price, because there is no installed artifact. You either read the articles and work the notebooks in place, or you clone the repository and keep it. The recurring cost is the Bonus Assignments tier at the stated $17 per month, which the README frames as roughly one to five months of study, with a single contribution also granting access. That is the only monetary commitment described.

The maintenance cost is yours. Notebooks from a 2022 release will need dependency work if you run them locally, and the repository gives you no lockfile to restore from. Budget for that, or use the Kaggle mirror and accept the hosted environment.

Adopt mlcourse.ai if you want a sequenced curriculum that pairs derivations with competitive practice, you are comfortable in Jupyter, and you accept that the environment is your responsibility. Do not adopt it if you need a certificate, if you want deep learning, or if you need to redistribute the assignments, since the Bonus Assignments carry their own copyright notice separate from the CC BY-NC-SA 4.0 badge. Before starting, open topic01 and the topic04 notebooks and check that their imports resolve in your interpreter, confirm whether the docker tag corresponds to a usable image, and read the licence badge against the NOASSERTION metadata so you know which terms actually apply to the files you plan to use.

Editorial conclusion

Adopt mlcourse.ai if you want a sequenced, notebook-based path from Pandas to gradient boosting and you are willing to work through Kaggle Inclass competitions rather than follow a video series. Do not adopt it if you need a maintained library, a certification, or a course whose assignments you can redistribute. Before committing, open the topic01 notebook and one assignment, confirm the Python and dependency versions the notebooks assume still resolve in your environment, and read the CC BY-NC-SA 4.0 terms plus the separate copyright note on the Bonus Assignments pack.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. Yorko/mlcourse.ai on GitHub
Community notes

Community notes