Post Top Ad

Your Ad Spot

martes, 18 de agosto de 2020

Las 25 principales bibliotecas de Python para aprendizaje automático

Python y su ecosistema

Python es uno de los lenguajes más utilizados por científicos de datos y expertos en aprendizaje automático en todo el mundo. Aunque no hay escasez de alternativas en forma de lenguajes como R, Julia y otros, Python ha ganado popularidad de manera constante y legítima.
Python tiene más interés sobre R y Julia de manera constante durante los últimos 5 años
De manera similar a las Tendencias de Google que se muestran arriba (la gráfica se prepara con matplotlib y pytrends), la confianza es visible año tras año con Python muy por encima de sus pares en las encuestas de StackOverflow para 2017 y 2018 . Estas tendencias / encuestas son las consecuencias de la facilidad de uso, una curva de aprendizaje más corta, un uso generalizado, una comunidad sólida, una gran cantidad de bibliotecas que cubren la profundidad y la amplitud de una serie de áreas de investigación y aplicación.
La asombrosa popularidad podría hacer pensar que Python es el estándar de oro para el aprendizaje automático. Esto podría ser cierto hasta cierto punto, Python no está libre de críticas por ser lento, problemas con subprocesos múltiples, etc. Sería un error pasar por alto sus trampas y limitaciones. Un buen artículo que describe algunos de los problemas:

Baterias incluidas

En este artículo, lo guiaremos a través de un increíble ecosistema de bibliotecas y proyectos que hacen de Python la opción preferida para el aprendizaje automático. Pero antes de empezar con las bibliotecas, una pequeña nota sobre su filosofía de “ pilas incluidas ”. La filosofía de baterías incluidas se refiere a la biblioteca estándar todopoderosa que hace su vida más fácil como programador.
Fuente
La biblioteca estándar (o si nos tomamos la libertad de decir instalación vanilla de Python), contiene un conjunto de módulos fáciles de usar para tareas que van desde el manejo de JSON, la realización de llamadas RPC, correos electrónicos, operaciones matemáticas y estadísticas, expresiones regulares, operaciones relacionadas con el sistema operativo, etc. en. Todo esto y muchos más junto con un poderoso conjunto de estructuras de datos como listas y diccionarios nos permiten realizar tareas con mucha más facilidad en comparación con otros lenguajes. Consulte la página de la biblioteca estándar para obtener más detalles: junto con una buena explicación aquí .

Bibliotecas de manejo de datos principales:

1. Numpy

Python tiene un sólido conjunto de tipos de datos y estructuras de datos. Sin embargo, no fue diseñado para el aprendizaje automático, por ejemplo. Introduzca numpy (pronunciado como num-pee). Numpy es una biblioteca de manejo de datos, particularmente una que nos permite manejar grandes arreglos multidimensionales junto con una gran colección de operaciones matemáticas. El siguiente es un breve fragmento de numpy en acción.
Numpy no es solo una biblioteca de manejo de datos conocida por su capacidad para manejar datos multidimensionales. También es conocido por su velocidad de ejecución y capacidades de vectorización. Proporciona una funcionalidad de estilo MATLAB y, por lo tanto, requiere algo de aprendizaje antes de que pueda sentirse cómodo. También es una dependencia central para otras bibliotecas más utilizadas como pandas, matplotlib, etc. Su documentación en sí misma es un buen punto de partida. Enlace oficial .
Ventajas
Numpy no es solo una biblioteca, es "la biblioteca" cuando se trata de manejar datos multidimensionales. Las siguientes son algunas de las características de goto que lo hacen especial:
  • Capacidades de manipulación de matrices (y matrices multidimensionales) como transposición, remodelación, etc.
  • Estructuras de datos altamente eficientes que aumentan el rendimiento y manejan la recolección de basura con facilidad.
  • La capacidad de vectorizar la operación, nuevamente mejora el rendimiento y las capacidades de paralelización.
Desventajas
Las principales desventajas de numpy son:
  • Dependencia de entidades ambientales no pitónicas, es decir, debido a su dependencia de Cython y otras bibliotecas C / C ++, la configuración de numpy puede ser una molestia
  • Su alto rendimiento tiene un costo. Los tipos de datos son nativos del hardware y no de Python, por lo que incurren en una sobrecarga cuando los objetos numpy tienen que volver a transformarse en equivalentes de Python y viceversa.

2. Pandas

Piense en datos relacionales, piense en pandas. Sí, pandas es una biblioteca de Python que proporciona estructuras de datos flexibles y expresivas (como marcos de datos y series) para la manipulación de datos. Construido sobre numpy, pandas es igual de rápido y más fácil de usar.
Pandas proporciona capacidades para leer y escribir datos de diferentes fuentes como CSV, Excel, bases de datos SQL, HDFS y muchas más. Proporciona funcionalidad para agregar, actualizar y eliminar columnas, combinar o dividir dataframes / series, manejar objetos de fecha y hora, imputar valores nulos / faltantes, manejar datos de series de tiempo, conversión ay desde numerosos objetos, etc. Si está trabajando en un caso de uso de aprendizaje automático en el mundo real, es probable que necesite pandas más temprano que tarde. Al igual que numpy, los pandas también son un componente importante de SciPy o Scientific Python Stack (consulte para obtener más detalles . Enlace oficial .
Ventajas
  • Extremadamente fácil de usar y con una pequeña curva de aprendizaje para manejar datos tabulares.
  • Increíble conjunto de utilidades para cargar, transformar y escribir datos en múltiples formatos.
  • Compatible con objetos numpy subyacentes y opción para la mayoría de las bibliotecas de aprendizaje automático como scikit-learn, etc.
  • Capacidad para preparar gráficos / visualizaciones fuera de la caja (utiliza matplotlib para preparar diferentes visualizaciones bajo el capó).
Desventajas
  • La facilidad de uso tiene el costo de una mayor utilización de la memoria. Pandas crea demasiados objetos adicionales para proporcionar un acceso rápido y facilidad de manipulación.
  • Incapacidad para utilizar infraestructura distribuida. Aunque los pandas pueden trabajar con formatos como archivos HDFS, no pueden utilizar la arquitectura del sistema distribuido para mejorar el rendimiento.

3. Scipy

Pronunciada como Sigh-Pie, esta es una de las bibliotecas de pitones más importantes de todos los tiempos. Scipy es una biblioteca informática científica para Python. También está construido sobre numpy y es parte de Scipy Stack.
Esta es otra biblioteca detrás de escena que hace mucho trabajo pesado. Proporciona módulos / algoritmos para álgebra lineal, integración, procesamiento de imágenes, optimizaciones, agrupamiento, manipulación de matrices dispersas y muchos más. Enlace oficial .

4. Matplotlib

Otro componente de la pila SciPy, matplotlib es esencialmente una biblioteca de visualización. Funciona a la perfección con numerosos objetos (y sus derivados de alto nivel como pandas). Matplotlib proporciona un entorno de trazado similar a MATLAB para preparar figuras / gráficos de alta calidad para publicaciones, cuadernos, aplicaciones web, etc.
Fuente
Matplolib es una biblioteca de bajo nivel altamente personalizable que proporciona una gran cantidad de controles y perillas para preparar cualquier tipo de visualización / figura. Dada su naturaleza de bajo nivel, requiere un poco de acostumbrarse junto con mucho código para hacer las cosas. Su diseño extensible y bien documentado ha permitido construir una lista completa de bibliotecas de visualización de alto nivel. Algunos de los cuales discutiremos en las próximas secciones. Enlace oficial :
Ventajas
  • Sintaxis extremadamente expresiva y precisa para generar gráficos altamente personalizables
  • Se puede utilizar fácilmente en línea con los portátiles Jupyter
Desventajas
  • Gran dependencia de numpy y otras bibliotecas de pila Scipy
  • Gran curva de aprendizaje, requiere bastante comprensión y práctica para usar matplotlib.

Estrellas del aprendizaje automático:

5. Scikit-Learn

Diseñado como una extensión de la biblioteca SciPy, scikit-learn se ha convertido en el estándar de facto para muchas de las tareas de aprendizaje automático. Desarrollado como parte del proyecto Google Summer of Code, ahora se ha convertido en un proyecto de código abierto ampliamente contribuido con más de 1000 colaboradores.
Scikit-learn proporciona un paradigma de predicción y transformación de ajuste simple pero poderoso para aprender de los datos, transformar los datos y finalmente predecir. Con esta interfaz, proporciona capacidades para preparar modelos de clasificación, regresión, agrupación y conjunto. También proporciona multitud de utilidades para preprocesamiento, métricas, técnicas de evaluación de modelos, etc. Enlace oficial
Ventajas
  • El paquete de referencia que lo tiene todo para los algoritmos clásicos de aprendizaje automático
  • Interfaz de ajuste y transformación consistente y fácil de entender
  • La capacidad para preparar tuberías no solo ayuda con la creación rápida de prototipos, sino también con implementaciones rápidas y confiables
Desventajas
  • Incapacidad para utilizar datos categóricos para algoritmos listos para usar que admiten tales tipos de datos (los paquetes en R tienen tales capacidades)
  • Gran dependencia de la pila Scipy

6. Modelos de estadísticas

Como su nombre indica, esta biblioteca agrega herramientas / algoritmos estadísticos en forma de clases y funciones al mundo de Python. Construido sobre numpy y scipy, Statsmodels proporciona una extensa lista de capacidades en forma de modelos de regresión, análisis de series de tiempo, autorregresión, etc.
Statsmodels también proporciona una lista detallada de estadísticas de resultados (incluso más allá de lo que proporciona scikit-learn). Se integra muy bien con pandas y matplotlib y, por lo tanto, es una parte importante de la caja de herramientas de cualquier científico de datos. Para las personas que están familiarizadas y se sienten cómodas con el estilo de programación R, Statsmodels también proporciona una interfaz de fórmula similar a R usando patsy. Enlace oficial .
Ventajas
  • Completa la brecha para algoritmos de regresión y series de tiempo para el ecosistema de Python
  • Análogo a ciertos paquetes R, por lo tanto, una curva de aprendizaje más pequeña
  • Enorme lista de algoritmos y utilidades para manejar casos de uso de regresión y series de tiempo
Desventajas
  • No tan bien documentado con ejemplos como sklearn
  • Ciertos algoritmos tienen errores con poca o ninguna explicación de los parámetros

7. Impulso

El impulso es uno de los métodos conjuntos para desarrollar un clasificador sólido basado en múltiples estudiantes débiles (el empaquetamiento es su contraparte). Scikit-learn es una ventanilla única para la mayoría de sus necesidades de algoritmos de aprendizaje automático. Proporciona una lista suficientemente buena de algoritmos de clasificación junto con capacidades para construir modelos mejorados basados ​​en ellos. También proporciona un algoritmo de aumento de gradiente listo para usar.

8. Embolsado Vs Impulso

A lo largo de los años, ha habido una serie de avances en términos de mejorar el algoritmo de impulso del gradiente de vainilla. Las mejoras se han dirigido tanto a su generalización como a su velocidad de ejecución. Para llevar estas capacidades a Python, las siguientes son algunas variantes del algoritmo vanilla.

9. XGBoost

Una de las bibliotecas / algoritmos más utilizados en varios concursos de ciencia de datos y casos de uso del mundo real, XGBoost es probablemente una de las variantes más conocidas.
Fuente
Una implementación altamente optimizada y distribuida, XGBoost permite la ejecución paralela y, por lo tanto, proporciona una inmensa mejora del rendimiento sobre los árboles impulsados ​​por gradientes. Proporciona capacidades para ejecutar fácilmente en marcos distribuidos como Hadoop. También tiene envoltorios para R, Java y Julia. Enlace oficial .

10. LightGBM

Otra variante distribuida y rápida de GBM (Gradient Boosting Machines), LightGBM es de la casa de Microsoft. Es similar a XGBoost en la mayoría de los aspectos, salvo algunos relacionados con el manejo de variables categóricas y el proceso de muestreo para identificar la división de nodos. LightGBM utiliza un método novedoso llamado GOSS (muestreo a una cara basado en gradientes) para identificar la división de nodos. También tiene la capacidad de utilizar GPU para mejorar el rendimiento. Se informa durante algunas competiciones que LightGBM es más eficiente en memoria en comparación con XGBoost. Enlace oficial

11. CatBoost

Esta implementación de la investigación de Yandex es una de las principales variantes de árboles potenciados. Proporciona capacidades similares a las dos variantes discutidas anteriormente. Afirma ser mejor en el manejo de variables categóricas y brinda soporte para entrenamiento con múltiples GPU. También es uno de los algoritmos más rápidos cuando se trata de inferencia. Enlace oficial
Las tres variantes / implementaciones de la competencia discutidas anteriormente tienen mucho en común, pero tienen algunas características mejores que el resto. Para comprender mejor las diferencias en los algoritmos y su inferencia, consulte el siguiente artículo .

12. ELI5

Explique como si tuviera 5 (años). Sí, esto es lo que significa ELI5. Es genial que sepamos cómo desarrollar modelos para diferentes casos de uso, pero ¿hay alguna manera de entender cómo infiere algo el modelo? Algunos algoritmos, como los árboles de decisión, son intrínsecamente explicables, pero no todos (al menos no están listos para usar). ELI5 es una de esas bibliotecas que proporciona la capacidad de depurar clasificadores y proporcionar una explicación sobre las predicciones.
Salida de muestra de TextExplainer.
Proporciona envoltorios alrededor de diferentes bibliotecas como scikit-learn, xgboost y muchas más para ayudar a comprender las predicciones. La biblioteca utiliza el algoritmo descrito por Ribeiro et. Al llamado LIME (Explicaciones agnósticas del modelo interpretable local) para muchos de los explicadores. Enlace oficial

Marcos de aprendizaje profundo: 

13. Tensorflow

Probablemente uno de los repositorios de GitHub más populares y una de las bibliotecas más utilizadas para entornos de investigación y producción. Tensorflow es una biblioteca matemática simbólica que permite una programación diferenciable, un concepto central para muchas tareas de Machine Learning.
Los tensores son el concepto central de esta biblioteca, que son objetos matemáticos genéricos para representar vectores, escaladores, matrices multidimensionales, etc.
Fuente
Admite una variedad de tareas de aprendizaje automático, pero se utiliza principalmente para desarrollar redes neuronales profundas. Es utilizado por Google (también desarrollado por ellos) y una serie de gigantes tecnológicos para desarrollar y producir redes neuronales. Tensorflow tiene capacidades no solo para utilizar pilas de múltiples GPU, sino también para trabajar con TPU especializadas o unidades de procesamiento de tensor. Ahora ha evolucionado a este entorno completo propio con módulos para manejar la funcionalidad principal, depuración, visualización, servicio, etc. Enlace oficial .
Ventajas
  • Paquete de nivel industrial que tiene un gran apoyo de la comunidad con frecuentes correcciones de errores y mejoras a intervalos regulares
  • Capacidad para trabajar con un conjunto diverso de hardware como plataformas móviles, web, CPU y GPU
  • Escalabilidad para manejar enormes cargas de trabajo y funciona desde el primer momento
  • Funciones bien documentadas con toneladas de tutoriales y ejemplos
Desventajas
  • La interfaz de bajo nivel dificulta el inicio, una gran curva de aprendizaje
  • No es fácil acostumbrarse a los gráficos de cálculo (aunque esto se ha abordado en gran medida con una ejecución ávida en la versión 2.0)

14. Theano

Comencemos diciendo que Theano es para el aprendizaje profundo qué es numpy para el aprendizaje automático. Theano (ahora un proyecto obsoleto) fue una de las primeras bibliotecas en proporcionar capacidades para manipular matrices multidimensionales. Es anterior a Tensorflow y, por lo tanto, no es tan eficaz ni expresivo. Theano tiene la capacidad de utilizar GPU de forma transparente. Está estrechamente integrado con numpy, proporciona una sintaxis de diferenciación simbólica junto con varias optimizaciones para manejar números pequeños y grandes. Antes de la llegada de las bibliotecas más nuevas, Theano era el bloque de construcción de facto para trabajar con redes neuronales. Theano fue desarrollado y mantenido activamente por el Instituto de Algoritmos de Aprendizaje de Montreal (MILA), Universidad de Montreal hasta 2017. Enlace oficial
Ventajas
  • Facilidad de comprensión debido a su estrecha relación con numpy
  • Capacidad para utilizar GPU de forma transparente
  • Al ser una de las primeras bibliotecas de aprendizaje profundo, tiene una gran comunidad para ayudar y respaldar problemas.
Desventajas
  • Una vez que el caballo de batalla para los casos de uso de aprendizaje profundo, ahora es un proyecto obsoleto que no se desarrollará más.
  • Sus API de bajo nivel a menudo presentaban una curva de aprendizaje empinada

15. PyTorch

PyTorch es el resultado de la investigación y el desarrollo del grupo de inteligencia artificial de Facebook. PyTorch del día actual es un proyecto fusionado entre pytorch y caffe2. PyTorch es un primer marco de aprendizaje profundo de Python a diferencia de algunos de los otros conocidos que están escritos en C / C ++ y tienen enlaces / envoltorios para Python. Esta primera estrategia de Python permite que PyTorch tenga una sintaxis similar a un número y la capacidad de trabajar sin problemas con bibliotecas similares y sus estructuras de datos.
Admite gráficos dinámicos y ejecución ávida (fue el único hasta Tensorflow 2.0). Al igual que en otros marcos de este espacio, PyTorch también puede aprovechar las GPU y las bibliotecas de aceleración como Intel-MKL. También afirma tener una sobrecarga mínima y, por lo tanto, supuestamente es más rápido que el resto. Enlace oficial
Ventajas
  • Uno de los marcos de aprendizaje profundo más rápidos.
  • Capacidad para manejar gráficos dinámicos en contraposición a los estáticos utilizados por la mayoría de las contrapartes
  • La implementación de Pythonic ayuda a una integración perfecta con los objetos de Python y una sintaxis similar a la numérica
Desventajas
  • Sigue ganando terreno y apoyo, por lo que se queda atrás en cuanto al material (tutoriales, ejemplos, etc.) del que aprender.
  • Capacidades limitadas como visualizaciones y depuración en comparación con una suite completa en forma de tensorboard para tensorflow.

16. Keras

Piensa en la sencillez, piensa en Keras. Keras es un marco de aprendizaje profundo de alto nivel que ha facilitado la forma en que desarrollamos y trabajamos con redes neuronales profundas. Desarrollado principalmente en Python, descansa sobre los hombros de gigantes como Theano, Tensorflow y MXNet (también llamados backends). Keras utiliza estos backends para hacer el trabajo pesado mientras nos permite pensar de manera transparente en términos de capas. Para Keras, el bloque de construcción básico es una capa. Dado que la mayoría de las redes neuronales tienen diferentes configuraciones de capas, trabajar de esa manera facilita enormemente el flujo de trabajo.

Una típica red neuronal Feed Forward basada en Keras

Keras fue desarrollado de forma independiente por François Chollet para uno de los proyectos de investigación y desde entonces también se ha integrado como parte de Tensorflow (aunque también se sigue desarrollando de forma activa y separada). Además de proporcionar una interfaz fácil de usar, permite proporcionar API para trabajar con modelos de última generación previamente entrenados como RESNET, AlexNET, VGG y muchos más.
Ventajas
  • La interfaz intuitiva y fácil de entender ayuda en la creación rápida de prototipos
  • Gran cantidad de modelos previamente entrenados disponibles para usar fuera de la caja
  • Capacidad para trabajar con diferentes bibliotecas de bajo nivel como tensorflow, theano, mxnet, etc.
Desventajas
  • Al ser una biblioteca de alto nivel, es difícil desarrollar componentes personalizados / funciones de pérdida (aunque proporciona capacidades para ampliar)
  • El rendimiento depende del backend subyacente que se utilice.

Otros marcos / bibliotecas DL

Tensorflow, PyTorch, Theano y Keras son bibliotecas básicas cuando se trata de Deep Learning. Sin embargo, estos no son los únicos. También hay varias otras bibliotecas de uso generalizado. Cada uno nacido por una necesidad concreta o por problemas con los populares. Las siguientes son algunas bibliotecas de aprendizaje profundo más en python:

17. FastAi

Esta es una biblioteca de alto nivel (similar a keras) construida sobre PyTorch. Como sugiere su nombre, permite el desarrollo de redes neuronales rápidas y precisas. Proporciona API consistentes y soporte integrado para visión / imagen, texto, etc. Enlace oficial .

18. Caffe

Caffe o arquitectura convolucional para la integración rápida de funciones es un marco de aprendizaje profundo desarrollado por Yangqing Jia para su tesis doctoral. Se usó / diseñó principalmente para la clasificación de imágenes y tareas relacionadas, aunque también es compatible con otras arquitecturas, incluidas LSTM y Fully Connected. Enlace oficial

19. Apache MXNet 

Una de las bibliotecas más utilizadas cuando se trata de casos de uso relacionados con imágenes (ver CNN). Aunque requiere un poco más de código repetitivo, su rendimiento lo compensa. Enlace oficial

20. Gluón

Gluon es una biblioteca / api de aprendizaje profundo de alto nivel de AWS y Microsoft. Actualmente está disponible a través de Apache MXNet y permite la facilidad de uso de las nubes de AWS y Microsoft Azure. Está diseñado para ser rápido y consistente para desarrolladores. Enlace oficial .

Bibliotecas de PNL

21. NLTK

El Kit de herramientas de lenguaje natural o NLTK es un conjunto de ofertas de la Universidad de Pensilvania para diferentes tareas de procesamiento de lenguaje natural o PNL. La versión inicial se remonta a 2001 y ha crecido para ofrecer una serie de funciones. La lista incluye tareas de bajo nivel como la tokenización (proporciona diferentes tokenizadores), analizadores de n-gramas, analizadores de colocación, etiquetadores POS, NER y muchos más.
 Fuente
NLTK es principalmente para tareas de PNL basadas en inglés. Utiliza años de investigación en lingüística y aprendizaje automático para proporcionar estas características. Se usa ampliamente en instituciones académicas e industriales de todo el mundo. Enlace oficial
Ventajas
  • La biblioteca goto para la mayoría de las tareas relacionadas con la PNL
  • Proporciona una gran variedad de algoritmos y utilidades para manejar tareas de PNL, desde utilidades de análisis de bajo nivel hasta algoritmos de alto nivel como CRF
  • Interfaz extensible que nos permite entrenar e incluso ampliar funciones y algoritmos existentes
Desventajas
  • Principalmente escrito en Java, tiene gastos generales y limitaciones en términos de la cantidad de memoria necesaria para manejar grandes conjuntos de datos.
  • Incapacidad para interactuar con los últimos avances en PNL utilizando modelos de aprendizaje profundo

22. Gensim

Gensim es una biblioteca de PNL rápida y lista para producción. Está especialmente diseñado para tareas de modelado de temas no supervisadas, aparte del conjunto habitual de tareas de PNL. De fábrica, proporciona algoritmos como Análisis semántico latente (LSA, LSI), basado en matrices (SVD, NMF) y asignación de Dirichlet latente o LDA. También proporciona funcionalidades para generar representaciones de palabras usando fastText y word2vec (y sus variantes).
Similitud basada en Word2Vec usando Gensim
Gensim también tiene la capacidad de manejar grandes volúmenes de texto mediante la implementación de varios algoritmos sin memoria y sin memoria. Esta capacidad, junto con la solidez y las implementaciones eficientes, la distingue de otras bibliotecas de PNL. Enlace oficial

23. Spacy

Spacy es una biblioteca de procesamiento de lenguaje natural diseñada para varios idiomas como inglés, alemán, portugués, francés, etc. Tiene tokenizadores y NER (Reconocedores de entidades con nombre) para varios idiomas. A diferencia de NLTK, que se utiliza ampliamente con fines académicos, el espacio está diseñado para estar listo para la producción.
Analizador de dependencias y su visualización mediante Spacy.
Además de proporcionar capacidades tradicionales de PNL, spacy también expone enfoques basados ​​en el aprendizaje profundo. Esto permite que se pueda usar fácilmente con marcos como Tensorflow, keras, Scikit-learn, etc. También proporciona vectores de palabras previamente entrenados en varios idiomas. Explosion AI, la compañía detrás de Spacy, también ha desarrollado varias extensiones para mejorar sus capacidades proporcionando visualizaciones (displayCy), algoritmos de aprendizaje automático (Thinc), etc. Enlace oficial

Visualización

24. Seaborn

Construido sobre matplotlib, seaborn es una biblioteca de visualización de alto nivel. Proporciona estilos sofisticados directamente desde el primer momento (lo que requeriría una buena cantidad de esfuerzo si se hiciera con matplotlib).
Muestras de parcelas utilizando seaborn.
Además de la destreza en el diseño y las paletas de colores sofisticadas, seaborn proporciona una variedad de visualizaciones y capacidades para trabajar con análisis multivariante. Proporciona capacidades para realizar análisis de regresión, manejo de variables categóricas y estadísticas agregadas. Enlace oficial

25. Bokeh

¡Bokeh es la abreviatura de visualización con esteroides! No, esto no es una broma. Bokeh proporciona visualizaciones interactivas con zoom utilizando el poder de javascript en un entorno de Python. Las visualizaciones Bokeh son una solución perfecta para compartir resultados a través de un cuaderno Jupyter junto con sus visualizaciones interactivas.
Fuente
Proporciona dos modos de funcionamiento. Un modo de alto nivel para generar fácilmente gráficos complejos. También tiene un modo de bajo nivel que proporciona muchos más controles para las personalizaciones. Es útil para preparar cuadros de mando y otras aplicaciones relacionadas con datos que se utilizan a través de navegadores. Enlace oficial
Ventajas
  • Capacidad para generar visualizaciones interactivas con características como texto flotante, zoom, filtro, selección, etc.
  • Visualizaciones estéticamente superiores
  • Modos de bajo y alto nivel para admitir una alta flexibilidad y una rápida creación de prototipos.
Desventajas
  • Incapacidad para empaquetarse con estado guardado con cuadernos jupyter
  • La interfaz es ligeramente diferente a la de otras bibliotecas de visualización, lo que dificulta la migración de una biblioteca a otra.

26. Plotly

Plotly es una plataforma de visualización de nivel de producción con envoltorios no solo en Python, sino en otros lenguajes como R, Julia, MATLAB, etc. Plotly proporciona visualizaciones, trazado en línea, herramientas estadísticas junto con un conjunto de soluciones como Dash y Chart Studio para satisfacer diferentes necesidades. .
Fuente
Plotly también proporciona capacidades para convertir las visualizaciones de matplotlib y ggplot en interactivas. Es ampliamente utilizado por algunos de los líderes de la industria. A diferencia de la mayoría de las bibliotecas discutidas hasta ahora, plotly también tiene ofertas comerciales.  Enlace oficial

Diverso

Hasta ahora hemos discutido las bibliotecas de Python más importantes, populares y ampliamente utilizadas que son esenciales para diferentes tareas dentro del flujo de trabajo de Machine Learning. Hay algunos más que también se utilizan en los mismos flujos de trabajo (o según el caso / escenario de uso). Es posible que estos no lo ayuden directamente a crear modelos / algoritmos de ML, pero son importantes en el ciclo de vida general. Veamos algunos de ellos:

IPython y Jupyter

IPython o Interactive Python es una interfaz de línea de comandos, desarrollada originalmente para Python (ahora admite varios idiomas). Es compatible con la computación paralela y una gran cantidad de juegos de herramientas de GUI. También forma el núcleo del servidor de portátiles basado en aplicaciones web llamado Jupyter. Jupyter es un acrónimo impreciso de Julia Python y R (se cree que ahora admite más lenguajes). Nos permite preparar y compartir documentos que contienen código en vivo, visualizaciones interactivas, rebajas y capacidades de presentación de diapositivas.
IPython y Jupyter son los dos shells / aplicaciones más utilizados por los científicos de datos para compartir su trabajo y desarrollar modelos.
Enlaces oficiales:
  • IPython
  • Jupyter

27. Scrapy

La Web o Internet es una inmensa fuente de datos. Scrapy es una de las bibliotecas líderes que se utiliza para raspar sitios web o crear arañas / rastreadores para hacer lo mismo. Ahora también admite la conexión a API para obtener datos. Enlace oficial

Hermosa Sopa

Una vez que tenga el texto raspado, el siguiente requisito es la capacidad de extraer información de datos HTML y XML. Beautifulsoup es una biblioteca con capacidad para analizar documentos HTML y XML. Lo hace generando árboles de análisis a partir de dichos documentos. La documentación de Beautifulsoup está muy bien hecha y actúa como base para la mayoría de los requisitos. Enlace oficial

29. Matraz

Flask es un microframework ligero para web en Python. Es un marco lo más básico posible para comenzar a funcionar con un servidor web / aplicación. Es compatible con extensiones que mejoran sus capacidades al máximo. Flask se basa en Werkzeug (una interfaz de puerta de enlace de servidor web / WSGI) y Jinja 2 (un motor de plantillas).
Ejemplo de Hello World para comenzar con Flask.
Flask se usa en todos los ámbitos, incluso algunos de los grandes actores de la industria como LinkedIn. Enlace oficial

30. OpenCV

Open Source Computer Vision u OpenCV para abreviar es una biblioteca de visión por computadora para Python. Proporciona una gran lista de capacidades relacionadas con la visión por computadora para manejar datos 2D y 3D. Es un proyecto desarrollado activamente con capacidades multiplataforma. Funciona bien con marcos de aprendizaje profundo como Tensorflow, PyTorch, etc. Enlace oficial

Bonificación: pocas bibliotecas / repositorios que se utilicen ampliamente.

El ecosistema de las pitones está repleto de cosas nuevas y emocionantes todos los días. Los investigadores y desarrolladores están trabajando para llevar adelante su trabajo para mejorar sus flujos de trabajo y mejorar también el ecosistema de Python. La siguiente es una lista rápida de más trabajos de este tipo, algunos de los cuales aún están disponibles solo como repositorios de GitHub:
  • scikit-learn-contrib
    Esta es una colección de proyectos compatibles con scikit-learn de alta calidad. Algunos de los proyectos de esta colección incluyen aprendizaje desbalanceado, relámpago, hdbscan, etc. Officiallink
  • Dask
    Dask es una biblioteca de Python de computación paralela. Funciona / se integra fácilmente con bibliotecas existentes como pandas y numpy. Proporciona una interfaz similar a pandas con el poder de la computación paralela. Enlace oficial
  • keras_experiments
    Este repositorio de github mejora aún más las capacidades de keras. Expone el trabajo experimental basado en las API de keras. El objetivo principal es proporcionar capacidad para utilizar múltiples GPU. Enlace oficial
  • data.tableEsta biblioteca ofrece la posibilidad de trabajar y manipular estructuras de datos tabulares. El objetivo es ser análogo a R SFrames. Las funcionalidades son similares a las de los pandas (o restringidas) y el foco está en big data. Enlace oficial

Sistema de compilación Python

pip y conda son dos administradores de paquetes asombrosos en el ecosistema de Python. Para nuestra comprensión en este artículo, es suficiente saber que estos dos administradores de paquetes son los que nos permiten configurar las bibliotecas necesarias.
Fuente
El sistema de construcción de Python es una relación de amor y odio. Es fácil de usar para la mayoría de las tareas, pero puede ser alucinante descubrir configuraciones para algunas de las bibliotecas más utilizadas (por ejemplo, numpy, matplotlib). Las tareas se vuelven un poco más complicadas cuando trabaja en un sistema operativo que tiene una versión de Python instalada en el sistema. Proceda con precaución y lea los pasos de instalación antes de instalar las bibliotecas.
Conclusión
Fuente
Este artículo comenzó proporcionándole las motivaciones y posibles razones por las que Python es la opción preferida para las tareas de aprendizaje automático. El ecosistema de Python es enorme, tanto en términos de contribución como de uso. Hablamos sobre las bibliotecas utilizadas en todas las áreas principales del aprendizaje automático, desde la etapa de manipulación de datos hasta el aprendizaje profundo, el procesamiento del lenguaje natural e incluso la visualización. Python tiene un conjunto diverso de bibliotecas disponibles que no solo mejoran sus capacidades, sino que también muestran la amplitud y profundidad de las tareas que se pueden realizar. Existen estándares de facto para la mayoría de las tareas (como scikit-learn, tensorflow, etc.), pero no hay escasez de alternativas. Al final, discutimos brevemente sobre el sistema de compilación de Python y los problemas asociados con él. A través de este artículo, hemos intentado proporcionarle una lista extensa de bibliotecas, sin embargo, esta no es una lista exhaustiva. Hay muchas más bibliotecas asombrosas en uso y en las que se está trabajando. Si conoce alguno de ellos, comparta los comentarios a continuación.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas