La ciencia de datos es para cualquier persona que ama desentrañar cosas enredadas y descubrir maravillas ocultas en un aparente desorden.

Es como buscar agujas en un pajar; solo que los científicos de datos no necesitan ensuciarse las manos en absoluto. Usando herramientas sofisticadas con gráficos coloridos y mirando montones de números, simplemente se sumergen en montones de datos y encuentran agujas valiosas en forma de información de alto valor comercial.

Un típico científico de datos La caja de herramientas debe incluir al menos un elemento de cada una de estas categorías: bases de datos relacionales, bases de datos NoSQL, marcos de big data, herramientas de visualización, herramientas de scraping, lenguajes de programación, IDE y aprendizaje profundo herramientas.

Bases de datos relacionales

Una base de datos relacional es una colección de datos estructurada en tablas con atributos. Las tablas se pueden vincular entre sí, definiendo relaciones y restricciones, y creando lo que se llama un modelo de datos. Para trabajar con bases de datos relacionales, normalmente utiliza un lenguaje llamado SQL (lenguaje de consulta estructurado).

Las aplicaciones que gestionan la estructura y los datos en bases de datos relacionales se denominan RDBMS (Relational DataBase Management Systems). Existen muchas de estas aplicaciones, y las más relevantes han comenzado recientemente a enfocarse en el campo de la ciencia de datos, agregando funcionalidad para trabajar con repositorios de big data y para aplicar técnicas como el análisis de datos y el aprendizaje automático.

SQL Server

SGBDR de Microsoft, ha estado evolucionando durante más de 20 años mediante la expansión constante de su funcionalidad empresarial. Desde su versión 2016, SQL Server ofrece una cartera de servicios que incluyen soporte para código R incrustado. SQL Server 2017 aumenta la apuesta al cambiar el nombre de R Services a Machine Language Services y agregar soporte para el lenguaje Python (más información sobre estos dos lenguajes a continuación).

Con estas importantes adiciones, SQL Server apunta a científicos de datos que pueden no tener experiencia con Transact SQL, el lenguaje de consulta nativo de Microsoft SQL Server.

SQL Server está lejos de ser un producto gratuito. Puedes comprar licencias para instalarlo en un servidor Windows (el precio variará según la cantidad de usuarios concurrentes) o utilizarlo como servicio de pago, a través de la nube de Microsoft Azure. Aprender Microsoft SQL Server es fácil.

MySQL

En el lado del software de código abierto, MySQL tiene la corona de popularidad de los RDBMS. Aunque Oracle lo posee actualmente, sigue siendo gratuito y de código abierto según los términos de una licencia pública general GNU. La mayoría de las aplicaciones basadas en web utilizan MySQL como repositorio de datos subyacente, gracias a su conformidad con el estándar SQL.

También ayudan a su popularidad sus sencillos procedimientos de instalación, su gran comunidad de desarrolladores, toneladas de documentación completa y herramientas de terceros, como phpMyAdmin, que simplifican las actividades de administración diarias. Aunque MySQL no tiene funciones nativas para realizar análisis de datos, su apertura permite su integración con casi cualquier herramienta de visualización, informes e inteligencia comercial que pueda elegir.

PostgreSQL

Otra opción de RDBMS de código abierto es PostgreSQL. Si bien no es tan popular como MySQL, PostgreSQL se destaca por su flexibilidad y extensibilidad, y su soporte para consultas complejas, las que van más allá de las declaraciones básicas como SELECT, WHERE y GROUP BY.

Estas características le permiten ganar popularidad entre los científicos de datos. Otra característica interesante es el soporte para múltiples entornos, que permite su uso en entornos en la nube y locales, o en una combinación de ambos, comúnmente conocidos como entornos de nube híbrida.

PostgreSQL es capaz de combinar el procesamiento analítico en línea (OLAP) con el procesamiento de transacciones en línea (OLTP), trabajando en un modo llamado procesamiento transaccional/analítico híbrido (HTAP). También es muy adecuado para trabajar con big data, gracias a la adición de PostGIS para datos geográficos y JSON-B para documentos. PostgreSQL también admite datos no estructurados, lo que le permite estar en ambas categorías: bases de datos SQL y NoSQL.

Bases de datos NoSQL

También conocido como bases de datos no relacionales, este tipo de repositorio de datos proporciona un acceso más rápido a estructuras de datos no tabulares. Algunos ejemplos de estas estructuras son gráficos, documentos, columnas anchas, valores clave, entre muchos otros. Los almacenes de datos NoSQL pueden dejar de lado la consistencia de los datos en favor de otros beneficios, como la disponibilidad, la partición y la velocidad de acceso.

Dado que no existe SQL en los almacenes de datos NoSQL, la única forma de consultar este tipo de base de datos es mediante el uso de lenguajes de bajo nivel, y no existe tal lenguaje que sea tan ampliamente aceptado como SQL. Además, no existen especificaciones estándar para NoSQL. Es por eso que, irónicamente, algunas bases de datos NoSQL están comenzando a agregar soporte para scripts SQL.

MongoDB

MongoDB es un popular sistema de base de datos NoSQL, que almacena datos en forma de documentos JSON. Se centra en la escalabilidad y la flexibilidad para almacenar datos de forma no estructurada. Esto significa que no existe una lista de campos fija que deban observarse en todos los elementos almacenados. Además, la estructura de los datos se puede cambiar con el tiempo, algo que en una base de datos relacional implica un alto riesgo de afectar las aplicaciones en ejecución.

La tecnología de MongoDB permite la indexación, las consultas ad-hoc y la agregación que proporcionan una base sólida para el análisis de datos. La naturaleza distribuida de la base de datos proporciona alta disponibilidad, escalado y distribución geográfica sin la necesidad de herramientas sofisticadas.

Redis

Este planteamiento de « una es otra opción en el frente NoSQL de código abierto. Básicamente es un almacén de estructura de datos que opera en memoria y, además de brindar servicios de base de datos, también funciona como memoria caché y broker de mensajes.

Admite una gran variedad de estructuras de datos no convencionales, incluidos hashes, índices geoespaciales, listas y conjuntos ordenados. Es muy adecuado para la ciencia de datos gracias a su alto rendimiento en tareas intensivas en datos, como la computación de intersecciones de conjuntos, la clasificación de listas largas o la generación de clasificaciones complejas. La razón del excelente rendimiento de Redis es su funcionamiento en memoria. Se puede configurar para conservar los datos de forma selectiva.

Marcos de Big Data

Suponga que tiene que analizar los datos que generan los usuarios de Facebook durante un mes. Estamos hablando de fotos, videos, mensajes, todo. Teniendo en cuenta que cada día sus usuarios añaden más de 500 terabytes de datos a la red social, es difícil medir el volumen que representa un mes entero de sus datos.

Para manipular esa enorme cantidad de datos de manera eficaz, necesita un marco adecuado capaz de calcular estadísticas sobre una arquitectura distribuida. Hay dos de los marcos que lideran el mercado: Hadoop y Spark.

Hadoop

Como marco de big data, Hadoop se ocupa de las complejidades asociadas con la recuperación, el procesamiento y el almacenamiento de grandes cantidades de datos. Hadoop opera en un entorno distribuido, compuesto por grupos de computadoras que procesan algoritmos simples. Existe un algoritmo de orquestación, llamado MapReduce, que divide las tareas grandes en partes pequeñas y luego las distribuye entre los clústeres disponibles.

Hadoop se recomienda para repositorios de datos de clase empresarial que requieren acceso rápido y alta disponibilidad, todo eso en un esquema de bajo costo. Pero necesitas un administrador de Linux con experiencia Conocimiento de Hadoop para mantener el marco en funcionamiento.

Spark

Hadoop no es el único marco disponible para la manipulación de big data. Otro gran nombre en esta área es Spark. El motor Spark fue diseñado para superar a Hadoop en términos de velocidad de análisis y facilidad de uso. Aparentemente, logró este objetivo: algunas comparaciones dicen que Spark se ejecuta hasta 10 veces más rápido que Hadoop cuando se trabaja en un disco, y 100 veces más rápido operando en memoria. También requiere una menor cantidad de máquinas para procesar la misma cantidad de datos.

Además de la velocidad, otro beneficio de Spark es su compatibilidad con el procesamiento de transmisiones. Este tipo de procesamiento de datos, también llamado procesamiento en tiempo real, implica la entrada y salida continua de datos.

Herramientas de visualización

Una broma común entre los científicos de datos dice que, si torturas los datos el tiempo suficiente, confesarán lo que necesitas saber. En este caso, “torturar” significa manipular los datos transformándolos y filtrándolos, con el fin de visualizarlos mejor. Y ahí es donde las herramientas de visualización de datos entran en escena. Estas herramientas toman datos preprocesados ​​de múltiples fuentes y muestran sus verdades reveladas en formas gráficas y comprensibles.

Hay cientos de herramientas que entran en esta categoría. Nos guste o no, el más utilizado es Microsoft Excel y sus herramientas de gráficos. Los gráficos de Excel son accesibles para cualquier persona que use Excel, pero tienen una funcionalidad limitada. Lo mismo se aplica a otras aplicaciones de hojas de cálculo, como Google Sheets y Libre Office. Pero estamos hablando aquí de herramientas más específicas, especialmente diseñadas para inteligencia empresarial (BI) y análisis de datos.

Power BI

No hace mucho, Microsoft lanzó su Power BI aplicación de visualización. Puede tomar datos de diversas fuentes, como archivos de texto, bases de datos, hojas de cálculo y muchos servicios de datos en línea, incluidos Facebook y Twitter, y usarlos para generar cuadros de mando llenos de gráficos, tablas, mapas y muchos otros objetos de visualización. Los objetos del tablero son interactivos, lo que significa que puede hacer clic en una serie de datos en un gráfico para seleccionarla y usarla como filtro para los otros objetos en el tablero.

Power BI es una combinación de una aplicación de escritorio de Windows (parte del paquete Office 365), una aplicación web y un servicio en línea para publicar los paneles en la web y compartirlos con sus usuarios. El servicio le permite crear y administrar permisos para otorgar acceso a los tableros solo a ciertas personas.

Tableau

Cuadro es otra opción para crear paneles interactivos a partir de una combinación de múltiples fuentes de datos. También ofrece una versión de escritorio, una versión web y un servicio en línea para compartir los paneles que cree. Funciona de forma natural "con tu forma de pensar" (como afirma), y es fácil de usar para personas sin conocimientos técnicos, lo que se mejora a través de muchos tutoriales y videos en línea.

Algunas de las características más destacadas de Tableau son sus conectores de datos ilimitados, sus datos en vivo y en memoria y sus diseños optimizados para dispositivos móviles.

QlikView

QlikView ofrece una interfaz de usuario limpia y sencilla para ayudar a los analistas a descubrir nuevos conocimientos a partir de datos existentes a través de elementos visuales que son fácilmente comprensibles para todos.

Esta herramienta es conocida por ser una de las plataformas de inteligencia empresarial más flexibles. Proporciona una función llamada Búsqueda asociativa, que lo ayuda a concentrarse en los datos más importantes, lo que le ahorra el tiempo que le tomaría encontrarlos por su cuenta.

Con QlikView, puede colaborar con socios en tiempo real, realizando análisis comparativos. Todos los datos pertinentes se pueden combinar en una sola aplicación, con funciones de seguridad que restringen el acceso a los datos.

Herramientas de raspado

En los tiempos en que Internet estaba emergiendo, los rastreadores web comenzaron a viajar junto con las redes para recopilar información a su paso. A medida que la tecnología evolucionó, el término rastreo web cambió por web scraping, pero con el mismo significado: extraer automáticamente información de sitios web. Para hacer web scraping, utiliza procesos automatizados, o bots, que saltan de una página web a otra, extrayendo datos de ellos y exportándolos a diferentes formatos o insertándolos en bases de datos para su posterior análisis.

A continuación, resumimos las características de tres de los web scrapers más populares disponibles en la actualidad.

Octoparse

Octoparse web scraper ofrece algunas características interesantes, incluidas herramientas integradas para obtener información de sitios web que no facilitan que los robots de scraping hagan su trabajo. Es una aplicación de escritorio que no requiere codificación, con una interfaz de usuario amigable que permite visualizar el proceso de extracción a través de un diseñador gráfico de flujo de trabajo.

Junto con la aplicación independiente, Octoparse ofrece un servicio basado en la nube para acelerar el proceso de extracción de datos. Los usuarios pueden experimentar una ganancia de velocidad de 4x a 10x cuando utilizan el servicio en la nube en lugar de la aplicación de escritorio. Si se apega a la versión de escritorio, puede usar Octoparse de forma gratuita. Pero si prefiere utilizar el servicio en la nube, tendrá que elegir uno de sus planes pagos.

Content Grabber

Si está buscando una herramienta de raspado con muchas funciones, debe prestar atención a Capturador de contenido. A diferencia de Octoparse, para utilizar Content Grabber, es necesario tener conocimientos avanzados de programación. A cambio, obtienes edición de secuencias de comandos, interfaces de depuración y otras funcionalidades avanzadas. Con Content Grabber, puede utilizar lenguajes .Net para escribir expresiones regulares. De esta manera, no tiene que generar las expresiones usando una herramienta incorporada.

La herramienta ofrece una API (Interfaz de programación de aplicaciones) que puede utilizar para agregar capacidades de raspado a sus aplicaciones web y de escritorio. Para utilizar esta API, los desarrolladores deben obtener acceso al servicio Content Grabber de Windows.

ParseHub

Este raspador puede manejar una lista extensa de diferentes tipos de contenido, incluidos foros, comentarios anidados, calendarios y mapas. También puede tratar con páginas que contienen autenticación, Javascript, Ajax y más. ParseHub se puede utilizar como una aplicación web o una aplicación de escritorio capaz de ejecutarse en Windows, macOS X y Linux.

Al igual que Content Grabber, se recomienda tener algunos conocimientos de programación para aprovechar al máximo ParseHub. Tiene una versión gratuita, limitada a 5 proyectos y 200 páginas por ejecución.

Lenguajes de programación

Al igual que el lenguaje SQL mencionado anteriormente está diseñado específicamente para trabajar con bases de datos relacionales, existen otros lenguajes creados con un enfoque claro en la ciencia de datos. Estos lenguajes permiten a los desarrolladores escribir programas que se ocupen de análisis de datos masivos, como estadísticas y máquina de aprendizaje.

SQL también se considera una habilidad importante que los desarrolladores deberían tener para hacer ciencia de datos, pero eso se debe a que la mayoría de las organizaciones todavía tienen muchos datos en bases de datos relacionales. Los lenguajes de ciencia de datos “verdaderos” son R y Python.

Python

Python es un lenguaje de programación de alto nivel, interpretado y de propósito general, muy adecuado para el desarrollo rápido de aplicaciones. Tiene una sintaxis simple y fácil de aprender que permite una curva de aprendizaje pronunciada y reducciones en los costos de mantenimiento del programa. Hay muchas razones por las que es el idioma preferido para la ciencia de datos. Por mencionar algunos: potencial de secuencias de comandos, verbosidad, portabilidad y rendimiento.

Este idioma es un buen punto de partida para científicos de datos que planean experimentar mucho antes de lanzarse al trabajo de procesamiento de datos reales y duros, y que desean desarrollar aplicaciones completas.

R

La Lenguaje R se utiliza principalmente para procesamiento de datos estadísticos y gráficos. Aunque no está destinado a desarrollar aplicaciones completas, como sería el caso de Python, R se ha vuelto muy popular en los últimos años debido a su potencial para la minería de datos y el análisis de datos.

Gracias a una biblioteca en constante crecimiento de paquetes disponibles gratuitamente que amplían su funcionalidad, R es capaz de realizar todo tipo de trabajo de procesamiento de datos, incluido el modelado lineal / no lineal, clasificación, pruebas estadísticas, etc.

No es un idioma fácil de aprender, pero una vez que se familiarice con su filosofía, estará haciendo computación estadística como un profesional.

IDEs

Si está considerando seriamente dedicarse a la ciencia de datos, deberá elegir cuidadosamente un entorno de desarrollo integrado (IDE) que se adapte a sus necesidades, porque usted y su IDE pasarán mucho tiempo trabajando juntos.

Un ideal IDE debe reunir todas las herramientas que necesita en su trabajo diario como codificador: un editor de texto con resaltado de sintaxis y autocompletado, un depurador potente, un navegador de objetos y fácil acceso a herramientas externas. Además, debe ser compatible con el idioma de tu preferencia, por lo que es una buena idea elegir tu IDE luego de saber qué idioma usarás.

Spyder

Este planteamiento de « El IDE genérico está destinado principalmente a científicos y analistas que también necesitan codificar. Para hacerlos más cómodos, no se limita a la funcionalidad IDE, sino que también proporciona herramientas para la exploración / visualización de datos y la ejecución interactiva, como se puede encontrar en un paquete científico. El editor de Spyder admite varios idiomas y agrega un navegador de clases, división de ventanas, salto a la definición, finalización automática de código e incluso una herramienta de análisis de código.

El depurador le ayuda a rastrear cada línea de código de forma interactiva, y un generador de perfiles le ayuda a encontrar y eliminar ineficiencias.

PyCharm

Si programa en Python, es probable que su IDE de elección sea PyCharm. Tiene un editor de código inteligente con búsqueda inteligente, finalización de código y detección y corrección de errores. Con solo un clic, puede pasar del editor de código a cualquier ventana relacionada con el contexto, incluida la prueba, el súper método, la implementación, la declaración y más. PyCharm admite Anaconda y muchos paquetes científicos, como NumPy y Matplotlib, por nombrar solo dos de ellos.

Ofrece integración con los sistemas de control de versiones más importantes, y también con un ejecutor de pruebas, un perfilador y un depurador. Para cerrar el trato, también se integra con Docker y Vagrant para proporcionar desarrollo multiplataforma y contenedorización.

RStudio

Para aquellos científicos de datos que prefieren el equipo R, el IDE de elección debe ser RStudio, debido a sus muchas características. Puede instalarlo en un escritorio con Windows, macOS o Linux, o puede ejecutarlo desde un navegador web si no desea instalarlo localmente. Ambas versiones ofrecen ventajas como resaltado de sintaxis, sangría inteligente y finalización de código. Hay un visor de datos integrado que resulta útil cuando necesita buscar datos tabulares.

El modo de depuración permite ver cómo se actualizan los datos dinámicamente al ejecutar un programa o guión paso a paso. Para el control de versiones, RStudio integra soporte para SVN y Git. Una buena ventaja es la posibilidad de crear gráficos interactivos con Shiny y bibliotecas.

Tu caja de herramientas personal

En este punto, debe tener una visión completa de las herramientas que debe conocer para sobresalir en la ciencia de datos. Además, esperamos haberle proporcionado suficiente información para decidir cuál es la opción más conveniente dentro de cada categoría de herramienta. Ahora depende de ti. La ciencia de datos es un campo floreciente donde desarrollar una carrera. Pero si quieres hacerlo, debes estar al día con los cambios de tendencias y tecnologías, ya que ocurren casi a diario.