Las librerías de programación hacen referencia a los conjuntos de archivos de código que han sido creados para desarrollar software de manera sencilla. Gracias a ellas, los desarrolladores pueden evitar la duplicidad de código y minimizar errores con mayor agilidad y menor coste. Existen multitud de librerías, enfocadas en distintas actividades. Hace unas semanas vimos algunos ejemplos de librerías para la creación de visualizaciones, y en esta ocasión nos vamos a centrar en librerías de utilidad para tareas de aprendizaje automático (Machine Learning).
Estas librerías son altamente prácticas a la hora de implementar flujos de Machine Learning. Esta disciplina, perteneciente al campo de la Inteligencia Artificial, utiliza algoritmos que ofrecen, por ejemplo, la capacidad de identificar patrones de datos masivos o la capacidad de ayudar a elaborar análisis predictivos.
A continuación, te mostramos algunas de las librerías de análisis de datos y Machine Learning más populares que existen en la actualidad para los principales lenguajes de programación, como Python o R:
Librerías para Python
NumPy
- Descripción:
Esta librería de Python está especializada en el cálculo matemático y en el análisis de grandes volúmenes de datos. Permite trabajar con arrays que permiten representar colecciones de datos de un mismo tipo en varias dimensiones, además de funciones muy eficientes para su manipulación.
- Materiales de apoyo:
Aquí encontramos la Guía para principiantes, con conceptos básicos y tutoriales, la Guía del usuario, con información sobre las características generales, o la Guía del colaborador, para contribuir al mantenimiento y desarrollo del código o en la redacción de documentación técnica. NumPy también cuenta con una Guía de referencia que detalla funciones, módulos y objetos incluidos en esta librería, así como una serie de tutoriales para aprender a utilizarla de forma sencilla.
Pandas
- Descripción:
Se trata de una de las librerías más utilizadas para el tratamiento de datos en Python. Esta herramienta de análisis y manipulación de datos se caracteriza, entre otros aspectos, por definir nuevas funcionalidades de datos basadas en los arrays de la librería NumPy. Permite leer y escribir fácilmente ficheros en formato CSV, Excel y especificar consultas a bases de datos SQL.
- Materiales de apoyo:
Su web cuenta con diferentes documentos como la Guía del usuario, con información básica detallada y explicaciones útiles, la Guía del desarrollador, que detalla los pasos a seguir ante la identificación de errores o sugerencia de mejoras en las funcionalidades, así como la Guía de referencia, con descripción detallada de su API. Además, ofrece una serie de tutoriales aportados por la comunidad y referencias sobre operaciones equivalentes en otros softwares y lenguajes como SAS, SQL o R.
Scikit-learn
- Descripción:
Scikit-Learn es una librería que implementa una gran cantidad de algoritmos de Machine Learning para tareas de clasificación, regresión, clustering y reducción de dimensionalidad. Además, es compatible con otras librerías de Python como NumPy, SciPy y Matplotlib (Matpotlib es una librería de visualización de datos y como tal está incluida en el artículo anterior).
- Materiales de apoyo:
Esta librería cuenta con diferentes documentos de ayuda como un Manual de instalación, una Guía del Usuario o un Glosario de términos comunes y elementos de su API. Además, ofrece una sección con diferentes ejemplos que ilustran las características de la librería, así como otras secciones de interés con tutoriales, preguntas frecuentes o acceso a su GitHub.
Scipy
- Descripción:
Esta librería presenta una colección de algoritmos matemáticos y funciones construidas sobre la extensión de NumPy. Incluye módulos de extensión para Python sobre estadística, optimización, integración, álgebra lineal o procesamiento de imágenes, entre otros.
- Materiales de apoyo:
Al igual que los ejemplos anteriores, esta librería también cuenta con materiales como Guías de instalación, Guías para usuarios, para desarrolladores o un documento con descripciones detalladas sobre su API. Además, ofrece información sobre act, una herramienta para ejecutar acciones de GitHub de forma local.
Librerías para R
mlr
- Descripción:
Esta librería ofrece componentes fundamentales para desarrollar tareas de aprendizaje automático, entre otros, preprocesamiento, pipelining, selección de características, visualización e implementación de técnicas supervisadas y no supervisadas utilizando un amplio abanico de algoritmos.
- Materiales de apoyo:
En su web cuenta con múltiples recursos para usuarios y desarrolladores, entre los que destaca un tutorial de referencia que presenta un extenso recorrido que abarca los aspectos básicos sobre tareas, predicciones o preprocesamiento de datos hasta la implementación de proyectos complejos utilizando funciones avanzadas.
Además, cuenta con un apartado que redirige a GitHub en el que ofrece charlas, vídeos y talleres de interés sobre el funcionamiento y los usos de esta librería.
Tidyverse
- Descripción:
Esta librería ofrece una colección de paquetes de R diseñados para la ciencia de datos que aporta funcionalidades muy útiles para importar, transformar, visualizar, modelar y comunicar información a partir de datos. Todos ellos comparten una misma filosofía de diseño, gramática y estructuras de datos subyacentes. Los principales paquetes que lo componen son: dplyr, ggplot2, forcats, tibble, readr, stringr, tidyr y purrr.
- Materiales de apoyo:
Tidyverse cuenta con un blog en el que podrás encontrar posts sobre programación, paquetes o trucos y técnicas para trabajar con esta librería. Además, cuenta con una sección que recomienda libros y workshops para aprender a utilizar esta librería de una manera más sencilla y amena.
Caret
- Descripción:
Esta popular librería contiene una interfaz que unifica bajo un único marco de trabajo cientos de funciones para entrenar clasificadores y regresores, facilitando en gran medida todas las etapas de preprocesado, entrenamiento, optimización y validación de modelos predictivos.
- Materiales de apoyo:
La web del proyecto contine exhaustiva información que facilita al usuario abordar tareas mencionadas. También se puede encontrar referencias en CRAN y el proyecto está alojado en GitHub. Algunos recursos de interés para el manejo de esta librería se pueden encontrar a través de libros como Applied Predictive Modeling, artículos, seminarios o tutoriales, entre otros.
Librerías para abordar tareas de Big Data
TensorFlow
- Descripción:
Además de Python y R, esta librería también es compatible con otros lenguajes como JavaScript, C++ o Julia. TensorFlow ofrece la posibilidad de compilar y entrenar modelos de ML utilizando APIs. La API más destacada es Keras, que permite construir y entrenar modelos de aprendizaje profundo (Deep Learning).
- Materiales de apoyo:
En su web se pueden encontrar recursos como modelos y conjuntos de datos previamente establecidos y desarrollados, herramientas, bibliotecas y extensiones, programas de certificación, conocimientos sobre aprendizaje automático o recursos y herramientas para integrar las prácticas de IA responsable. Puedes acceder a su página de GitHub aquí.
Dmlc XGBoost
- Descripción:
Librería de "Gradient Boosting" (GBM, GBRT, GBDT) escalable, portátil y distribuida es compatible con los lenguajes de programación C++, Python, R, Java, Scala, Perl y Julia. Esta librería permite resolver muchos problemas de ciencia de datos de una manera rápida y precisa y se puede integrar con Flink, Spark y otros sistemas de flujo de datos en la nube para abordar tareas Big Data.
- Materiales de apoyo:
En su web cuenta con un blog con temáticas relacionadas como actualizaciones de algoritmos o integraciones, además de una sección de documentación que cuenta con guías de instalación, tutoriales, preguntas frecuentes, foro de usuarios o paquetes para los distintos lenguajes de programación. Puedes acceder a su página de GitHub a través de este enlace.
H20
- Descripción:
Esta librería combina los principales algoritmos de Machine Learning y aprendizaje estadístico con Big Data, además de ser capaz de trabajar con millones de registros. H20 está escrita en Java, y sigue el paradigma Key/Value para almacenar datos y Map/Reduce para implementar algoritmos. Gracias a su API, se puede acceder desde R, Python o Scala.
- Materiales de apoyo:
Cuenta con una serie de vídeos en forma de tutorial para enseñar y facilitar su uso a los usuarios. En su página de GitHub podrás encontrar recursos adicionales como blogs, proyectos, recursos, trabajos de investigación, cursos o libros sobre H20.
En este artículo hemos ofrecido una muestra de algunas de las librerías más populares que ofrecen funcionalidades versátiles para abordar tareas típicas de ciencia de datos y aprendizaje automático, aunque hay muchas otras. Este tipo de librerías está en constante evolución gracias a la posibilidad que ofrece a sus usuarios de participar en su mejora a través de acciones como la contribución a la escritura de código, la generación de nueva documentación o el reporte de errores. Todo ello permite enriquecer y perfeccionar sus resultados continuamente.
Si sabes de alguna otra librería de interés que quieras recomendarnos, puedes dejarnos un mensaje en comentarios o envíanos un correo electrónico a dinamizacion@datos.gob.es
Contenido elaborado por el equipo de datos.gob.es.
El pasado diciembre el Congreso de los Diputados aprobó el Real Decreto-ley 24/2021, que incluía la transposición de la Directiva (UE) 2019/1024, relativa a los datos abiertos y la reutilización de la información del sector público. Con este Real Decreto se modifica la Ley 37/2007 sobre reutilización de la información del sector público, incluyendo nuevos requisitos para los organismos públicos, entre los que se encuentra el facilitar el acceso a los datos de alto valor.
Los datos de alto valor son aquellos cuya reutilización está asociada a considerables beneficios para la sociedad, el medio ambiente y la economía. Inicialmente, la Comisión Europea destacó como datos de alto valor aquellos pertenecientes a las categorías de datos geoespaciales, ambientales, meteorológicos, estadísticos, relativos a sociedades y de movilidad, aunque estas clases pueden ser ampliadas tanto por, la Comisión como por el Ministerio de Asuntos Económicos y Transformación Digital a través de la Oficina del Dato. De acuerdo con la Directiva, este tipo de datos “se pondrán a disposición para su reutilización en un formato legible por máquina, a través de interfaces de programación de aplicaciones adecuadas y, cuando proceda, en forma de descarga masiva”. Es decir, entre otras cuestiones, se hace necesario el contar con una API.
¿Qué es una API?
Una interfaz de programación de aplicaciones o API (la abreviatura en inglés de Application Programming Interfaces) es un conjunto de definiciones y protocolos que permite el intercambio de información entre sistemas. Cabe destacar que existen distintos tipos de APIs en base a su arquitectura, protocolos de comunicación y sistemas operativos.
Las APIs suponen una serie de ventajas para los desarrolladores, ya que permiten automatizar el consumo de datos y metadatos, facilitan la descarga masiva y optimizan la recuperación de información al admitir funcionalidades de filtrado, ordenación y paginación. Todo ello repercute en un ahorro tanto económico como de tiempo.
En este sentido, muchos portales de datos abiertos de nuestro país ya cuentan con sus propias APIs para facilitar el acceso a datos y metadatos. En la siguiente infografía puedes ver algunos ejemplos a nivel nacional, autonómico y local, incluyendo información sobre la API de datos.gob.es. La infografía también incluye información breve sobre qué es una API y qué se necesita para poder utilizarlas.
Haz clic aquí para ver la infografía en tamaño completo y en su versión accesible
Estos ejemplos ponen de manifiesto el esfuerzo que los organismos públicos de nuestro país están haciendo para facilitar el acceso a la información que custodian de forma más eficiente y automatizada, con el fin de impulsar la reutilización de sus datos abiertos.
En datos.gob.es contamos con una Guía práctica para la publicación de datos abiertos usando APIs donde se detallan una serie de pautas y buenas prácticas para definir e implementar este mecanismo en un portal open data.
Contenido elaborado por el equipo de datos.gob.es.
Hace un par de semanas, comentamos a través de este artículo la importancia de las herramientas de análisis de datos para generar representaciones que permitan comprender mejor la información y tomar decisiones más acertadas. En dicho artículo dividimos estas herramientas en 2 categorías: herramientas de visualización de datos genéricas - como son Kibana, Tableau Public, SpagoBI (actual Knowage) y Grafana - y las librerías y APIs de visualización. Este nuevo post se lo vamos a dedicar a las segundas.
Las librerías y APIs de visualización son más versátiles que las herramientas de visualización genéricas, pero para poder trabajar con ellas es necesario que el usuario conozca del lenguaje de programación donde se implemente la librería.
Existe una amplia gama de librerías y APIs para diferentes lenguajes de programación o plataformas, que implementan funcionalidades relacionadas con la visualización de datos. A continuación, os mostraremos una selección tomando como criterio fundamental la popularidad que les otorga la Comunidad de usuarios.
Google Chart Tools
Funcionalidad:
Google Chart Tools es la API de Google para la creación de visualizaciones interactivas. Permite la creación de dashboards utilizando diferentes tipos de widgets, como selectores de categoría, rangos temporales o autocompletadores, entre otros.
Principales ventajas:
Se trata de una herramienta muy fácil de usar e intuitiva, que permite la interacción con datos en tiempo real. Además, las visualizaciones generadas pueden ser integradas en portales webs utilizando tecnología HTML5/SVG.
¿Quieres saber más?
-
Materiales de ayuda: En Youtube encontramos diversos tutoriales elaborados por usuarios de la API.
-
Repositorio: En Github podemos acceder a una biblioteca común para los paquetes de gráficos, así como conocer los tipos de gráficos compatibles y ejemplos de cómo personalizar los componentes de cada gráfico, entre otros.
-
Comunidad de usuarios: Los usuarios de Google Chart Tools pueden plantear sus dudas en la comunidad de Google, en el espacio habilitado para ello.
JavaScript InfoVis Toolkit
Funcionalidad:
JavaScript InfoVis Toolkit es la librería de JavaScript que proporciona funciones para la creación de múltiples visualizaciones interactivas como mapas, árboles jerárquicos o gráficos de líneas.
Principales ventajas:
Es eficiente en el manejo de estructuras de datos complejas y dispone de una gran diversidad de opciones de visualización, por lo que se adapta a cualquier necesidad del desarrollador.
¿Quieres saber más?
-
Materiales de ayuda: Este manual de usuario explica las principales opciones de visualización y cómo trabajar con la librería. También hay disponibles demos para la creación de diferentes tipos de gráficos.
-
Repositorio: Los usuarios deben descargar el proyecto de http://thejit.org, aunque también tienen disponible un repositorio en Github donde, entre otras cosas, pueden descargar extras.
-
Comunidad de usuarios: Tanto en la comunidad de usuarios de Google como en Stackoverflow encontramos espacios dedicados a JavaScript InfoVis Tookit para que los usuarios compartan dudas y experiencias.
Data-Driven Documents (D3.js)
Funcionalidad:
Data-Driven Documents (D3.js) es la librería de Javascript que permite la creación de gráficos interactivos y visualizaciones complejas. Gracias a ella se pueden manipular documentos basados en datos usando estándares abiertos de la web (HTML. SVG y CSS), de forma que los navegadores puedan interpretarlos para crear visualizaciones independientemente del software propietario.
Principales ventajas:
Esta librería permite la manipulación de un DOM (Modelo en Objetos para la Representación de Documentos) aplicando las transformaciones necesarias a la estructura en función de los datos vinculados a un documento HTML o XML. Esto proporciona una versatilidad prácticamente ilimitada.
¿Quieres saber más?
-
Materiales de ayuda: En Github puedes encontrar numerosos tutoriales, aunque principalmente dedicados a las versiones antiguas (actualmente están en proceso de actualizar esta sección de la wiki y escribir nuevos tutoriales sobre la versión 4.0 de D3).
-
Repositorio: También en Github encontramos hasta 53 repositorios, que abarcan distintos materiales para gestionar miles de animaciones simultáneas, agrupar puntos bidimensionales en bandejas hexagonales o trabajar con el módulo d3-color, entre otros. En esta galería puedes ver algunos de los trabajos realizados.
-
Comunidad de usuarios: Existen espacios de discusión sobre D3 en la Comunidad de Google, Stackoverflow, Gitter y Slack.
-
Redes sociales: En la cuenta de Twitter @d3js_org se comparten experiencias, novedades y casos de uso. También existe un grupo en LinkedIn.
Matplotlib
Funcionalidad:
Matplotlib es una de las librerías más populares en Python para la creación de visualizaciones y gráficos de alta calidad. Se caracteriza por presentar una organización jerárquica que va desde el nivel más general, como puede ser el contorno de una matriz 2D, hasta un nivel muy específico, como puede ser colorear un pixel determinado.
Principales ventajas:
Matplotlib soporta texto y etiquetas en formato LaTeX. Además, los usuarios pueden personalizar su funcionalidad a través de paquetes diseñados por terceros (Cartopy, Ridge Map, holoviews, entre otros).
¿Quieres saber más?
-
Materiales de ayuda: En su propia web encontramos una guía de usuario que incluye información sobre la instalación y el uso de las diversas funcionalidades. También hay disponibles tutoriales para usuarios tanto principiantes, como intermedios o avanzados.
-
Repositorio: En este repositorio Github están los materiales que necesitas para su instalación. En la web puedes ver una galería con ejemplos de trabajos para tu inspiración.
-
Comunidad de usuarios: La web oficial dispone de una sección de comunidad, aunque también puedes encontrar grupos de usuarios que te ayuden con tus dudas en Stackoverflow y Gitter.
-
Redes sociales: En el perfil de Twitter @matplotlib también se comparten ejemplos de visualizaciones y trabajos de usuarios, así como información sobre las últimas novedades de la herramienta.
Bokeh
Funcionalidad:
Bokeh es la librería de Python orientada a la creación de gráficas interactivas basadas en HTML/JS. Tiene la capacidad de generar visualizaciones interactivas con características como, texto flotante, zoom, filtros o selecciones, entre otros.
Principales ventajas:
Su principal ventaja es la simplicidad en la implementación: con pocas líneas de código se pueden crear visualizaciones interactivas complejas. Además, permite embeber código JavaScript para implementar funcionalidades específicas.
¿Quieres saber más?
-
Materiales de ayuda: Esta guía del usuario proporciona descripciones detalladas y ejemplos que describen muchas tareas comunes que se puede realizar con Bokeh. En la web de Bokeh también encontramos este tutorial y ejemplos de aplicaciones construidas con esta herramienta.
-
Repositorio: En este repositorio Github están los materiales e instrucciones para su instalación, así como ejemplos de uso. También hay ejemplos disponibles en esta galería.
-
Comunidad de usuarios: La comunidad oficial se encuentra en la propia web de Bokeh, aunque los usuarios de esta herramienta también se reúnen en Stackoverflow.
-
Redes sociales: Para estar al día de las novedades, puedes seguir la cuenta de Twitter @bokeh o su perfil en LinkedIn.
La siguiente tabla muestra un resumen de las herramientas mencionadas anteriormente:
¿Estás de acuerdo con nuestra selección? Te invitamos a compartir tu experiencia con estas u otras herramientas en la sección de comentarios.
Si estás buscando herramientas para ayudarte en el procesamiento de datos, desde datos.gob.es ponemos a tu disposición el informe “Herramientas de procesado y visualización de datos”, recientemente actualizado, así como los siguientes artículos monográficos:
- Las herramientas de análisis de datos más populares
- Las herramientas de depuración y conversión de datos más populares
- Las herramientas de visualización de datos más populares
- Las herramientas de visualización geoespacial más populares
- Las herramientas de análisis de redes más populares
Contenido elaborado por el equipo de datos.gob.es.