Archivo de la etiqueta: R

¿Qué lenguaje debemos utilizar para Data Science?

En este blog, ya hemos hablado con anterioridad de diferentes herramientas para emprender proyectos de analítica. Fue en esta entrada, comparando más allá a nivel de herramienta, cuando comparábamos R, Python y SAS, que son sobre las que pivotamos en nuestros Programas de Big Data.

El mundo de la analítica está avanzando a la velocidad de la luz, por lo que es importante que escribamos artículos volviendo a esa pregunta original sobre ¿Qué lenguaje utilizar para Data Science? No es una pregunta sencilla, porque las opciones existentes no son pocas.

La pregunta se vuelve más complicada aún en contextos como el nuestro. Tenemos que enseñar y aprender desde cero la disciplina de Data Science. Y una pregunta muy recurrente de parte de nuestros alumnos de Bilbao, Donostia y Madrid, es, ¿por qué lenguaje empieza para arrancar en este mundo del Big Data?

Son muchas los lenguajes que ofrecen las capacidades para ejecutar operaciones de análisis de datos de una manera más eficiente que los lenguajes tradicionales (C++, C, Java, etc.). Entre ellos, destacan algunos sospechosos habituales, y otros que están emergiendo con fuerza: R, Python, MATLAB, Octave y Julia. Éste es el menú en el que tenemos que elegir; decisión, como suele pasar con estas cuestiones, no sencilla. Dejo fuera de esta comparación soluciones analíticas como SAS, Stata o Excel, básicamente, porque no están orientadas a nivel de “lenguaje de programación”, sino a nivel de herramientas.

En esta entrada, y para poder encontrar un ganador, se han comparado los lenguajes en varias dimensiones: velocidad de ejecución, curva de aprendizaje requerida, capacidades de ejecutar acciones de analítica de datos, soporte a la visualización, entornos de desarrollo, facilidad de integración con otros lenguajes/aplicaciones y las oportunidades de trabajo existentes.

Comparación entre lenguajes

Obviamente, debemos notar que las calificaciones otorgadas en cada dimensión son la opinión de Siva Prasad, la persona que lo ha elaborado. Por lo tanto, creo que no debemos tampoco sacar conclusiones exclusivamente de ello. Creo que lo más ilustrativo del caso es fijarse en que en función de cuál sea el objetivo y la necesidad concreta, hay diferentes opciones que explorar.

Lo que sí me parece igualmente interesante, son la utilidad que puede tener en función del punto en el que cada uno se encuentre. El autor, en su entrada, destaca que:

If you are a graduate student, it’s good to start with Python

Si somos estudiantes de Grado, que estamos arrancando, sugiere emplear Python.

If you are a research scholar, good to start with R and explore Octave

Si estamos por la vía de la investigación/doctorado, sugiere el empleo de R y/o Octave.

If you are an employee, I suggest to master both Python and R

Si eres una persona ya trabajando en la industria, parece que las mejores apuestas pasan por Python y R.

If you are tech enthusiast and love exploring/learning new things, you can learn Julia

Si eres un entusiasta tecnológica y te gusta explorar/aprender nuevas cosas, métete con Julia (yo, estoy en esta etapa, haciendo modelos de optimización con Julia, que es realmente potente e interesante).

If the data needs to try several different algorithms, choose R

Si necesitamos probar diferentes algoritmos para tratar el conjunto de nuestros datos, prueba con R.

If you need to use data structures and integrate with external applications, use Python

Si tenemos que utilizar muchas estructuras de datos e integrar los mismos con aplicaciones externas, probemos con Python.

Para gustos están los colores. En definitiva, que no consideremos esto como conclusiones a escribir en un libro. Pero sí por lo menos, para orientarnos, y tener primeras aproximaciones a la ciencia de datos, Data Science, así como las opciones que abre cada uno de ellos. Disfruten de todos ellos :)

R vs. Python para el análisis de datos en proyectos de Big Data

Cuando abrimos este blog, dedicamos una entrada a comparar diferentes herramientas analíticas. En su día, hablamos de SAS, R y Python, mostrando la experiencia que tenía en el manejo de las tres de nuestro profesor Pedro Gómez. Desde entonces, han aparecido varias noticias y reflexiones comparando especialmente dos de ellas: R y Python. DataCamp publicó hace unos meses la infografía que ponemos al final de este artículo comparando ambas.

El análisis de datos, obviamente, es una parte nuclear de cualquier proyecto de Big Data. El análisis de los diferentes flujos de datos y su combinación para obtener nuevos patrones, tendencias, estructuras, etc. se puede realizar con diferentes herramientas y lenguajes de programación. La elección de estas últimas es una cuestión en muchas ocasiones de gustos, de preferencias, pero también en otras ocasiones, objeto de detallados análisis.

La infografía que hoy nos acompaña agrega múltiples fuentes que comparan R y Python. Por eso mismo, nos ha resultado interesante para compartir con vosotros. Compara ambos lenguajes desde una perspectiva de la Ciencia de Datos, o Data Science, disciplina que ya describimos en una entrada anterior.  Las debilidades y fortalezas que se muestran, así como sus ventajas y desventajas, puede ayudaros a la hora de seleccionar el mejor lenguaje de programación para vuestro problema dado. Y es que, como solemos decir, cada proyecto, cada problema, cada contexto de empresa, es diferente, por lo que dar sugerencias absolutas suele resultar complicado.

Dado que suele ser un factor bastante determinante, de entre las múltiples características para la toma de decisión, cabe destacar que ambos lenguajes gozan de una amplia comunidad de desarrollo. En este sentido, ninguna diferencia. Quizás lo que mejor caracteriza a cada uno de los lenguajes, es la frase que destacan los que elaboraran la infografía:

Python is often praised for being a general-purpose language with an easy-to-understand syntax and R’s functionality is developed with statisticians in mind, thereby giving it field-specific advantages such as great features for data visualization”

Os dejamos con la infografía para que podáis por vuestra seguir conociendo mejor cada uno de los dos: R vs. Python o Python vs. R. Seguiremos de cerca la evolución de ambos.

El scoring bancario en los tiempos del Big Data

Con este artículo vamos a abrir una serie de cinco artículos donde expondremos las cinco ponencias y sus preguntas asociadas del pasado workshop celebrado el 27 de Octubre en la Universidad de Deusto.

El workshop, titulado como “Aplicación del Big Data en sectores económicos estratégicos“,  tenía como principal objetivo mostrar la aplicación del Big Data en varios sectores estratégicos para la economía Española (finanzas, sector público, cultura, inversión y turismo). La primera de las intervenciones corrió a cargo de Jorge Monge, de Management Solutions, que nos expuso cómo elaborar un scoring financiero y su relevancia en la era del Big Data.

La revolución tecnológica se produce a magnitudes nunca antes observadas. El sector financiero no es ajeno a ese cambio, conjugando una reestructuración sin precedentes, con un cambio de perfil de usuario muy acusado. Así, se está pasando de la Banca Digital 1.0 a la 4.0, una innovación liderada por el cliente, y donde la analítica omnicanal con datos estructurados y no estructurados se torna fundamental.

La Banca Digital 4.0 (Fuente: Management Solutions)
La Banca Digital 4.0 (Fuente: Management Solutions)

Las entidades financieras, gracias a esta transformación digital, disponen de gran cantidad de información pública, con la que hacer perfiles detallados no solo a sus clientes actuales, sino también a sus clientes potenciales. Dado que la capacidad de procesamiento se ha visto multiplicado por las nuevas arquitecturas del Big Data, esto tampoco supone un problema. Los modelos de scoring (como el que Jorge expuso) pertenecen al ámbito de riesgos de las entidades bancarias, intentando clasificar a los clientes potenciales en función de su probabilidad de impago. Nos contó un proyecto real en el que con datos anonimizados de una cartera de 72.000 clientes potenciales, se mezclaron datos tradicionales de transacciones, con datos de redes sociales, para conformar un modelo analítico. Éste, conformado por variables significativas de cara a evaluar el incumplimiento, permitía mejorar el poder precitivo del scoring bancario.

El reto actual radica en la gran cantidad de datos. Jorge señaló cómo aunque se genere gran cantidad de información, esta no sería útil si no pudiera procesarse. Sin embargo, la capacidad de procesamiento se ha visto multiplicada por las nuevas arquitecturas de Big Data. Destacó, aquí, Hadoop, Hive, Pig, Mahout, R, Python, etc. Varias de las herramientas que ya comentamos en un post pasado.

Por último, destacaba, que el reto ya no es tecnológico. El reto es poder entender el procesamiento que hacen estas herramientas. Así, ha surgido un nuevo rol multidisciplinar para hacer frente a este problema: el data scientist, que integra conocimientos de tecnología, de programación, de matemáticas, de estadística, de negocio, etc. Hablaremos de este perfil más adelante. Y, cerraba la sesión, destacando la importancia de la calidad de la información, el reto que suponen las variables cualitativas y la desambiguación.

Os dejamos, para finalizar el artículo, la presentación realizada por Jonge Monge. Aprovechamos este artículo para agradecerle nuevamente su participación y aportaciones de valor.

Eligiendo una herramienta de Analítica: SAS, R o Python

(Artículo escrito por Pedro Gómez Tejerina, profesional del sector financiero, y profesor de nuestro Programa de Big Data y Business Intelligence)

Probablemente si estás leyendo este blog tengas un problema analítico que quieras resolver con datos. Es posible también que tengas unos conocimientos de estadística que quieras poner en práctica, así que es hora de elegir una herramienta analítica. Así que vamos a intentar orientaros en la elección, aunque las tres herramientas de analítica nos van a permitir hacer en general los mismos análisis:

  1. Conocimientos previos de programación. Si sabes programar y vienes de un entorno web, probablemente Python sea el más fácil de aprender. Es un lenguaje más generalista que los otros dos y solamente tendrás que aprender el uso de las librerías para hacer análisis de datos (Pandas, Numpy, Scipy, etc.). Si no es el caso y lo tuyo no es programar, SAS es más fácil de aprender que R, que es el lenguaje más diferente de los tres, dado su origen académico-estadístico.
  2. Herramientas User Friendly y GUI: Tanto SAS (SAS Enterprise Guide, SAS Enterprise Miner, SAS Visual Analytics) como R (Rattle, RStudio, Rcommander) tienen buenas interfaces visuales que pueden resolver problemas analíticos sin tener la necesidad de programar. Python dispone de menos (Orange), aunque dispone de una buena herramienta de enseñanza: los notebooks.
  3. Coste de las herramientas. SAS es un software comercial y bastante caro. Además el uso de cada una de sus capacidades se vende por paquetes, así que el coste total como herramienta analítica es muy caro. La parte buena es que tienes un soporte. Por el contrario, tanto R como Python son gratuitos, si bien es cierto que empresas como Revolution Analytics ofrecen soporte, formación y su propia distribución de R con un coste bastante inferior a SAS. Normalmente sólo las grandes empresas (bancos, compañías telefónicas, cadenas de alimentación, INE, etc.) disponen de SAS debido a su coste.
  4. Estabilidad de la herramienta. Al ser un software comercial, en SAS no hay problemas de compatibilidad de versiones. R al tener un origen académico ofrece distintas librerías para hacer un mismo trabajo y no todas funcionan en versiones anteriores de R. Para evitar estos problemas en una gran empresa recomendaría utilizar alguna distribución comercial de Revolution Analytics por ejemplo.
  5. Volumen de datos. Las única diferencia es que SAS almacena los datos en tu ordenador en vez de en memoria (R), si bien es cierto que las 3 tienen conexiones con Hadoop y las herramientas de Big Data.
  6. Capacidad de innovación. Si necesitas utilizar las últimas técnicas estadísticas o de Machine Learning SAS no es tu amigo. Es un software comercial que para garantizar la estabilidad de uso entre versiones retrasa la incorporación de nuevas técnicas. Aquí el líder es R seguido de Python.

Conclusión: no es fácil quedarse con una herramienta de analítica y las personas que trabajamos en grandes compañías estamos habituados a trabajar con varias. SAS ofrece soluciones integradoras a un coste elevado. R tiene muchas capacidades de innovación debido a su origen y Python tiene la ventaja de ser un lenguaje de programación generalista que además puede servir para hacer Data Mining o Machine Learning. La elección dependerá de lo que estés dispuesto a pagar y tus necesidades específicas. Yo tengo la suerte o desgracia de trabajar en una gran empresa, así que dispongo de las 3.

Tendencias en lo que a demanda de perfiles con conocimiento de R, SAS y Python se refiere (Fuente: http://www.statsblogs.com/2013/12/06/sas-is-abandoned-by-the-market-for-advanced-analytics/)
Tendencias en lo que a demanda de perfiles con conocimiento de R, SAS y Python se refiere (Fuente: http://www.statsblogs.com/2013/12/06/sas-is-abandoned-by-the-market-for-advanced-analytics/)

Más información en:

  • http://www.analyticsvidhya.com/blog/2014/03/sas-vs-vs-python-tool-learn/
  • http://blog.datacamp.com/r-or-python-for-data-analysis/