Last Updated on July 25, 2023
scikit-learn is an open source Python module for machine learning built on top of SciPy. It offers efficient versions of a large number of common algorithms. The software displays a clean, uniform, and streamlined API, with good online documentation.
The software provides various classification, regression and clustering algorithms including support vector machines, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy.
scikit-learn is largely written in Python, with some core algorithms written in Cython to optimise performance.
scikit-learn is one of the most useful modules for machine learning in Python.
The software has the following dependencies:
- Python (>= 2.7 or >= 3.4)
- NumPy (>= 1.8.2)
- SciPy (>= 0.13.3)
scikit-learn also uses CBLAS, the C interface to the Basic Linear Algebra Subprograms library, and matplotlib to generate the supplied examples.
Features include:
- Simple and efficient tools for data mining and data analysis.
- Supervised learning algorithms – great coverage for this type of algorithm. There’s generalised Linear Modules, Linear and Quadratic Discriminant Analysis, Support Vector Machines, Decision Trees, Bayesian methods, Gaussian Processes, Neural network models, and more.
- Cross-validation – various methods to check the accuracy of supervised models on unseen data.
- Unsupervised learning algorithms – again, a wide range of algorithms are available, including Gaussian mixture modules, manifold learning, clustering, factor analysis, covariance estimation, density estimation, and more.
- Dataset transformations – provides a library of transformers, which clean, reduce, expand, or generate feature representations.
- Feature extraction – useful for extracting features from images and text.
- Various sample datasets – the datasets are useful in learning how to use scikit-learn. They include: Boston house prices dataset, iris dataset, diabetes dataset, digits dataset, linnerud dataset, wine dataset, and a breast cancer dataset.
- Built on NumPy, SciPy, and matplotlib.
Website: scikit-learn.org
Support: Documentation, GitHub, Gitter, Mailing List
Developer: scikit team
License: New BSD License

scikit-learn is written in Python. Learn Python with our recommended free books and free tutorials.
Return to Essential Python Tools
| Explore Linux | |
|---|---|
| Best Free and Open Source Software - A huge collection of recommended free and open source software covering every major category. | |
| In-depth Linux Software Reviews - Detailed assessments of Linux software covering features, usability and overall quality. | |
| The Big List of Active Linux Distros - An extensive collection of actively developed Linux distributions. | |
| Open Source Alternatives - Alternatives to software and services from Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle and others. | |
| Essential Linux System Tools - Indispensable utilities for monitoring, maintaining and managing Linux systems. | |
| Linux Productivity Tools - Useful utilities for improving productivity and streamlining everyday tasks. | |
| Alternatives to Popular CLI Tools - Modern alternatives to familiar command-line utilities supplied with Linux systems. | |
| Awesome Free Linux Game Tools - Tools, utilities and companion software that improve gaming on Linux. | |
| Machine Learning on Linux - Machine learning and deep learning software, self-hosted applications and practical tools. | |
| Saving Money with Linux - Practical ways to reduce electricity consumption and lower computing costs with Linux. | |
| Linux Candy - Fun, entertaining and sometimes delightfully quirky software from the lighter side of Linux. | |
