Top Python Libraries for Data Science, Data Visualization &
Machine Learning
This article is a translation of
the original that appears on KDnuggets:
Thank you very much for allowing
its publication in Spanish.
Muchas gracias por permitir su
publicación en español.
Bibliotecas de Python más importantes en ciencia
de datos, visualización de datos y aprendizaje automático
Etiquetas: Automated Machine Learning, AutoML, Data
Exploration, Data Processing, Data
Science, Data Visualization, Explainability, Machine
Learning, Python
Este artículo presenta las 38 bibliotecas más importantes de Python que
se aplican en ciencia de datos, en visualización de datos y en aprendizaje
automático, según el mejor criterio de los responsables de KDnuggets.
Autor Matthew Mayo, KDnuggets.
Ha pasado algún tiempo desde la
última vez que elaboramos un resumen de las bibliotecas de
Python y, por este motivo, hemos aprovechado la oportunidad para comenzar el
mes de noviembre con una lista actualizada.
La última vez que hicimos algo
parecido a esto en KDnuggets, el editor y autor Dan Clark dividió la amplia gama de
bibliotecas de Python relacionadas con la ciencia de datos en varias colecciones
más pequeñas, las bibliotecas de ciencia de datos, las de aprendizaje
automático y las de aprendizaje profundo. Si bien dividir las bibliotecas en
categorías es intrínsecamente arbitrario, esto tenía sentido en el momento de
la publicación anterior.
Esta vez, sin embargo, hemos dividido en dos las bibliotecas de Python
de código abierto recopiladas que se aplican a la ciencia de datos. Esta
primera publicación (este artículo) trata de "ciencia de datos,
visualización de datos y aprendizaje automático" que pueden considerarse
herramientas de ciencia de datos "tradicionales" que se ocupan de
tareas habituales. La segunda publicación, que verá la luz dentro de unos días,
se ocupará de las bibliotecas que se utilizan en la creación de redes
neuronales y las que realizan tareas de procesamiento del lenguaje natural y visión
por computador.
Una vez más, esta separación y clasificación es arbitraria, en algunos
casos más que en otros, pero hemos hecho todo lo posible para agrupar las
herramientas por casos de uso previstos, con la esperanza de que sea más útil
para los lectores.
Las categorías incluidas en esta publicación, que consideramos que
tienen en cuenta las bibliotecas de ciencia de datos tradicionales, aquellas
que probablemente las utilicen los profesionales en el entorno de la ciencia de
datos para trabajos de índole general, no relacionados con redes neuronales ni
con la investigación, son:
- Datos: bibliotecas
para la gestión, manipulación y otros tipos de procesamiento de datos.
- Matemáticas: mientras que muchas bibliotecas realizan tareas matemáticas,
esta pequeña colección se dedica a ello de forma exclusiva.
- Aprendizaje
automático: autoexplicativo;
excluye bibliotecas destinadas principalmente a crear redes neuronales o a
automatizar procesos de aprendizaje automático.
- Aprendizaje
automático automatizado: bibliotecas que
funcionan principalmente para automatizar procesos relacionados con el
aprendizaje automático.
- Visualización de
datos: bibliotecas que sirven principalmente
para llevar a cabo funciones relacionadas con la visualización de datos,
en contraposición al modelado, preprocesamiento, etc.
- Explicación y
exploración: bibliotecas empleadas
principalmente para explorar y explicar modelos o datos.
La lista está formada por las bibliotecas que nuestro equipo decidió
por consenso que eran representativas de las bibliotecas de Python tradicionales
y que se utilizan profusamente. Además, para incluir en la lista una biblioteca,
debe tener un repositorio Github. Las categorías no siguen un orden en concreto,
y tampoco se incluyen las bibliotecas que contiene cada una. Contemplamos en su
momento la posibilidad de seguir un orden arbitrario mediante estrellas o a
través de alguna otra métrica, pero decidimos no hacerlo para no desviarnos
explícitamente de identificar cualquier valor considerado o la importancia de
las bibliotecas que contengan. El listado aquí, entonces, es puramente
aleatorio. Las descripciones de las bibliotecas provienen, de una forma u otra,
directamente de los repositorios de Github.
Gracias a Ahmed Anis por su comtribución a la recolección de los datos, y al resto
del personal de KDnuggets por sus
aportaciones, conocimientos y sugerencias.
Hay que
tener en cuenta que la visualización, de Gregory Piatetsky, que aparece a continuación, representa cada biblioteca según el tipo
en una gráfica de estrellas (eje de ordenadas) y colaboradores (eje de
abscisas), y el tamaño de cada símbolo representa el número relativo de commits
que la biblioteca tiene en Github.
Figura 1: Bibliotecas de Python más importantes en ciencia de datos,
visualización de datos y aprendizaje automático
Distribuidas según el número de estrellas y el número de colaboradores. El
tamaño depende del número de colaboradores
Y, sin más preámbulos,
aquí están las 38 principales bibliotecas de Python para ciencia de datos,
visualización de datos y aprendizaje automático, según el mejor criterio de los
responsables de KDnuggets.
Datos
1. Apache Spark
Estrellas:
27600, Commits: 28197, Colaboradores: 1638
Apache Spark es un motor
de análisis unificado para el procesamiento de datos a gran escala
2. Pandas
Estrellas: 26800, Commits: 24300, Colaboradores: 2126
Pandas es un paquete de
Python que proporciona estructuras de datos rápidas, flexibles y de fácil
interpretación, diseñadas para que el trabajo con datos
"relacionales" o "etiquetados" sea fácil e intuitivo. Su
objetivo es ser el componente fundamental de alto nivel para realizar análisis
de datos prácticos del mundo real con Python.
3. Dask
Estrellas: 7300, Commits: 6149, Colaboradores: 393
Computación en paralelo
con programación de tareas
Matemáticas
4. Scipy
Estrellas: 7500, Commits: 24247, Colaboradores: 914
SciPy (pronunciado “saɪ paɪ") es un software de código abierto
para matemáticas, ciencias e ingeniería. Incluye módulos para estadísticas,
optimización, integración, álgebra lineal, transformadas de Fourier,
procesamiento de señales e imágenes, solucionadores de ODE, etc.
5. Numpy
Estrellas: 1500, Commits: 24266, Colaboradores: 1010
El paquete fundamental
para informática científica con Python.
Aprendizaje automático
6. Scikit-Learn
Estrellas: 42500, Commits: 26162, Colaboradores: 1881
Scikit-learn es un módulo
de Python para el aprendizaje automático creado sobre SciPy y se distribuye
bajo la licencia 3-Clause BSD.
7. XGBoost
Estrellas: 19900, Commits: 5015, Colaboradores: 461
Biblioteca
de aumento de gradiente escalable, portátil y distribuida (GBDT, GBRT o GBM),
para Python, R, Java, Scala, C ++, etc. Se ejecuta en una sola máquina, Hadoop,
Spark, Flink y DataFlow
8. LightGBM
Estrellas: 11600, Commits: 2066, Colaboradores: 172
Es una etructura de
aumento de gradiente rápido, distribuida y de alto rendimiento (GBT, GBDT,
GBRT, GBM o MART) basada en algoritmos de árbol de decisiones, que se utiliza
para la ordenación, clasificación y muchas otras tareas de aprendizaje
automático.
9. Catboost
Estrellas: 5400, Commits: 12936, Colaboradores: 188
Es
una biblioteca de aumento de gradiente en árboles
de decisión rápida, escalable y de alto rendimiento, que se utiliza para la
clasificación, regresión y otras tareas de aprendizaje automático para Python,
R, Java, C ++. Admite cálculos en CPU y GPU.
10. Dlib
Estrellas: 9500, Commits: 7868, Colaboradores: 146
Dlib es un moderno
conjunto de herramientas de C ++ que contiene algoritmos y herramientas de
aprendizaje automático para crear software complejo en C ++ con el que resolver
problemas del mundo real. Se puede usar con Python a través de la API de Dlib.
11. Annoy
Estrellas: 7700, Commits: 778, Colaboradoress: 53
Algoritmo Approximate
Nearest Neighbors en C++ / Python optimizado para el uso de memoria y la carga
/ almacenamiento en disco.
12. H20ai
Estrellas: 500, Commits: 27894, Colaboradores: 137
Plataforma de aprendizaje
automático rápida, escalable, de código abierto para aplicaciones más
inteligentes: aprendizaje profundo, aumento de gradiente y XGBoost, bosque
aleatorio, modelado lineal generalizado (regresión logística, red elástica),
K-Means, PCA, conjuntos apilados, aprendizaje automátizado (AutoML), etc.
13. StatsModels
Estrellas: 5600, Commits: 13446, Colaboradores: 247
Statsmodels: modelado
estadístico y econometría con Python
14. mlpack
Estrellas: 3400, Commits: 24575, Colaboradores: 190
mlpack es una biblioteca
de aprendizaje automático de C ++ intuitiva, rápida y flexible con enlaces a
otros lenguajes
15. Pattern
Estrellas: 7600, Commits: 1434, Colaboradores: 20
Módulo de minería web
para Python, con herramientas para scraping, procesamiento de lenguaje natural,
aprendizaje automático, análisis y visualización de redes.
16. Prophet
Estrellas: 11500, Commits: 595, Colaboradores: 106
Herramienta para elaborar
pronósticos de alta calidad para datos de series de tiempo que tienen
estacionalidad múltiple con crecimiento lineal o no lineal.
Aprendizaje automático automatizado
17. TPOT
Estrellas: 7500, Commits: 2282, Colaboradores: 66
Es una herramienta de
aprendizaje automático automatizado de Python que optimiza los procesos de
aprendizaje automático mediante programación genética.
18. auto-sklearn
Estrellas: 4100, Commits: 2343, Colaboradores: 52
auto-sklearn es un kit de
herramientas de aprendizaje automático automatizado y un sustituto inmediato
para un estimador de scikit-learn.
19. Hyperopt-sklearn
Estrellas: 1100, Commits: 188, Colaboradores: 18
Hyperopt-sklearn es una
selección de modelos basada en Hyperopt entre los algoritmos de aprendizaje
automático en scikit-learn.
20. SMAC-3
Estrellas: 529, Commits: 1882, Colaboradores: 29
Configuración de
algoritmos secuenciales basados en modelos
21. scikit-optimize
Estrellas: 1900, Commits: 1540, Colaboradores: 59
Scikit-Optimize, o skopt,
es una biblioteca sencilla y eficiente para minimizar funciones (muy) costosas
y ruidosas del tipo caja negra.
Implementa varios métodos para la optimización secuencial basada en modelos.
22. Nevergrad
Estrellas: 2700, Commits: 663, Colaboradores: 38
Es una caja de
herramientas de Python para realizar una optimización sin gradientes
23. Optuna
Estrellas: 3500, Commits: 7749, Colaboradores: 97
Optuna es una estructura automática
de software de optimización de hiperparámetros, especialmente diseñada para el
aprendizaje automático.
Visualización de datos
24. Apache
Superset
Estrellas:
30300, Commits: 5833, Colaboradores: 492
Apache Superset es una
plataforma de exploración y visualización de datos.
25. Matplotlib
Estrellas: 12300, Commits: 36716, Colaboradores: 1002
Matplotlib es una
biblioteca completa para crear visualizaciones estáticas, animadas e interactivas
en Python.
26. Plotly
Estrellas: 7900, Commits: 4604, Colaboradores: 137
Plotly.py es una
biblioteca de gráficos interactiva, de código abierto y basada en navegador
para Python.
27. Seaborn
Estrellas: 7700, Commits: 2702, Colaboradores: 126
Seaborn es una biblioteca
de visualización de Python basada en matplotlib. Proporciona una interfaz de
alto nivel para dibujar gráficos estadísticos atractivos.
28. folium
Estrellas: 4900, Commits: 1443, Colaboradores: 109
Folium se basa en las
fortalezas de la disputa de datos del ecosistema de Python y las fortalezas de
mapeo de la biblioteca Leaflet.js. Manipule sus datos en Python y después
visualícelos en un mapa Leaflet a través de Folium.
29. Bqplot
Estrellas: 2900, Commits: 3178, Colaboradores: 45
Bqplot
es un sistema de visualización 2-D para Jupyter, basado en las construcciones
de Grammar of Graphics.
30. VisPy
Estrellas: 2500, Commits: 6352, Colaboradores: 117
VisPy es una biblioteca
interactiva de visualización de datos 2D / 3D de alto rendimiento. VisPy
aprovecha la potencia computacional de las modernas unidades de procesamiento
de gráficos (GPU) a través de la biblioteca OpenGL para mostrar conjuntos de
datos muy grandes. Las aplicaciones de VisPy incluyen:
31. PyQtgraph
Estrellas: 2200, Commits: 2200, Colaboradores: 142
Rápida visualización de
datos y herramientas GUI para aplicaciones científicas / de ingeniería.
32. Bokeh
Estrellas: 1400, Commits: 18726, Colaboradores: 467
Bokeh es una biblioteca
de visualización interactiva para navegadores web modernos. Proporciona una
elaboración elegante y concisa de gráficos versátiles y ofrece interactividad
de alto rendimiento en conjuntos de datos grandes o de transmisión.
33. Altair
Estrellas: 600, Commits: 3031, Colaboradores: 106
Altair es una biblioteca
de visualización estadística declarativa para Python. Con Altair, puede dedicar
más tiempo a comprender los datos y su significado.
Explicaciones y exploraciones
34. eli5
Estrellas: 2200, Commits: 1198, Colaboradores: 15
Es una biblioteca para
depurar / inspeccionar clasificadores de aprendizaje automático y explicar sus
predicciones
35. LIME
Estrellas: 800, Commits: 501, Colaboradores: 41
Lime explica las
predicciones de cualquier clasificador de aprendizaje automático
36. SHAP
Estrellas: 10400, Commits: 1376, Colaboradores: 96
Es un enfoque de teoría
de juegos para explicar el resultado de cualquier modelo de aprendizaje
automático.
37. YellowBrick
Estrellas: 300, Commits: 825, Colaboradores: 92
Son herramientas de
diagnóstico y análisis visual para facilitar la selección del modelo de
aprendizaje automático.
38. pandas-profiling
Estrellas: 6200, Commits: 704, Colaboradores: 47
Crea informes de perfiles
HTML a partir de objetos pandas DataFrame.
Enlaces
relacioandos:
·
Top 10 Python Data Science Libraries