scikit-learn
A Python machine learning library built on SciPy, with classification, regression, data preparation and model evaluation under the BSD 3-Clause license.

scikit-learn is a Python machine learning library for people building predictive models and analyzing data. It combines algorithms with data preparation and evaluation tools so you can compare approaches within one library.
- Classification and regression: Predict categories or numeric values with gradient boosting, nearest neighbors and random forests, alongside logistic regression and ridge regression.
- Clustering: Find groups of similar observations with k-Means, HDBSCAN and hierarchical clustering for tasks such as customer segmentation or grouping experimental results.
- Dimensionality reduction: Use PCA, feature selection and non-negative matrix factorization to reduce the variables in an analysis or prepare data for visualization.
- Model comparison: Evaluate models with cross-validation and metrics, and use grid search to compare parameter choices.
- Data preparation: Normalize inputs and extract features, including turning text into data that machine learning algorithms can use.
scikit-learn builds on SciPy and is open source under the BSD 3-Clause license.