scikit-learn is a Python machine learning library built on top of SciPy and distributed under the 3-Clause BSD license. The project was initiated in 2007 by David Cournapeau as a Google Summer of Code project and has since grown through contributions from numerous volunteers. It is currently maintained by a volunteer team and provides a comprehensive toolkit for machine learning tasks in Python.
The library encompasses a broad range of machine learning functionality across multiple domains. GitGenius classification identifies the repository as covering regression, ensemble methods, model selection, datasets, data mining, supervised learning, classification, preprocessing, dimensionality reduction, clustering, unsupervised learning, feature extraction, and data analysis. This breadth reflects scikit-learn's position as a general-purpose machine learning framework rather than a specialized tool for any single technique or problem domain.
The project maintains active development with significant community engagement. Across 2227 tracked issues and pull requests, the median response latency is 0.0 hours, indicating rapid triage and initial response to community submissions. The most frequently addressed issue categories are Bug reports with 618 items, New Feature requests with 425 items, and Documentation improvements with 341 items. The core maintenance team includes lesteve with 1587 tracked events, ogrisel with 1569 events, and adrinjalali with 1378 events, demonstrating sustained individual contributions to project governance and development.
The repository's technical infrastructure reflects production-grade standards. The codebase uses GitHub Actions for unit testing, CircleCI for continuous integration, and Codecov for coverage tracking. Code quality is enforced through Ruff for style checking, and nightly wheel builds ensure compatibility across platforms. The project maintains a benchmark suite tracked through asv, allowing performance monitoring across releases.
Dependencies are carefully managed with specified minimum versions. The project requires Python 3.11 or later, NumPy 1.24.1 or higher, and SciPy 1.10.0 or higher. Additional dependencies include Joblib 1.4.0, Narwhals 2.0.1, Threadpoolctl 3.5.0, Matplotlib 3.6.1, scikit-image 0.22.0, Pandas 1.5.0, Seaborn 0.13.0, Pytest 7.1.2, and Plotly 5.22.0, reflecting the library's integration with the broader Python scientific computing ecosystem.
The repository shares contributors with other major Python projects including Microsoft's VSCode, pandas-dev/pandas, and matplotlib/matplotlib, indicating deep integration within the Python data science community. Installation is straightforward through pip or conda, with comprehensive documentation available both for stable releases and development versions. The project actively welcomes new contributors of all experience levels and provides detailed development guides covering code contribution, documentation, and testing procedures. Testing can be controlled through the SKLEARN_SEED environment variable for reproducibility.