Introducción
Al considerar un proyecto de ciencia de datos, los nombres que se lanzan pueden sentirse un poco como ensalada de palabras. Kafka? ¿Chispa - chispear? Keras? ¿Qué son todas estas palabras y por qué son tan importantes para la ciencia de datos?
En este blog, presentaremos el por qué de los marcos de programación y luego le presentaremos 31 marcos de programación e interfaces que se utilizan a menudo en proyectos de datos. Finalmente, le mostraremos cómo puede obtener nuestra ayuda si está interesado en aprender más sobre cómo explorar la ciencia de datos en su organización.
¿Qué es un marco de programación?
Pero primero, es importante comprender qué es un marco de programación. La mayoría de la gente probablemente tiene un conocimiento básico de que la programación implica escribir líneas de código. Sin embargo, escribir líneas de código desde cero para todos y cada uno de los proyectos es tedioso. Los marcos y las bibliotecas acortan el proceso creativo y permiten a los programadores aprovechar las soluciones programáticas probadas y verdaderas para problemas comunes.
Esto es especialmente cierto para la ciencia de datos, donde los problemas a resolver son tan impactantes que no pueden dejarse en un error… y tan complejos que comenzar desde cero cada vez puede llevar mucho tiempo.
Los marcos y las bibliotecas son esencialmente bloques de partida para la creación de código; estos bloques de código han sido creados, probados y optimizados por una comunidad.
Tres beneficios de los marcos para los científicos de datos
Los marcos ofrecen muchos beneficios a los científicos de datos y a los equipos de tecnología en los que trabajan.
- Los marcos crean mejor código. Los marcos ayudan a los codificadores a crear mejores patrones de diseño y evitar códigos duplicados o inseguros. El código siguiente es más fácil de escribir, más fácil de probar y más fácil de depurar.
- Los marcos se prueban y optimizan previamente. Los equipos de ciencia de datos pueden ahorrar tiempo mediante el uso de código previamente probado y optimizado en lugar de empezar desde cero.
- Implementación más rápida. La pista de implementación es más corta cuando los equipos usan código que ha sido ampliamente documentado, probado y optimizado. Los equipos pueden dedicar menos tiempo a diseñar y probar y más tiempo a analizar y optimizar los modelos.
A continuación, le presentaremos 31 marcos (e interfaces) comunes de ciencia de datos que escuchará en el mundo de la ciencia de datos.
31 Marcos e interfaces de ciencia de datos
1. Apache Kafka
Apache Kafka es una plataforma de mensajería escalable de código abierto construida en Java y Scala y creada por LinkedIn. Como plataforma de transmisión ("columna vertebral de ingestión"), es capaz de manejar billones de eventos al día en tiempo real. Kafka se utiliza como un marco de ciencia de datos en proyectos que requieren acceder y manejar grandes cantidades de datos en tiempo real.
Obtenga más información sobre Apache Kafka en https://kafka.apache.org/.
2. AMI de aprendizaje profundo de AWS
Aunque no es un marco en sí mismo, AWS Deep Learning AMI es una herramienta que permite a los científicos de datos trabajar más rápido y mejor. Según Amazon, "las AMI de aprendizaje profundo de AWS brindan a los profesionales e investigadores del aprendizaje automático la infraestructura y las herramientas para acelerar el aprendizaje profundo en la nube, a cualquier escala". En el momento de redactar este documento, los entornos de AWS DL vienen preconfigurados con TensorFlow, PyTorch, Apache MXNet, Chainer, Microsoft Cognitive Toolkit, Gluon, Horovod y Keras.
Obtenga más información sobre AWS Deep Learning AMI en https://aws.amazon.com/machine-learning/amis/.
3. Bokeh
Bokeh es una biblioteca de visualización de datos de Python de código abierto que se utiliza para crear visualizaciones interactivas y escalables dentro de los navegadores. Con Bokeh, la “interactividad” es la parte importante y la razón por la que a los científicos de datos les encanta usarlo para visualizaciones. Bokeh se construye en capas, primero comenzando con figuras, luego elementos y finalmente glifos. Después de eso, se pueden agregar "Inspectores" para permitir la interacción del usuario.
Obtenga más información sobre Bokeh en https://bokeh.org/.
4. CAFÉ
Caffe (ahora Caffe2, una parte de PyTorch) es "un marco de aprendizaje profundo creado con expresión, velocidad y modularidad en mente" que está escrito en C ++. Caffe viene con módulos de capacitación preconfigurados, lo que lo convierte en un excelente marco para principiantes nuevos en el aprendizaje automático. Caffe almacena y manipula datos en "blobs", que es una matriz estándar y una interfaz de memoria unificada. Las propiedades de blob describen cómo se almacena y se comunica la información a través de las capas de una red neuronal. Los científicos de datos que están explorando Caffe también están probando TensorFlow, Theano, Veles y Microsoft Cognitive Toolkit.
Obtenga más información sobre Caffe en https://caffe2.ai/.
5. Encadenador
Chainer es un marco Python de red neuronal de código abierto creado por una startup de aprendizaje automático y robótica en Tokio. Chainer es conocido por su velocidad, especialmente en comparación con otros marcos más "sofisticados" como Tensorflow. Chainer fue el primero en proporcionar la definición de red neuronal "definir por ejecución", que permite cambios dinámicos en la red neuronal (un beneficio cuando se trata de depuración). También es compatible con el cálculo CUDA y se puede inspeccionar utilizando herramientas estándar de Python.
Obtenga más información sobre Chainer en https://chainer.org/.
6. Aprendizaje profundo4j
Eclipse DeepLearning4j es “la primera biblioteca de aprendizaje profundo distribuida, de código abierto y de calidad comercial escrita para Java y Scala”. Debido a que está distribuido, puede aprovechar las múltiples CPU para acelerar el entrenamiento. Es compatible con cualquier lenguaje JVM, como Scala, Clojure y Kotlin, y funciona con Spark y Hadoop. Con DeepLearning4j, puede crear redes neuronales profundas a partir de redes poco profundas, que forman
Obtenga más información sobre DeepLearning4j en https://deeplearning4j.org/.
7. Rápido.ai
Fastai es una biblioteca de aprendizaje profundo desarrollada por Jeremy Howard y Rachel Thomas usando Python. Según la documentación, Fastai es “una biblioteca de aprendizaje profundo que proporciona a los profesionales componentes de alto nivel que pueden proporcionar rápida y fácilmente resultados de vanguardia en dominios de aprendizaje profundo estándar, y proporciona a los investigadores componentes de bajo nivel que pueden mezclarse y combinarse para crear nuevos enfoques ". El equipo de Fastai tiene como objetivo democratizar la inteligencia artificial y el aprendizaje profundo y, por lo tanto, ha hecho que la capacitación para el marco sea gratuita y de código abierto.
Conoce más en https://www.fast.ai/.
8. Gluón
Gluon es una interfaz de aprendizaje profundo de código abierto de Microsoft y Amazon. La interfaz permite a los desarrolladores de aprendizaje automático desarrollar modelos rápidamente sin comprometer el rendimiento mediante el uso de componentes de red neuronal prediseñados. Esto significa una formación y creación de prototipos más rápidos.
Obtenga más información sobre Gluon en https://gluon.mxnet.io/ .
9. H2O
H2O es una plataforma de código abierto lista para empresas (una de muchas del mismo grupo) que sirve casos de uso empresarial en más de 20,000 organizaciones en todo el mundo. Los modelos H2O se pueden construir utilizando lenguajes de uso común como Python y R. También tiene "AutoML", que puede automatizar el proceso de aprendizaje automático dentro de los límites especificados por el usuario. Y debido a que está distribuido, puede admitir conjuntos de datos extremadamente grandes y mantener la velocidad, lo que lo hace perfecto para aplicaciones empresariales.
Obtenga más información sobre H2O en https://www.h2o.ai/.
10. Horovod
Horovod es un marco de software gratuito y de código abierto para el entrenamiento de aprendizaje profundo distribuido utilizando TensorFlow, Keras, PyTorch y Apache MXNet. Fue desarrollado por el equipo de ingeniería de aprendizaje automático de Uber como parte de su plataforma Michelangelo como una mejor manera de entrenar sus modelos distribuidos de TensorFlow.
Obtenga más información sobre Horovod en https://github.com/horovod/horovod .
11. Cuaderno de Jupyter
Jupyter Notebook es una interfaz de código abierto basada en web para flujos de trabajo de ciencia de datos, informática científica y aprendizaje automático. En él, puede crear y compartir documentos que contienen código en vivo, ecuaciones, visualizaciones y texto narrativo. Jupyter Notebook admite más de 40 lenguajes de programación, incluidos Python, R, Julia y Scala.
Obtenga más información sobre Jupyter Notebook en https://jupyter.org/.
12. Kerás
Keras es una biblioteca de ciencia de datos de código abierto que proporciona una interfaz Python para redes neuronales artificiales. A partir de la versión 2.4, sirve como interfaz para la biblioteca TensorFlow; las versiones anteriores admitían TensorFlow, Microsoft Cognitive Toolkit, R, Theano, PlaidML y más. Admite bloques de construcción de redes neuronales como capas, objetivos, funciones de activación y optimizadores.
Obtenga más información sobre Keras en https://keras.io.
13. GBM ligero
Light GBM es un "marco que impulsa el gradiente" que utiliza algoritmos de aprendizaje automático basados en árboles. Su algoritmo basado en histogramas coloca valores continuos en contenedores discretos, lo que conduce a un entrenamiento más rápido y un uso eficiente de la memoria. Según los documentos, Light GBM brinda a los científicos de datos una velocidad de entrenamiento más rápida y una mayor eficiencia, menor uso de memoria, mejor precisión, soporte de aprendizaje paralelo y GPU. También admite el manejo de datos a gran escala. Se utiliza para clasificar, clasificar y otras tareas de aprendizaje automático.
Obtenga más información sobre Light GBM en https://github.com/microsoft/LightGBM.
14. matplotlib
Matplotlib es una biblioteca de Python completa, popular y de código abierto para crear visualizaciones de "calidad de publicación". Las visualizaciones pueden ser estáticas, animadas o interactivas. Se emuló fuera de MATLAB y, por lo tanto, contiene estilos globales muy parecidos a MATLAB, incluida la jerarquía de objetos.
Obtenga más información sobre Matplotlib en https://matplotlib.org/.
15. Microsoft Cognitive Toolkit (anteriormente conocido como CNTK)
Obtenga más información sobre Microsoft Cognitive Toolkit, un juego de herramientas de código abierto para el aprendizaje profundo distribuido de nivel comercial. Fue uno de los primeros en admitir ONNX, una representación de modelo compartido de código abierto para la "interoperabilidad del marco y la optimización compartida". También funciona con lenguajes de ciencia de datos comunes, incluidos Python y C ++, para crear IA de grado comercial.
Obtenga más información sobre Microsoft Cognitive Toolkit en https://docs.microsoft.com/en-us/cognitive-toolkit/.
16. MXNET
Apache MXNET es otro marco de código abierto, esta vez para aprendizaje profundo. MXNET tiene integraciones profundas en Python y soporte para Scala, Julia, Clojure, Java, C ++, R y Perl. Uno de los principales atractivos de MXNET es la capacidad de alternar entre programación simbólica y programación imperativa para lograr la máxima productividad. Otro atractivo es la capacidad de escalar y distribuir la formación.
Obtenga más información sobre MXNET en https://mxnet.apache.org/.
17. Número
NumPy ("Python numérico") es otra biblioteca de programación de Python, esta vez utilizada para trabajar con computación numérica y científica como un paquete de procesamiento de matrices. El código C de velocidad optimizada de NumPy proporciona objetos de matriz que son 50 veces más rápidos que las listas de Python, lo que los hace ideales para fines de ciencia de datos.
Obtenga más información sobre NumPy en https://numpy.org/.
18. Flujo de tensor
TensorFlow es una "plataforma de aprendizaje automático de código abierto de extremo a extremo" que ayuda a la ciencia de datos a desarrollar y entrenar modelos de aprendizaje automático (ML). Es especialmente útil para construir prototipos rápidos de manera eficiente. Los científicos de datos pueden escribir en cualquier idioma que ya los conozcan para entrenar e implementar modelos en la nube o en las instalaciones.
Obtenga más información sobre TensorFlow en https://www.tensorflow.org/.
19. Scikit-aprender
Scikit-learn es una biblioteca de Python de código abierto y fácil de aprender para el aprendizaje automático basada en NumPy, SciPy y matplotlib. Se puede utilizar para clasificación de datos, regresión, agrupación, reducción de dimensionalidad, selección de modelos y preprocesamiento.
Obtenga más información sobre Scikit-learn en https://scikit-learn.org/stable/.
20. ONNX
No es un marco, sino una herramienta valiosa. ONNX significa "Open Neural Network Exchange". Es un formato de código abierto diseñado para representar modelos de aprendizaje automático. ONNX ofrece a los científicos de datos un conjunto común de operadores y un formato de archivo común para usar entre marcos, herramientas, tiempos de ejecución y compiladores. Los modelos existentes se pueden exportar hacia y desde el formato ONNX.
Obtenga más información sobre ONNX en https://onnx.ai/.
21. pandas
Pandas (abreviatura de "panel-data-s") es una herramienta de aprendizaje automático que se utiliza para explorar, limpiar, transformar y visualizar datos, por lo que se puede utilizar en modelos y capacitación de aprendizaje automático. Es una biblioteca de Python de código abierto construida sobre NumPy. Pandas puede manejar tres tipos de estructuras de datos: series, DataFrame y panel.
Obtenga más información sobre los pandas en https://pandas.pydata.org/.
22. Trama
Plotly es una herramienta popular para crear análisis de Apple. Contiene una variedad de productos, incluido Dash, un marco de Python y R de código abierto para crear aplicaciones analíticas basadas en web, y Dash DAQ, para crear GUI de adquisición de datos en instrumentos científicos. Plotly también contiene bibliotecas API para Python, R, MATLAB, Node.js, Julia, Arduino y REST, así como una integración con el cuaderno Jupyter. Plotly también ofrece una biblioteca de JavaScript de código abierto y una instalación local.
La biblioteca Python Plotly es una biblioteca de trazado que contiene más de 40 tipos de gráficos y visualizaciones diferentes que luego se pueden mostrar en cuadernos de Jupyter, en HTML o como parte de aplicaciones creadas en DASH.
Obtenga más información sobre Plotly en https://plotly.com/.
23. Pidot
Pydot es una interfaz de Python para Graphviz's Dot que puede analizar y volcar en el lenguaje DOT. Pydot permite a los científicos de datos manejar, modificar y procesar gráficos, así como mostrar la estructura de los gráficos para que puedan usarse en redes neuronales.
Obtenga más información sobre Pydot en https://pypi.org/project/pydot/.
24. PyTorch
PyTorch es otro marco de Python de código abierto que permite a los científicos de datos realizar rápidamente tareas de aprendizaje profundo. PyTorch es utilizado por Salesforce, la Universidad de Stanford, Udacity y más para realizar cálculos de Tensor y construir redes neuronales dinámicas. PyTorch se basa en Torch, una biblioteca de aprendizaje profundo de código abierto basada en C.
Obtenga más información sobre PyTorch en https://pytorch.org/.
25. ciencia
SciPy es un ecosistema de código abierto para matemáticas y computación científica, como álgebra lineal, integración, resolución de ecuaciones diferenciales y procesamiento de señales. Contiene varios paquetes básicos útiles que incluyen NumPy, IPython, SciPy Library, MatPlotlib, SymPy y pandas.
Obtenga más información sobre SciPy en https://www.scipy.org/.
26. Shogún
Shogun es una biblioteca de aprendizaje automático de código abierto que admite muchos lenguajes de programación de ciencia de datos como Python, Octave, R, Java / Scala, Lua, C #, Ruby. Admite muchos algoritmos, como algoritmos de reducción de dimensionalidad, algoritmos de agrupamiento y máquinas vectoriales de soporte. Es capaz de procesar grandes conjuntos de datos, lo que la convierte en una opción válida para aplicaciones empresariales.
Obtenga más información sobre Shogun en https://www.shogun-toolbox.org/.
27. Chispa MLib
MLib es la biblioteca de aprendizaje automático de Apache Spark; fue desarrollado por UC Berkeley y es capaz de procesar grandes cantidades de datos a altas velocidades. Es 100 veces más rápido que Hadoop para el procesamiento de grandes datos gracias a su optimizador de consultas y motor de optimización física. Los científicos de datos pueden escribir aplicaciones en Java, Scala, Python, R y SQL.
Obtenga más información sobre Spark MLib en https://spark.apache.org/.
28. Marítimo
Seaborn es una biblioteca de visualización de datos de Python para dibujar gráficos estadísticos "atractivos e informativos". Seaborn se basa en Matplotlib. Incluye una variedad de visualizaciones para elegir, incluidas series de tiempo y gráficos conjuntos.
Obtenga más información sobre Seaborn en https://seaborn.pydata.org/.
29. Teano
Theano es una "biblioteca de Python que le permite definir, optimizar y evaluar expresiones matemáticas que involucran matrices multidimensionales de manera eficiente". Tiene una estrecha integración con NumPy, realiza cálculos de datos más rápido que en una CPU, evalúa expresiones más rápido y contiene pruebas unitarias y autoverificación integradas. Desafortunadamente, Theano se actualizó por última vez en 2017 y está siendo reemplazado lentamente por otras herramientas.
Obtenga más información sobre Theano en http://deeplearning.net/software/theano/.
30. Velas
Veles es una herramienta de código abierto para el análisis de datos binarios. Veles permite a los científicos de datos transformar el código binario en visualizaciones comprensibles para los humanos. Por lo tanto, los científicos de datos pueden incluso realizar ingeniería inversa en binarios, explorar imágenes del sistema de archivos o participar en la esteganografía con facilidad.
Obtenga más información sobre Veles en https://codisec.com/veles/ .
31. Impulso Xg
Xgboost, que significa eXtreme Gradient Boosting, es una herramienta de código abierto desarrollada por Tianqi Chen y ahora forma parte de Distributed Machine Learning Community (DMLC). Xgboost es una herramienta muy popular para la regresión, clasificación, clasificación, ajuste de modelos y mejoras de algoritmos y se ha probado en proyectos de nivel empresarial. Según su creador, "... xgboost utilizó una formalización de modelo más regularizada para controlar el sobreajuste, lo que le da un mejor rendimiento".
Obtenga más información sobre Xgboost en https://xgboost.readthedocs.io/en/latest/.
Sigue avanzando con Aptude
Aptude es su propia firma personal de servicios profesionales de TI. Brindamos a nuestros clientes recursos de primera clase de manera continua y con costos reducidos.
Nuestros servicios de soporte liberarán a su personal superior de TI de la abrumadora carga de los problemas de mantenimiento diarios. Ya tendrán tiempo de lanzar esos nuevos proyectos y aplicaciones que estabas esperando. En pocas palabras, podemos liberar sus recursos y contener sus costos. Tengamos una charla rápida para hablar sobre nuestros servicios exclusivos.