15 herramientas de ciencia de datos para considerar su uso
Hay numerosas herramientas disponibles para aplicaciones de ciencia de datos. Te presentamos 15, incluidas sus características, capacidades y usos, para ver si se ajustan a sus necesidades de análisis.
El volumen y la complejidad cada vez mayores de los datos empresariales, y su papel central en la toma de decisiones y la planificación estratégica, están impulsando a las organizaciones a invertir en las personas, los procesos y las tecnologías que necesitan para comprender y obtener conocimientos de sus activos de datos. Eso incluye una variedad de herramientas que se usan comúnmente en aplicaciones de ciencia de datos.
La firma de investigación de mercado IDC estimó que más de 64 zettabytes de datos, el equivalente a 64 mil millones de TB, se crearon, capturaron, copiaron y consumieron durante 2020, y la pandemia COVID-19 aceleró el uso de datos debido a un trabajo más remoto y transmisión en línea. .El crecimiento continuo de los datos «está impulsado más por los datos que consumimos y analizamos que por lo que creamos», dijo David Reinsel, vicepresidente senior de Global DataSphere de IDC, cuando se publicó una proyección inicial de 59 zettabytes en mayo de 2020.
A medida que desarrollan sus carteras de tecnologías habilitadoras, los equipos de ciencia de datos pueden elegir entre una amplia selección de herramientas y plataformas. Aquí hay un resumen de las 15 principales herramientas de ciencia de datos que pueden ayudarlo en el proceso de análisis, enumeradas en orden alfabético con detalles sobre sus características y capacidades, y algunas limitaciones potenciales.
1. Apache Spark
Apache Spark es un motor de análisis y procesamiento de datos de código abierto que puede manejar grandes cantidades de datos, hasta varios petabytes, según los defensores. La capacidad de Spark para procesar datos rápidamente ha impulsado un crecimiento significativo en el uso de la plataforma desde que se creó en 2009, lo que ayudó a hacer del proyecto Spark una de las comunidades de código abierto más grandes entre las tecnologías de big data .
Debido a su velocidad, Spark es ideal para aplicaciones de inteligencia continua impulsadas por el procesamiento casi en tiempo real de la transmisión de datos. Sin embargo, como motor de procesamiento distribuido de uso general, Spark es igualmente adecuado para extraer, transformar y cargar usos y otros trabajos por lotes de SQL. De hecho, Spark inicialmente se promocionó como una alternativa más rápida al motor MapReduce para el procesamiento por lotes en clústeres de Hadoop.
Spark todavía se usa a menudo con Hadoop, pero también puede ejecutarse de forma independiente en otros sistemas de archivos y almacenes de datos. Cuenta con un amplio conjunto de bibliotecas y API para desarrolladores, incluida una biblioteca de aprendizaje automático y soporte para lenguajes de programación clave, lo que facilita a los científicos de datos poner rápidamente la plataforma en funcionamiento.
2. D3.js
Otra herramienta de código abierto, D3.js es una biblioteca de JavaScript para crear visualizaciones de datos personalizadas en un navegador web. Comúnmente conocido como D3, que significa documentos basados en datos, utiliza estándares web, como HTML, gráficos vectoriales escalables y CSS, en lugar de su propio vocabulario gráfico. Los desarrolladores de D3 lo describen como una herramienta dinámica y flexible que requiere un esfuerzo mínimo para generar representaciones visuales de datos.
D3.js permite a los diseñadores de visualización vincular datos a documentos a través del Modelo de objetos de documento y luego usar métodos de manipulación DOM para realizar transformaciones basadas en datos en los documentos. Lanzado por primera vez en 2011, se puede utilizar para diseñar varios tipos de visualizaciones de datos y admite funciones como interacción, animación, anotación y análisis cuantitativo.
Sin embargo, D3 incluye más de 30 módulos y 1000 métodos de visualización, lo que dificulta su aprendizaje. Además, muchos científicos de datos no tienen conocimientos de JavaScript. Como resultado, pueden sentirse más cómodos con una herramienta de visualización comercial, como Tableau, dejando que D3 sea utilizado más por desarrolladores y especialistas de visualización de datos que también son miembros de equipos de ciencia de datos.
3. IBM SPSS
IBM SPSS es una familia de software para administrar y analizar datos estadísticos complejos. Incluye dos productos principales: SPSS Statistics, una herramienta de análisis estadístico , visualización de datos y generación de informes, y SPSS Modeler, una plataforma de ciencia de datos y análisis predictivo con una interfaz de usuario de arrastrar y soltar y capacidades de aprendizaje automático.
SPSS Statistics cubre cada paso del proceso de análisis, desde la planificación hasta la implementación del modelo, y permite a los usuarios aclarar las relaciones entre las variables, crear grupos de puntos de datos, identificar tendencias y hacer predicciones, entre otras capacidades. Puede acceder a tipos de datos estructurados comunes y ofrece una combinación de una interfaz de usuario basada en menús, su propia sintaxis de comandos y la capacidad de integrar extensiones R y Python, además de funciones para automatizar procedimientos y vínculos de importación y exportación con SPSS Modeler.
Creado por SPSS Inc. en 1968, inicialmente con el nombre Statistical Package for the Social Sciences, el software de análisis estadístico fue adquirido por IBM en 2009, junto con la plataforma de modelado predictivo , que SPSS había comprado anteriormente. Si bien la familia de productos se llama oficialmente IBM SPSS, el software todavía se conoce simplemente como SPSS.
4. Julia
Julia es un lenguaje de programación de código abierto que se utiliza para la computación numérica, así como para el aprendizaje automático y otros tipos de aplicaciones de ciencia de datos . En una publicación de blog de 2012 que anunciaba a Julia, sus cuatro creadores dijeron que se propusieron diseñar un lenguaje que abordara todas sus necesidades. Un gran objetivo era evitar tener que escribir programas en un idioma y convertirlos a otro para su ejecución.
Con ese fin, Julia combina la conveniencia de un lenguaje dinámico de alto nivel con un rendimiento comparable al de los lenguajes de tipado estático, como C y Java. Los usuarios no tienen que definir los tipos de datos en los programas, pero una opción les permite hacerlo. El uso de un enfoque de envío múltiple en tiempo de ejecución también ayuda a aumentar la velocidad de ejecución.
Julia 1.0 estuvo disponible en 2018, nueve años después de que comenzara a trabajar en el idioma; la última versión es 1.6, lanzada en marzo de 2021. La documentación de Julia señala que, debido a que su compilador difiere de los intérpretes en lenguajes de ciencia de datos como Python y R, los nuevos usuarios «pueden encontrar que el rendimiento de Julia no es intuitivo al principio». Pero, afirma, «una vez que comprende cómo funciona Julia, es fácil escribir código que es casi tan rápido como C.»
5. Cuaderno de Jupyter
Una aplicación web de código abierto, Jupyter Notebook permite la colaboración interactiva entre científicos de datos, ingenieros de datos, matemáticos, investigadores y otros usuarios. Es una herramienta de cuaderno computacional que se puede utilizar para crear, editar y compartir código, así como texto explicativo, imágenes y otra información. Por ejemplo, los usuarios de Jupyter pueden agregar código de software, cálculos, comentarios, visualizaciones de datos y representaciones de medios enriquecidos de los resultados de los cálculos en un solo documento, conocido como cuaderno , que luego pueden compartir y revisar sus colegas.
Como resultado, los cuadernos «pueden servir como un registro computacional completo» de sesiones interactivas entre los miembros de los equipos de ciencia de datos, según la documentación de Jupyter Notebook. Los documentos del cuaderno son archivos JSON que tienen capacidades de control de versiones. Además, un servicio Notebook Viewer permite que se representen como páginas web estáticas para que las vean los usuarios que no tienen Jupyter instalado en sus sistemas.
Las raíces de Jupyter Notebook están en el lenguaje de programación Python; originalmente era parte del proyecto de código abierto del kit de herramientas interactivas IPython antes de separarse en 2014. La combinación flexible de Julia, Python y R le dio a Jupyter su nombre; Además de admitir esos tres lenguajes, Jupyter tiene núcleos modulares para docenas de otros.
6. Keras
Keras es una interfaz de programación que permite a los científicos de datos acceder y utilizar más fácilmente la plataforma de aprendizaje automático TensorFlow. Es una API y un marco de aprendizaje profundo de código abierto escritos en Python que se ejecuta sobre TensorFlow y ahora está integrado en esa plataforma. Anteriormente, Keras admitía múltiples backends, pero estaba vinculado exclusivamente a TensorFlow a partir de su versión 2.4.0 en junio de 2020.
Como API de alto nivel, Keras se diseñó para impulsar una experimentación fácil y rápida que requiere menos codificación que otras opciones de aprendizaje profundo. El objetivo es acelerar la implementación de modelos de aprendizaje automático , en particular, redes neuronales de aprendizaje profundo , a través de un proceso de desarrollo con «alta velocidad de iteración», como dice la documentación de Keras.
El marco de Keras incluye una interfaz secuencial para crear pilas lineales relativamente simples de capas con entradas y salidas, así como una API funcional para construir gráficos de capas más complejos o escribir modelos de aprendizaje profundo desde cero. Los modelos de Keras se pueden ejecutar en CPU o GPU y se pueden implementar en múltiples plataformas, incluidos navegadores web y dispositivos móviles Android e iOS.
7. Matlab
Desarrollado y vendido por el proveedor de software MathWorks desde 1984, Matlab es un lenguaje de programación de alto nivel y un entorno analítico para computación numérica, modelado matemático y visualización de datos. Es utilizado principalmente por ingenieros y científicos convencionales para analizar datos, diseñar algoritmos y desarrollar sistemas integrados para comunicaciones inalámbricas, control industrial, procesamiento de señales y otras aplicaciones, a menudo en conjunto con una herramienta complementaria Simulink que ofrece diseño basado en modelos y capacidades de simulación.
Si bien Matlab no se usa tan ampliamente en aplicaciones de ciencia de datos como lenguajes como Python, R y Julia, sí admite el aprendizaje automático y el aprendizaje profundo, el modelado predictivo, el análisis de big data , la visión por computadora y otros trabajos realizados por científicos de datos. Los tipos de datos y las funciones de alto nivel integradas en la plataforma están diseñadas para acelerar el análisis de datos exploratorios y la preparación de datos en aplicaciones de análisis.
Considerado relativamente fácil de aprender y usar, Matlab, que es la abreviatura de laboratorio de matrices , incluye aplicaciones prediseñadas, pero también permite a los usuarios crear las suyas propias. También tiene una biblioteca de cajas de herramientas complementarias con software específico de la disciplina y cientos de funciones integradas, incluida la capacidad de visualizar datos en gráficos 2D y 3D.
8. Matplotlib
Matplotlib es una biblioteca de trazado de Python de código abierto que se utiliza para leer, importar y visualizar datos en aplicaciones de análisis . Los científicos de datos y otros usuarios pueden crear visualizaciones de datos estáticas, animadas e interactivas con Matplotlib, usándolo en scripts de Python, los shells de Python e IPython, Jupyter Notebook, servidores de aplicaciones web y varios kits de herramientas de GUI.
La gran base de código de la biblioteca puede ser difícil de dominar, pero está organizada en una estructura jerárquica diseñada para permitir a los usuarios crear visualizaciones principalmente con comandos de alto nivel. El componente superior de la jerarquía es pyplot, un módulo que proporciona un «entorno de máquina de estado» y un conjunto de funciones de trazado simples similares a las de Matlab.
Lanzado por primera vez en 2003, Matplotlib también incluye una interfaz orientada a objetos que se puede usar junto con pyplot o por sí sola; admite comandos de bajo nivel para trazados de datos más complejos. La biblioteca se centra principalmente en la creación de visualizaciones en 2D, pero ofrece un conjunto de herramientas adicional con funciones de trazado en 3D.
9. Python
Python es el lenguaje de programación más utilizado para ciencia de datos y aprendizaje automático y uno de los lenguajes más populares en general. El sitio web del proyecto de código abierto Python lo describe como «un lenguaje de programación interpretado, orientado a objetos y de alto nivel con semántica dinámica», así como estructuras de datos integradas y capacidades dinámicas de escritura y enlace. El sitio también promociona la sintaxis simple de Python, diciendo que es fácil de aprender y que su énfasis en la legibilidad reduce el costo de mantenimiento del programa.
El lenguaje multipropósito se puede utilizar para una amplia gama de tareas, incluido el análisis de datos, la visualización de datos, la inteligencia artificial, el procesamiento del lenguaje natural y la automatización de procesos robóticos . Los desarrolladores también pueden crear aplicaciones web, móviles y de escritorio en Python. Además de la programación orientada a objetos , admite procedimientos, funcionales y otros tipos, además de extensiones escritas en C o C ++.
Python es utilizado no solo por científicos de datos, programadores e ingenieros de redes, sino también por trabajadores fuera de las disciplinas informáticas, desde contadores hasta matemáticos y científicos, que a menudo se sienten atraídos por su naturaleza fácil de usar. Python 2.xy 3.x son versiones del lenguaje listas para producción, aunque el soporte para la línea 2.x finalizó en 2020.
10. PyTorch
PyTorch, un marco de código abierto utilizado para construir y entrenar modelos de aprendizaje profundo basados en redes neuronales, es promocionado por sus defensores por respaldar la experimentación rápida y flexible y una transición fluida a la implementación de producción. La biblioteca de Python fue diseñada para ser más fácil de usar que Torch, un marco de trabajo de aprendizaje automático precursor que se basa en el lenguaje de programación Lua. PyTorch también proporciona más flexibilidad y velocidad que Torch, según sus creadores.
Lanzado por primera vez públicamente en 2017, PyTorch utiliza tensores en forma de matriz para codificar las entradas, salidas y parámetros del modelo. Sus tensores son similares a los arreglos multidimensionales compatibles con NumPy, otra biblioteca de Python para computación científica, pero PyTorch agrega soporte integrado para ejecutar modelos en GPU. Las matrices NumPy se pueden convertir en tensores para su procesamiento en PyTorch y viceversa.
La biblioteca incluye varias funciones y técnicas, incluido un paquete de diferenciación automática llamado torch.autograd y un módulo para construir redes neuronales, además de una herramienta TorchServe para implementar modelos de PyTorch y soporte de implementación para dispositivos iOS y Android. Además de la API de Python principal, PyTorch ofrece una de C ++ que se puede utilizar como una interfaz de usuario separada o para crear extensiones para aplicaciones de Python.
11. R
El lenguaje de programación R es un entorno de código abierto diseñado para aplicaciones gráficas y de computación estadística, así como para la manipulación, el análisis y la visualización de datos. Muchos científicos de datos, investigadores académicos y estadísticos utilizan R para recuperar, limpiar, analizar y presentar datos, lo que lo convierte en uno de los lenguajes más populares para la ciencia de datos y el análisis avanzado.
El proyecto de código abierto es compatible con The R Foundation, y hay disponibles miles de paquetes creados por usuarios con bibliotecas de código que mejoran la funcionalidad de R; por ejemplo, ggplot2, un paquete conocido para crear gráficos que forma parte de una colección de R herramientas de ciencia de datos basadas en datos llamadas tidyverse. En adición, varios vendedores ofrecen entornos de desarrollo integrado y librerías de código comercial de R.
R es un lenguaje interpretado, como Python, y tiene la reputación de ser relativamente intuitivo. Fue creado en la década de 1990 como una versión alternativa de S, un lenguaje de programación estadística que se desarrolló en la década de 1970; El nombre de R es tanto un juego de S como una referencia a la primera letra de los nombres de sus dos creadores.
12. SAS
SAS es un paquete de software integrado para análisis estadístico, análisis avanzado, BI y gestión de datos. Desarrollada y vendida por el proveedor de software SAS Institute Inc., la plataforma permite a los usuarios integrar, limpiar, preparar y manipular datos, y luego pueden analizarlos utilizando diferentes técnicas estadísticas y de ciencia de datos . SAS se puede utilizar para diversas tareas, desde BI básica y visualización de datos hasta gestión de riesgos, análisis operativo, minería de datos , análisis predictivo y aprendizaje automático.
El desarrollo de SAS comenzó en 1966 en la Universidad Estatal de Carolina del Norte; El uso de la tecnología comenzó a crecer a principios de la década de 1970 y SAS Institute se fundó en 1976 como una empresa independiente. El software se creó inicialmente para que lo utilicen los estadísticos; SAS era la abreviatura de Statistical Analysis System. Pero, con el tiempo, se expandió para incluir un amplio conjunto de funcionalidades y se convirtió en una de las suites de análisis más utilizadas tanto en empresas comerciales como académicas.
El desarrollo y el marketing ahora se centran principalmente en SAS Viya, una versión basada en la nube de la plataforma que se lanzó en 2016 y se rediseñó para ser nativa de la nube en 2020.
13. scikit-learn
Scikit-learn es una biblioteca de aprendizaje automático de código abierto para Python que se basa en las bibliotecas de computación científica SciPy y NumPy, además de Matplotlib para trazar datos. Es compatible con el aprendizaje automático supervisado y no supervisado e incluye numerosos algoritmos y modelos, llamados estimadores en el lenguaje de scikit-learn. Además, proporciona funcionalidad para el ajuste, selección y evaluación de modelos, y preprocesamiento y transformación de datos.
Inicialmente llamada scikits.learn, la biblioteca comenzó como un proyecto de Google Summer of Code en 2007, y la primera versión pública estuvo disponible en 2010. La primera parte de su nombre es la abreviatura de SciPy toolkit y también es utilizada por otros complementos de SciPy. paquetes. Scikit-learn trabaja principalmente con datos numéricos que se almacenan en matrices NumPy o matrices dispersas SciPy.
El conjunto de herramientas de la biblioteca también permite otras tareas, como la carga de conjuntos de datos y la creación de canalizaciones de flujo de trabajo que combinan estimadores y objetos transformadores de datos. Pero scikit-learn tiene algunos límites debido a limitaciones de diseño. Por ejemplo, no admite aprendizaje profundo, aprendizaje reforzado o GPU, y el sitio web de la biblioteca dice que sus desarrolladores «solo consideran algoritmos bien establecidos para su inclusión».
14. TensorFlow
TensorFlow es una plataforma de aprendizaje automático de código abierto desarrollada por Google que es particularmente popular para implementar redes neuronales de aprendizaje profundo. La plataforma toma entradas en forma de tensores que son similares a las matrices multidimensionales NumPy y luego usa una estructura gráfica para hacer fluir los datos a través de una lista de operaciones computacionales especificadas por los desarrolladores. También ofrece un entorno de programación de ejecución ávido que ejecuta operaciones individualmente sin gráficos, lo que proporciona más flexibilidad para investigar y depurar modelos de aprendizaje automático.
Google hizo TensorFlow de código abierto en 2015 y la versión 1.0.0 estuvo disponible en 2017. TensorFlow usa Python como su lenguaje de programación principal y ahora incorpora la API de alto nivel de Keras para construir y entrenar modelos. Alternativamente, una biblioteca TensorFlow.js permite el desarrollo de modelos en JavaScript, y las operaciones personalizadas (u ops , para abreviar) se pueden construir en C ++.
La plataforma también incluye un módulo extendido de TensorFlow para la implementación de un extremo a otro de las canalizaciones de aprendizaje automático de producción, además de uno de TensorFlow Lite para dispositivos móviles y de IoT. Los modelos de TensorFlow se pueden entrenar y ejecutar en CPU, GPU y unidades de procesamiento de tensor de propósito especial de Google.
15. Weka
Weka es un banco de trabajo de código abierto que proporciona una colección de algoritmos de aprendizaje automático para su uso en tareas de minería de datos. Los algoritmos de Weka, llamados clasificadores , se pueden aplicar directamente a conjuntos de datos sin ninguna programación a través de una GUI o una interfaz de línea de comandos que ofrece funcionalidad adicional; también se pueden implementar a través de una API de Java.
El banco de trabajo se puede utilizar para aplicaciones de minería de reglas de clasificación, agrupación, regresión y asociación y también incluye un conjunto de herramientas de preprocesamiento y visualización de datos. Además, Weka admite la integración con R, Python, Spark y otras bibliotecas como scikit-learn. Para usos de aprendizaje profundo, un paquete complementario lo combina con la biblioteca Eclipse Deeplearning4j.
Weka es un software libre con licencia GNU General Public License. Fue desarrollado en la Universidad de Waikato en Nueva Zelanda a partir de 1992; se reescribió una versión inicial en Java para crear el banco de trabajo actual, que se lanzó por primera vez en 1999. Weka significa Waikato Environment for Knowledge Analysis y también es el nombre de un ave no voladora nativa de Nueva Zelanda que, según los desarrolladores de la tecnología, tiene «un naturaleza inquisitiva «.
Plataformas de ciencia de datos y aprendizaje automático
Numerosos proveedores de software también ofrecen plataformas con licencia comercial que brindan funcionalidad integrada para aprendizaje automático, inteligencia artificial y otras aplicaciones de ciencia de datos. Las ofertas de productos son diversas: incluyen centros de operaciones de aprendizaje automático, plataformas de aprendizaje automático automatizadas y conjuntos de análisis de funciones completas, algunos de los cuales combinan MLOps, AutoML y capacidades analíticas. Muchas plataformas incorporan algunas de las herramientas de ciencia de datos enumeradas anteriormente.
Matlab y SAS también se pueden contar entre las plataformas de ciencia de datos. Otras opciones de plataforma destacadas para los equipos de ciencia de datos incluyen las siguientes:
- Plataforma de automatización de procesos analíticos Alteryx
- Amazon SageMaker
- Aprendizaje automático de Azure
- Plataforma Databricks Lakehouse
- Dataiku
- DataRobot
- Plataforma de ciencia de datos de Domino
- Plataforma de inteligencia artificial de Google Cloud
- Nube híbrida H2O AI
- IBM Watson Studio
- Knime
- RapidMiner
- Tibco Data Science
Algunas plataformas también están disponibles en ediciones gratuitas de código abierto o de la comunidad; los ejemplos incluyen Dataiku y H2O. Knime combina una plataforma de análisis de código abierto con un paquete de software comercial de Knime Server que admite la colaboración en equipo y la automatización, implementación y gestión del flujo de trabajo.