# A Python machine learning course whose notebooks stopped running

> The python-ml-course repository holds the notebooks, datasets and helper library for a Spanish-language introductory machine learning course, and its most instructive feature right now is a warning: on the main branch several notebooks error out against current library versions, and a separate branch carries the same course adapted to pandas 3, NumPy 2, scikit-learn 1.9 and TensorFlow 2, with a document explaining what changed and why.

**joanby/python-ml-course** — Curso de Introducción a Machine Learning con Python

- Repository: https://github.com/joanby/python-ml-course
- Website: https://www.udemy.com/course/machinelearningpython/
- Stars: 855 · Forks: 1,572
- Language: Jupyter Notebook
- License: MIT
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/joanby-python-ml-course

## What the repository is

The repository is the companion material for a machine learning course with data science in Python, published as a course on Udemy and written by Juan Gabriel Gomila. The primary language of the repository is Jupyter Notebook, and the top-level listing shows the shape of it: a notebooks directory holding the lessons, a datasets directory with the practice material, a libs directory for shared helper code, an environment.yml for the conda environment, and a README and LICENSE. The MIT licence applies to the repository. The course itself covers thirteen parts, from installing Python and the data science packages through preprocessing and data wrangling, basic statistics and hypothesis testing, linear and polynomial regression, logistic regression with cross validation and ROC curves, clustering with K-means and hierarchical methods, decision trees and random forests, support vector machines with a face recognition section, K nearest neighbours, principal component analysis and LDA, and a final part on deep learning, reinforcement learning, artificial and convolutional neural networks with TensorFlow.

## The versioning problem, stated plainly

The first thing in the README is an October 2026 notice, and it is the most useful thing in the repository. The same course is available on a branch called update-2026, with the notebooks adapted to the libraries of today, namely pandas 3, NumPy 2, scikit-learn 1.9 and TensorFlow 2. The critical sentence is that with the current versions, several notebooks on the main branch give errors, and a linked document explains what changed and why. So the repository is currently in a state where the default branch does not run cleanly and the maintained branch is somewhere else. For a learner who clones the repository without reading that paragraph, the first notebook that fails on a renamed pandas argument will look like their own mistake rather than the repository's, and that is a real cost of the way the maintenance was handled.

## Who the course is aimed at

The prerequisites are stated plainly: some high school mathematics or basic statistics knowledge is needed, and some programming experience is recommended so you can focus on the analysis techniques, though it is not strictly necessary. The audience list is longer and tells you more about the expectations. It is for anyone interested in machine learning, for students with the mathematics background who want to learn it with Python, and for intermediate users who already know the fundamentals such as linear or logistic regression and want to explore other areas of statistical learning. It is also for programmers who like code, for university students aiming to specialise as data scientists, and for data analysts who want to go further. The framing of the course is explicitly professional, with the README appealing to people who are not satisfied with their current work and want to move into data science as a career.

## Datasets and the helper library are the durable parts

The repository carries two things that outlive any particular notebook, and both are what makes it worth cloning rather than watching. The datasets directory holds practice material based on real-life examples, and the course description makes the point that you will practise on real examples rather than only reading theory in videos. The libs directory holds the shared helper code, which is the part that would be useful if you want to reuse the preprocessing or plotting routines in your own projects. The environment.yml at the root pins the Python environment for the notebooks, and reading it is the fastest way to know which library versions the material was written against. Combined with the datasets, you have a self-contained workshop rather than a set of isolated scripts.

## The way the material is sequenced

The thirteen-part structure is a pedagogical argument, not a random list. It opens with installation and the packages needed for data science, machine learning and visualisation, which tells you the course assumes you start from nothing. Part two is the historical evolution of predictive analysis and machine learning, and part three is preprocessing and data cleaning, which puts the unglamorous work before the algorithms. Part four handles data manipulation and wrangling with datasets and probability distributions, and part five is a review of basic statistics with confidence intervals, hypothesis testing and correlation. Only then does part six introduce linear regression, with multiple and polynomial variants, categorical variables and outlier treatment. The algorithms come after the statistics and the cleaning, which is the opposite of how most code-first material is arranged and probably the main reason to read it.

## The advanced half goes algorithm by algorithm

From part six onward the course walks specific techniques with their associated tooling. Part seven is logistic regression for classification with maximum likelihood estimation, cross validation, K-fold and ROC curves. Part eight covers clustering with K-means, K-medoids, dendrograms and hierarchical clustering, including the elbow method and silhouette analysis for choosing a cluster count. Part nine is tree-based classification with random forests, pruning, entropy and information gain. Part ten is support vector machines for both classification and regression, non-linear kernels, and a face recognition section that the course presents as explaining how the CSI technique works. Part eleven is K nearest neighbours with majority voting, and it contrasts writing machine learning algorithms yourself against using the Python libraries, which is a useful distinction for a working practitioner. Part twelve is dimensionality reduction with principal component analysis and LDA, and part thirteen closes with deep learning, reinforcement learning, neural networks and TensorFlow.

## Where this course repository is the wrong choice

Four limits apply. It is in Spanish, so an English-only reader gets the notebooks and datasets but not the explanations, and the notebooks themselves carry Spanish prose in the cells. The main branch does not currently run against current library versions, which means the first thing a user meets is a broken notebook and a README paragraph explaining it. The curriculum is a survey of classical methods ending at neural networks and TensorFlow, with no coverage of transformers, retrieval or the tooling that dominates machine learning practice now, so a learner looking for current practice will find the middle of the field rather than its front edge. And the code in libs is teaching code, which is fine for a course and not something you would want in production without rewriting it.

## Conclusion

Use this repository as a body of worked notebooks and practice datasets if you read Spanish and want machine learning examples with the surrounding explanation, because the datasets and the helper library are the reusable part. Do not run the main branch notebooks as they stand, since the README says several of them error with the library versions people install today, and use the update branch instead. Verify first which branch you are on and which library versions it targets, that the environment file matches the versions in the notebooks you intend to run, and that you read the changes document before porting anything, since the adaptations involve renamed APIs and changed defaults rather than just version bumps.

## FAQ

### Do the notebooks in python-ml-course work with current library versions?

Not on the main branch. The README states that with the current versions several notebooks on the main branch give errors, and that the same course on the update-2026 branch has the notebooks adapted to pandas 3, NumPy 2, scikit-learn 1.9 and TensorFlow 2, with a changes document explaining what changed.

### What does the python-ml-course repository contain?

A notebooks directory with the lessons, a datasets directory with practice material based on real examples, a libs directory with shared helper code, and an environment.yml pinning the Python environment. The primary language of the repository is Jupyter Notebook and the licence is MIT.

### What prerequisites does the machine learning course ask for?

High school mathematics or basic statistics knowledge, and some programming experience is recommended so you can focus on the analysis techniques, though it is not strictly required.

### Which machine learning topics does the course cover?

Thirteen parts covering installation, the history of predictive analysis, preprocessing and cleaning, data wrangling and probability distributions, basic statistics, linear and polynomial regression, logistic regression with cross validation and ROC curves, clustering, trees and random forests, support vector machines with face recognition, K nearest neighbours, PCA and LDA, and deep learning, reinforcement learning and neural networks with TensorFlow.

### Who wrote the python machine learning course?

Juan Gabriel Gomila, described in the README as a professional from the data science world, and the course is published on Udemy under the title Curso completo de Machine Learning: Data Science en Python.

## Sources

- [Issues](https://github.com/joanby/python-ml-course/issues)
- [joanby/python-ml-course on GitHub](https://github.com/joanby/python-ml-course)
- [License: MIT](https://github.com/joanby/python-ml-course/blob/master/LICENSE)
- [Project website](https://www.udemy.com/course/machinelearningpython/)
- [README](https://github.com/joanby/python-ml-course/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/joanby-python-ml-course
