scikit-learn (anteriormente scikits.learn, também conhecido como sklearn) é uma biblioteca de aprendizado automático gratuita e de código aberto para a linguagem de programação Python. Ofrece vários algoritmos de classificação, regresión e agrupamento, incluindo máquinas de vectores de suporte, florestas aleatórias, aumento de gradiente, k-means e DBSCAN, e está desenhada para interoperar com as bibliotecas numéricas e científicas de Python, NumPy e SciPy. O projeto é um projeto patrocinado fiscalmente por NumFOCUS e é um dos frameworks de aprendizado automático mais adotados do mundo, particularmente para tarefas de aprendizagem clásica (não profunda).
A biblioteca oferece uma interface consistente para construir e avaliar modelos preditivos, sendo um ponto de entrada comum para aprendizado automático. O desenho de sua API centra-se nos métodos estimator.fit() e estimator.predict(), permitindo aos usuários alternar entre algoritmos com cambios mínimos no código.
História
O projeto começou como scikits.learn, uma iniciativa do Google Summer of Code do cientista de dados francês David Cournapeau em 2007. O nome deriva de seu papel como toolkit científico para aprendizado automático, originalmente distribuído como uma extensão de terceiros para SciPy. Em 2010, os contribuidores Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort e Vincent Michel, do Instituto Francês de Pesquisa em Ciência da Computação e Automação em Saclay, assumiram a liderança, lançando a primeira versão pública em 1º de fevereiro de 2010.
O projeto tornou-se um projeto patrocinado por NumFOCUS e, em 2019, tinha mais de 1.400 contribuidores, com documentação recebendo 42 milhões de visitas em 2018. Uma pesquisa de Kaggle de 2022 com quase 24.000 entrevistados de 173 países identificou-o como o framework de aprendizado automático mais utilizado. A primeira versión estável, a versão 1.0.0, apareceu em 24 de setembro de 2021, após mais de 2.100 pull requests mesclados.
Implementação e Desenho
scikit-learn está escrito em grande parte em Python, dependendo de NumPy para álgebra linear de alto desempeño. Alguns algoritmos centrais são implementados em Cython para velocidade. As máquinas de vectores de suporte usam um wrapper de Cython ao redor de LIBSVM; a regresión logística e as máquinas de vectores de suporte lineares usam um wrapper similar ao redor de LIBLINEAR. Interopera com o stack científico de Python, incluindo SciPy, Pandas, Matplotlib e plotly.
A biblioteca oferece uma interface de estimador consistente: fit() treina um modelo e predict() gera saídas. Também oferece utilidades para tarefas comuns de ciência de dados, como divisão de treinamento-teste, validação cruzada e busca em grade, junto com um mecanismo de Pipeline para estruturar declarativamente fluxos de trabalho de preprocessamento de dados e ajuste de modelos.
A versão mais recente, 1.8, lançada em 10 de dezembro de 2025, adicionou suporte nativo para Array API, permitendo cálculos em GPU diretamente através de arrays PyTorch e CuPy. Esta versão também melhorou a eficiencia do ajuste de modelos lineares.
Algoritmos e Capacidades
scikit-learn incluye um amplio catálogo de algoritmos estabelecidos para classificação, regresión e agrupamento. Estes incluyen máquinas de vectores de suporte, florestas aleatórias, aumento de gradiente, k-means e DBSCAN. Ofrece métodos consistentes entre estimadores: fit() para treinamento e predict() para inferência, que bibliotecas como XGBoost e LightGBM adotaram.
A biblioteca também oferece métodos utilitários para tarefas comuns de ciência de dados, incluindo divisão de dados em conjuntos de treinamento e teste, validação cruzada e busca em grade. Sua classe Pipeline permite estruturar declarativamente fluxos de trabalho de ciência de dados, combinando etapas de preprocessamento com ajuste de modelos.
Algoritmos Chave e Integraciones
As máquinas de vectores de suporte são implementadas através de um wrapper de Cython ao redor de LIBSVM, enquanto a regresión logística e as máquinas de vectores de suporte lineares usam um wrapper similar ao redor de LIBLINEAR. A biblioteca integra-se com outras herramientas de Python, incluindo Matplotlib e Plotly para visualização, pandas para manipulação de dados e SciPy para computação científica.
Em implementações no mundo real, scikit-learn frequentemente se coloca ao lado de Pandas e Numpy para manejo de dados.