Proyectos Relacionados¶
Se anima a los proyectos que implementan la API del estimador de scikit-learn a utilizar scikit-learn-contrib template que facilita las mejores prácticas para probar y documentar los estimadores. La scikit-learn-contrib GitHub organisation también acepta contribuciones de alta calidad de los repositorios que se ajustan a esta plantilla.
A continuación se muestra una lista de proyectos relacionados, extensiones y paquetes específicos de dominio.
Mejoras en la interoperabilidad y el marco de trabajo¶
Estas herramientas adaptan scikit-learn para su uso con otras tecnologías o mejoran la funcionalidad de los estimadores de scikit-learn.
Formatos de datos
Fast svmlight / libsvm file loader Cargador de archivos svmlight / libsvm rápido y eficiente en memoria para Python.
sklearn_pandas puente para pipelines scikit-learn y pandas data frame con transformadores dedicados.
sklearn_xarray proporciona compatibilidad de los estimadores de scikit-learn con las estructuras de datos xarray.
Auto–ML
auto-sklearn Un conjunto de herramientas de aprendizaje automático y un sustituto de un estimador de scikit-learn
autoviml Construye automáticamente múltiples modelos de aprendizaje automático con una sola línea de código. Diseñado como una forma más rápida de utilizar los modelos de scikit-learn sin tener que preprocesar los datos.
TPOT Un kit de herramientas de aprendizaje automático que optimiza una serie de operadores de scikit-learn para diseñar un pipeline de aprendizaje automático, incluyendo los preprocesadores de datos y características, así como los estimadores. Funciona como un reemplazo de un estimador de scikit-learn.
Featuretools Un marco para realizar ingeniería de características automatizada. Puede utilizarse para transformar conjuntos de datos temporales y relacionales en matrices de características para el aprendizaje automático.
Neuraxle Una biblioteca para la construcción de pipelines, proporcionando las abstracciones adecuadas para facilitar la investigación, el desarrollo y el despliegue de aplicaciones de aprendizaje automático. Compatible con los marcos de aprendizaje profundo y la API de scikit-learn, puede transmitir minilotes, utilizar puntos de control de datos, construir pipelines complejos y serializar modelos con ahorradores personalizados por paso.
Marcos de experimentación
REP Entorno para realizar investigaciones basadas en datos de forma coherente y reproducible
Scikit-Learn Laboratory Un envoltorio de línea de comandos alrededor de scikit-learn que facilita la ejecución de experimentos de aprendizaje automático con múltiples aprendices y grandes conjuntos de características.
Inspección y visualización del modelo
dtreeviz Una biblioteca python para la visualización del árbol de decisiones y la interpretación de modelos.
eli5 Una biblioteca para depurar/inspeccionar modelos de aprendizaje automático y explicar sus predicciones.
mlxtend Incluye utilidades de visualización de modelos.
yellowbrick Un conjunto de visualizadores personalizados de matplotlib para estimadores de scikit-learn para apoyar el análisis visual de características, la selección de modelos, la evaluación y el diagnóstico.
Selección del modelo
scikit-optimize Una biblioteca para minimizar funciones de caja negra (muy) costosas y ruidosas. Implementa varios métodos para la optimización secuencial basada en modelos, e incluye un reemplazo para
GridSearchCV
oRandomizedSearchCV
para hacer una búsqueda de parámetros validada en paralelo usando cualquiera de estas estrategias.- sklearn-deap Uso evolutivo
algoritmos en lugar de búsqueda en cuadrícula en scikit-learn.
Exportar modelos para producción
onnxmltools Serializa muchos pipelines de Scikit-learn a ONNX para su intercambio y predicción.
sklearn2pmml Serialización de una amplia variedad de estimadores y transformadores de scikit-learn en PMML con la ayuda de la biblioteca JPMML-SkLearn.
sklearn-porter Transpila modelos entrenados de scikit-learn a C, Java, Javascript y otros.
treelite Compila modelos de conjuntos basados en árboles en código C para minimizar la latencia de la predicción.
Otros estimadores y tareas¶
No todo pertenece o está lo suficientemente avanzado para el proyecto central scikit-learn. Los siguientes son proyectos que proporcionan interfaces similares a scikit-learn para algoritmos de aprendizaje, infraestructuras y tareas adicionales.
Aprendizaje estructurado
tslearn Una biblioteca de aprendizaje automático para series temporales que ofrece herramientas para el preprocesamiento y la extracción de características, así como modelos dedicados para la conglomeración, la clasificación y la regresión.
sktime Una caja de herramientas compatible con scikit-learn para el aprendizaje automático con series temporales, incluyendo la clasificación/regresión de series temporales y la previsión (supervisada/panel).
HMMLearn Implementación de modelos ocultos de markov que anteriormente formaban parte de scikit-learn.
PyStruct Campos aleatorios condicionales generales y predicción estructurada.
pomegranate Modelización probabilística para Python, con énfasis en los modelos de Markov ocultos.
sklearn-crfsuite Campos aleatorios condicionales de cadena lineal (CRFsuite envoltorio con API tipo sklearn).
Redes neuronales profundas, etc.
nolearn Una serie de envoltorios y abstracciones alrededor de las bibliotecas de redes neuronales existentes
keras Biblioteca de aprendizaje profundo capaz de funcionar sobre TensorFlow o Theano.
lasagne Una biblioteca ligera para construir y entrenar redes neuronales en Theano.
skorch Una biblioteca de redes neuronales compatible con scikit-learn que envuelve a PyTorch.
Amplio alcance
mlxtend Incluye una serie de estimadores adicionales así como utilidades de visualización del modelo.
scikit-lego Una serie de transformadores, modelos y métricas personalizados compatibles con scikit-learn, centrados en la resolución de tareas prácticas de la industria.
Otros tipos de regresión y clasificación
xgboost Librería optimizada de árboles de decisión con gradiente.
ML-Ensemble Aprendizaje de conjuntos generalizado (apilamiento, mezcla, subconjunto, conjuntos profundos, etc.).
lightning Rápidos solucionadores de modelos lineales de última generación (SDCA, AdaGrad, SVRG, SAG, etc…).
py-earth Splines de regresión adaptativa multivariante
Regresión kernel Implementación de la regresión kernel de Nadaraya-Watson con selección automática del ancho de banda
gplearn Programación genética para tareas de regresión simbólica.
scikit-multilearn Clasificación multietiqueta con enfoque en la manipulación del espacio de etiquetas.
seglearn Aprendizaje de series temporales y secuencias mediante segmentación de ventanas deslizantes.
libOPF Clasificador de bosque de rutas óptimas
fastFM Implementación de la máquina de factorización rápida compatible con scikit-learn
Descomposición y conglomeración
lda: Implementación rápida de la asignación de Dirichlet latente en Cython que utiliza el Gibbs sampling para tomar muestras de la verdadera distribución posterior. (scikit-learn’s
LatentDirichletAllocation
implementation uses variational inference para muestrear desde una aproximación trazable de la distribución posterior de un modelo temático.)kmodes algoritmo de conglomerados k-modes para datos categóricos, y algunas de sus variaciones.
hdbscan algoritmos HDBSCAN y Robust Single Linkage clustering para la agrupación robusta de densidad variable.
spherecluster Rutinas de conglomerados K-medias esférica y mezcla de von Mises Fisher para datos en la hiperesfera unitaria.
Preprocesamiento
categorical-encoding Una biblioteca de codificadores de variables categóricas compatibles con sklearn.
imbalanced-learn Métodos variados a conjuntos de datos sub-y sobre-muestreo.
Feature-engine Una biblioteca de transformadores compatibles con sklearn para la imputación de datos faltantes, codificación categórica, transformación de variables, discretización, manejo de valores atípicos y más. Feature-engine permite la aplicación de pasos de preprocesamiento a grupos seleccionados de variables y es totalmente compatible con el Scikit-learn Pipeline.
Análisis de datos topológicos
giotto-tda Una librería para Topological Data Analysis con el objetivo de proporcionar una API compatible con scikit-learn. Ofrece herramientas para transformar las entradas de datos (nubes de puntos, gráficos, series temporales, imágenes) en formas adecuadas para los cálculos de los resúmenes topológicos, y componentes dedicados a la extracción de conjuntos de características escalares de origen topológico, que se pueden utilizar junto con otros métodos de extracción de características en scikit-learn.
Aprendizaje estadístico con Python¶
Otros paquetes útiles para el análisis de datos y el aprendizaje automático.
Pandas Herramientas para trabajar con datos heterogéneos y en columnas, consultas relacionales, series temporales y estadísticas básicas.
statsmodels Estimación y análisis de modelos estadísticos. Más centrado en las pruebas estadísticas y menos en la predicción que scikit-learn.
PyMC Modelos estadísticos bayesianos y algoritmos de ajuste.
Sacred Herramienta para ayudarte a configurar, organizar, registrar y reproducir experimentos
Seaborn Biblioteca de visualización basada en matplotlib. Proporciona una interfaz de alto nivel para diseñar atractivos gráficos estadísticos.
Paquetes de motores de recomendación¶
implicit, Biblioteca para conjuntos de datos de retroalimentación implícita.
lightfm Una implementación en Python/Cython de un sistema de recomendación híbrido.
OpenRec Algoritmos de recomendación inspirados en redes neuronales basados en TensorFlow.
Spotlight Implementación basada en Pytorch de modelos de recomendación profunda.
Surprise Lib Biblioteca para conjuntos de datos de retroalimentación explícita.
Paquetes específicos de dominio¶
scikit-image Procesamiento de imágenes y visión por computadora en python.
Natural language toolkit (nltk) Procesamiento del lenguaje natural y algo de aprendizaje automático.
gensim Una biblioteca para el modelado de temas, la indexación de documentos y la recuperación de similitudes
NiLearn Aprendizaje automático para la neuroimagen.
AstroML Aprendizaje automático para la astronomía.
MSMBuilder Aprendizaje automático para series temporales de dinámica conformacional de proteínas.