← All reportsPublic report

scikit-learn/scikit-learn

scikit-learn: machine learning in Python

67k stars Python View on GitHubprofiled 15d ago
Try GitZoid
115PRs this week
38Contributors
0Deps scanned
0Issues found
01 · Repo overview

How scikit-learn is put together

scikit-learn is a Python machine learning library providing estimators for classification, regression, clustering, decomposition, and preprocessing, built on NumPy and SciPy. The codebase is primarily Python with performance-critical kernels implemented in Cython (and C) compiled via a Meson/meson-python build system. Data flows through estimator objects implementing fit/transform/predict APIs defined in sklearn/base.py and composed via sklearn/pipeline.py, with global runtime behavior controlled by thread-local configuration in sklearn/_config.py. The repository also contains extensive CI/build tooling (GitHub Actions, CircleCI docs builds, cibuildwheel), documentation infrastructure, and maintenance scripts.

Languages

PythonCythonC

Frameworks

NumPySciPyjoblibpytestSphinx (docs)sphinx-gallery

Infrastructure

GitHub Actions CI (build_tools/github)CircleCI documentation builds (.circleci/config.yml, build_tools/circle)cibuildwheel wheel building (build_tools/wheels)MyBinder environment (.binder)Devcontainer (.devcontainer)

Major components

sklearn.cluster

Clustering algorithms including K-Means (with Cython Lloyd/Elkan/minibatch kernels), DBSCAN, affinity propagation, spectral, hierarchical, and OPTICS.

sklearn.decomposition

Matrix decomposition methods such as PCA, NMF, FastICA, dictionary learning, LDA, and kernel PCA.

sklearn.datasets

Loading and fetching sample datasets (including remote downloads from OpenML and other hosts) plus synthetic data generators and SVMLight format I/O.

sklearn.callback

Callback framework for monitoring estimator fitting, including progress bars, scoring monitors, and callback transport/context plumbing.

sklearn._loss

Loss functions and link functions for gradient boosting and linear models, with a Cython core generated from a tempita template (_loss.pyx.tp).

sklearn.compose

ColumnTransformer for per-column preprocessing pipelines and transformed-target regressors.

sklearn.covariance

Covariance estimation including empirical, shrunk, robust (MCD), graphical lasso, and elliptic envelope estimators.

Global configuration & base API (sklearn/_config.py, sklearn/base.py, sklearn/pipeline.py)

Thread-local global config (set_config/config_context), BaseEstimator machinery, and Pipeline composition of estimators.

Over the past month, scikit-learn development focused on making the library work smoothly with modern array libraries (like GPU-backed arrays), speeding up core algorithms like random forests and nearest neighbors, and fixing a steady stream of bugs. Behind the scenes, the team invested heavily in developer tooling — replacing the type checker, adding new linting tools, and automating dependency updates. A new solver for linear models (Newton-CD) also landed as part of an ongoing performance initiative.

Week by week

2026-08-24A quieter week centered on improving how decision trees handle categorical data and expanding support for alternative array libraries.latest6 changes

Feature

ExtraTree supports far more categories

The ExtraTrees classifier can now handle up to 16 million possible categories using a deterministic hashing trick for random splitting.

Fix

Progress bars stop on time

Timer-based progress bars in meta-estimators now correctly stop once the task finishes instead of continuing to run.

Chore

CI scripts updated for GitHub API

Automation scripts were updated to use the current GitHub authentication method, avoiding deprecation warnings.

Feature

Array API support for contingency_matrix

The confusion-matrix helper now works with alternative array libraries like PyTorch or CuPy, not just NumPy.

Docs

Test helper documentation improved

A parameter description was added to an internal test utility's documentation.

Chore

Dependency lock files refreshed

Automated bots updated pinned dependencies for the array-API and scipy-dev test environments.

2026-08-17A busy week of bug fixes for mixed-device array inputs, plus Intel joining as a financial partner and several new code-quality linters.6 changes

Docs

Intel added as financial partner

Intel was added to the list of organizations financially supporting scikit-learn development.

Fix

LDA works across devices

LinearDiscriminantAnalysis now handles inputs that mix different array libraries or compute devices (e.g., CPU and GPU).

Fix

PCA validation fix

PCA now properly checks when its inputs come from different array namespaces before computing results.

Feature

Array API support for OAS covariance

The OAS covariance estimator can now run on alternative array libraries beyond NumPy.

Chore

New linting tools added

Codespell (spelling checker) and sphinx-lint (documentation checker) were integrated into the project's automated checks.

Chore

Windows build fix

An OpenBLAS math-library version was rolled back on Windows to avoid a regression in builds.

2026-08-10Infrastructure took center stage this week: a new type checker replaced mypy, plus a fix for parallel neighbor searches.6 changes

Fix

radius_neighbors fixed with parallel jobs

Fixed a crash when using radius_neighbors with a radius given as a generic list-like value while running computations in parallel.

Refactor

Switched from mypy to pyrefly

The project replaced its mypy type-checking tool with the faster pyrefly checker.

Chore

Automated PR closing action

A new bot automatically closes pull requests whose linked issues aren't ready yet, keeping the queue tidy.

Docs

Memory measurement docs improved

Developer documentation on measuring memory usage during tests was expanded.

Chore

Issue template asks for introductions

The issue template now invites contributors to introduce themselves, encouraging community engagement.

Docs

Overfitting example plot fixed

Corrected a misleading visualization in the underfitting/overfitting tutorial example.

2026-08-03Performance wins dominated: faster random forest training and quicker KNeighborsClassifier fitting, alongside the arrival of a new Newton-CD solver.6 changes

Refactor

Faster random forest training

Random forests train noticeably faster by removing redundant memory conversions during tree building.

Refactor

KNeighborsClassifier fits faster

Speed improvements were made to how the k-nearest-neighbors classifier prepares its internal search structure.

Feature

NewtonCDSolver added

Part 7 of the Newton coordinate-descent series landed, adding a new optimization solver expected to speed up linear models.

Fix

DBSCAN warning silenced

Removed a spurious efficiency warning that appeared when running DBSCAN with precomputed distances.

Chore

Multilabel metric tests added

Added tests ensuring continuous classification metrics handle multilabel inputs correctly.

Chore

Nightly wheel uploads stopped

The project stopped uploading nightly pre-release packages from the main repository, streamlining release infrastructure.

2026-07-27The busiest week of the month, headlined by GridSearchCV learning to keep all outputs consistent with input transformations and major coordinate-descent improvements.6 changes

Feature

"Everything follows X" for GridSearchCV

GridSearchCV now ensures any extra data it carries stays aligned with transformed versions of the main input matrix.

Feature

Coordinate descent made faster

Residuals and column norms are now precomputed in coordinate descent, cutting redundant computation during model fitting.

Fix

LDA/QDA consistency fixes

Resolved inconsistencies between the linear and quadratic discriminant analysis solvers so they behave predictably.

Fix

Error for unsupported categorical splits

Decision trees now raise a clear error when categorical features are combined with the absolute-error criterion, which doesn't support them.

Refactor

indexable uses narwhals

The indexable utility was rewritten to use the narwhals compatibility layer, improving support for pandas-like dataframes.

Docs

Global configuration docs moved

Documentation about global configuration settings got its own dedicated page instead of living inside the parallelism guide.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required