Combina los lenguajes de la ciencia de datos, tales como SAS, Python, R y SQL con WPS Analytics

Blog

Megaphone

Publicado

03 may. 2018

Categoría

Ciencia de datos

Compartir

De: Borja Comendeiro, Científico de datos superior en World Programming, Reino Unido

A menudo se debate qué lenguaje de programación de datos debe aprender un científico de datos. El lenguaje SAS, R, Python, SQL, Julia y demás, cada uno tiene sus defensores y detractores. Es seguro asumir que el mejor lenguaje es el que te ayuda a maximizar tu productividad y lograr tus objetivos.

Las organizaciones a menudo tienen todo tipo de uso y experiencia en el lenguaje de programación; diferentes áreas de una organización pueden preferir diferentes lenguajes, y dentro de un área individual puede haber razones para usar un lenguaje sobre otro para tareas diferentes.

Cada lenguaje tiene sus propias fortalezas:

Structured Query Language (SQL)
SQL es el lenguaje más conocido para interactuar con bases de datos. Simple pero poderoso, a menudo es el punto de partida para las personas que aprenden a analizar datos. Para las tareas de extracción, ordenación y resumen de datos, puede ser una herramienta perfectamente aceptable. Para tareas que involucran orígenes de datos heterogéneas, múltiples pasos o programas de procedimientos, rápidamente se vuelve engorroso o poco práctico.

Lenguaje SAS
El lenguaje SAS facilita el procesamiento simple de datos y las tareas analíticas avanzadas, y permite procesar grandes volúmenes de datos con un mínimo de recursos de cómputo y líneas de código. El lenguaje SAS brinda la preparación de datos escalables junto con métodos estadísticos sólidos. En general, no hay ninguna restricción para que los datos quepan en la memoria. Los proveedores comerciales de compiladores de lenguaje SAS brindan altos niveles de soporte para datos críticos y entornos analíticos de bibliotecas estadísticas.

Lenguaje R
El lenguaje R tiene sólidas capacidades de visualización ad hoc y permite a los usuarios realizar análisis estadísticos de vanguardia y de nicho. R tiene una extensa comunidad de contribuidores de código abierto que ayuda a que la gama de paquetes estadísticos crezca aún más, aunque puede ser difícil navegar por el amplio conjunto de bibliotecas disponibles. El lenguaje R generalmente requiere que los datos quepan en la memoria, lo que limita la capacidad de R para administrar grandes volúmenes de datos. Las funcionalidades de preparación de datos del lenguaje R no son tan fuertes

Lenguaje Python
Popular entre los estudiantes, el lenguaje Python es un lenguaje de programación de uso más general que los lenguajes R o SAS. Hay algunas bibliotecas populares de análisis de Big Data escritas en Python, tales como PySpark y sus APIs para muchos componentes del ecosistema Hadoop y marcos de trabajo de Deep Learning como Theano y Tensorflow.

Lenguaje Julia
Una adición más reciente al mercado del lenguaje de datos, el lenguaje Julia está bien diseñado y puede tener una ejecución eficiente. Le falta la amplia base de usuarios y el ecosistema de los otros lenguajes.

Otros lenguaje
Los lenguajes anteriores son los más comúnmente asociados con la ciencia de datos. Es posible realizar análisis de datos en una amplia variedad de lenguajes, algunos de los cuales incluyen grandes bibliotecas para análisis numéricos y estadísticos, incluidos Java, C, Fortran, Octave, SPSS y muchos más.

Idealmente, los científicos de datos pueden crear programas que utilicen la mejor herramienta para cada aspecto de una tarea de ciencia de datos. Imagina leer los datos desde tu base de datos SQL, hacer un análisis de frecuencia en un par de líneas usando el procedimiento de frecuencia en el lenguaje SAS y luego trazando los resultados con ggplot2 en R, o imagina que tus analistas de lenguaje SAS altamente competentes puedan generar flujos de trabajo de preparación de datos que un nuevo empleado con óptimas habilidades en Python pueda aprovechar.

El cambio entre R y Python se puede hacer hasta cierto punto usando extensiones como la biblioteca rPy2 en Python o el paquete rPython en R.

Sin embargo, el cambio entre herramientas a menudo requiere la serialización y deserialización de datos de una herramienta a otra, concatenando programas en diferentes lenguajes utilizando una herramienta de administración de flujo de trabajo o generando scripts bash o shell complejos que pueden ser difíciles de mantener. La tarea es tan tediosa y propensa a errores que rara vez se realiza, salvo para scripts de un extremo a otro grandes y complejos.

En este tipo de situaciones, WPS es la plataforma de ciencia de datos integrada ideal que permite a los científicos de datos utilizar el mismo programa para codificar de un extremo a otro con el lenguaje SAS, R, Python, SQL y Java dentro del mismo programa y entorno de desarrollo.

Entonces, imagina que tenemos un gran conjunto de datos que contiene datos de clientes siendo uno de los campos datos de texto no estructurado. Uso de WPS, es posible combinar en un único script:

  • SQL para interactuar con la base de datos
  • Lenguaje SAS para la preparación y generación de informes de datos
  • R para la minería de texto
  • Lenguaje SAS para el modelado
  • Python para el modelado adicional
Spatial analysis1

El ejemplo de modelado anterior en el lenguaje SAS predice las ganancias de capital en función de la edad, el tipo de relación, los años de educación y el nivel de ingresos, creando modelos separados según el género

Programa de WPS Analytics: un programa, múltiples lenguajes.

Spatial analysis2.es es

Supongamos que la mayor parte del historial de clientes reside en una base de datos relacional estructurada. Podría ser ideal leer los datos directamente y utilizar el lenguaje nativo de la base de datos, invocar algunos procedimientos almacenados que se han codificado previamente, o pegar una consulta que tu equipo de DBA ha creado previamente. ¿Qué ocurre si hay datos adicionales dentro de un clúster de Hadoop? Puede conectarse a bases de datos para leer datos con el lenguaje SAS, por ejemplo, en el procedimiento SQL:

Spatial analysis3

El lenguaje SAS es ideal para la preparación de datos con múltiples funciones de preparación de datos que incluyen importación, combinación, filtrado, transformación y remodelación, imputación de valor ausente, validación. Por ejemplo, puede modificar la estructura del conjunto de datos utilizando el procedimiento de transposición del lenguaje SAS:

Spatial analysis4Spatial analysis5


El lenguaje SAS tiene características menos utilizables para datos no estructurados. Los lenguajes R y Python pueden ambos aprovechar de marcos de trabajo completos para realizar el análisis de sentimiento o análisis tf-idf, y convertir la salida a un formato estructurado para el modelado. El procedimiento R del lenguaje SAS hace que sea fácil enviar un conjunto de datos a R, donde podemos derivar variables de sentimiento:

Usando una entrada con usuarios y algunos campos de texto:

usuariotexto
usuario 1Tuve una experiencia horrible en la tienda, el personal fue grosero, el servicio al cliente mediocre, nunca volveré
usuario 2Servicio decente, aunque lento, buena experiencia en general
usuario 3Estoy muy satisfecho con su servicio, confiable y con una gran relación calidad-precio

Se obtiene un resultado con una puntuación de sentimiento que se puede usar en modelados o informes posteriores.

usuariotextosentimiento
usuario 1Tuve una experiencia horrible en la tienda, el personal fue grosero, el servicio al cliente mediocre, nunca volveré-0,963
usuario 2Servicio decente, aunque lento, buena experiencia en general0,158
usuario 3Estoy muy satisfecho con su servicio, confiable y con una gran relación calidad-precio0,915
Spatial analysis8

El lenguaje Python tiene algunos paquetes de modelado útiles, como Scikit-learn y Keras, una API de alto nivel para los marcos de trabajo de Deep learning Tensorflow y Theano. Usando el procedimiento Python de lenguaje SAS, es fácil aprovechar esta funcionalidad de Python dentro del mismo programa.

Spatial analysis9

El uso de este enfoque con la plataforma WPS de World Programming tiene una serie de ventajas:

  • Los programas de análisis son fáciles de implementar: un único programa puede programarse o invocarse a través de la línea de comando.
  • Canalizaciones y flujos de trabajo analíticos de fácil mantenimiento, ya que sólo es necesario realizar un seguimiento de un único archivo para la administración de la configuración y el control de versiones
  • Se puede sacar provecho de diferentes conjuntos de habilidades sin ningún problema, utilizando bibliotecas incorporadas en las mejores tecnologías de su clase. Los activos de propiedad intelectual se pueden preservar y reutilizar universalmente

Es fácil tener lo mejor de todos los mundos, utilizando la tecnología más adecuada para cada parte de un único proceso de análisis. Puedes equilibrar las necesidades de Big Data, datos estructurados y no estructurados, preparación de datos, velocidad de procesamiento, aprendizaje automático, funciones de IA, implementación de producción y costo financiero, sin las limitaciones de un conjunto de tecnologías, aún accesibles dentro de un marco de trabajo e interfaz de usuario administrados y coherentes.