Herramientas más utilizadas por Big Data Scientists. ¿Por qué las utilizamos?


POST PUBLICADO EL 22 DE MARZO DE 2018

Los big data scientists somos personas muy curiosas y buscadores de tendencias por naturaleza. Por ese motivo estamos en constante uso de nuevas herramientas que nos ayuden a dar respuestas a los casos de negocio planteados por nuestras compañías o clientes. Además, por la rapidez en dar respuesta a las necesidades de negocio necesitamos usar herramientas que permitan ser los más productivos o ágiles posibles. Si unimos que esta disciplina en auge están apareciendo gran diversidad de herramientas, tanto open source como comerciales, comienza a ser un dilema el conocer cuál es la herramienta ideal que deberíamos usar.

En mi opinión, creo que los big data scientists no deberíamos estar ligados a ninguna herramienta o tecnología concreta, y si debemos conocer de manera práctica lenguajes de programación estadística que nos permitan realizar el procesamiento de los datos, analíticas en todos sus ámbitos desde más sencillos a prescriptivos, así como mostrar el resultado final con herramientas de visualización.  Tener este conocimiento nos permitirá poder decidir qué herramienta es más correcta para cada necesidad.

Teniendo en cuenta todos estos parámetros, y tras conversaciones con muchos compañeros del sector, lo habitual es que no probemos herramientas nuevas porque no tenemos tiempo para buscar las herramientas específicas para nuestra tribu que pueden ayudarnos a mejorar en nuestro trabajo. Por ese motivo, lance en este blog y mis redes sociales una encuesta para conocer ¿Cuáles son las mejores herramientas de análisis de datos para Data Scientists? What are the best analysis tools for #DataScientists?. A partir de los resultados de esta encuesta he reunido las herramientas, que según vuestra opinión, son las mejores para ayudarnos en el análisis de datos (básicos, creación de algoritmos, …).  También menciono las herramientas, que en mi opinión considero útiles para nuestro colectivo aunque no han sido mencionadas en la encuesta.

Según los resultados de la encuesta, la gran mayoría de los big data scientist considera que R y todas sus vertientes (rstudio, shiny, ...) es su herramienta  preferida (mencionada por el 52%), seguida de Python (39%) y más de lejos Spark, mencionada esta última por el 8,7% de los encuestados.

SurveyToolsresultados de la encuesta realizada en el blog @noeliagorod

¿Por qué estas herramientas son las preferidas por los big data scientists?. Veamos las características de estas herramientas y entenderemos porque son las herramientas seleccionadas por los profesionales:

Resultado de imagen  RStudio Logo  Resultado de imagen de shiny r programming

www.r-project.org   //   RStudio  // Shiny

@rstudio

R.JPG

La herramienta preferida por los encuestados del blog es R, y todas sus variantes, para el 52,17% de los encuestados. ¿El motivo? La herramienta de programación R fue realizada para estadísticos por lo que su lenguaje y entendimiento es propio de Data Scientists.  R es una herramienta Open Source,  lo que ha proporcionado su gran aumento de uso sobre todo en el entorno empresarial durante los últimos años. La gran cantidad de librerías compartidas por la comunidad, hace que sea uno de los lenguajes estadísticos más dinámicos al disponer librerías desde analítica básica hasta especificas de sectores como por ejemplo Sports Analytics.

Para utilizar de una forma más productiva o eficiente R tenemos la herramienta rStudio.

rstudio

La herramienta rStudio incluye un editor de código que facilita la edición del mismo, además cuenta con un sistema de ayuda interactivo y propone el código que se debe utilizar según vamos escribiendo. El editor permite depurar los errores del código de forma sencilla (debugging). cargar de datos de manera intuitiva, y facilidades para la creación de visualización de los datos. Existe varias versiones de uso desde open source gratuita hasta edición comercial. La herramienta puede utilizarse en versión desktop o en versión server que permite el compartir el código entre varios profesionales y cuenta con mayor capacidad de computo. En este caso la versión comercial tiene un coste de 995$ e incluye una parte de soporte.

La herramienta Shiny es también de la misma compañía de rStudio y su uso requiere el utilizar esta herramienta. Los big data scientists utilizan Shiny para visualizar y mostrar los resultados de los análisis utilizando un entorno web interactivo, Por su sencillez y familiaridad en el lenguaje de los programadores estadísticos, permite realizar aplicaciones web y apps por los data scientists de forma ágil y sin experiencia en realizar programación web. Su uso en desktop es gratuito pero su si se utiliza la versión server de rStudio tiene un coste comercial asociado.

shiny.JPG

Resultado de imagen

 scikit-learn  (@scikit_learn) //  GraphLab Create  //  pandas

python

El lenguaje Python es segundo en la lista obtenida a partir de la encuesta realizada entre los big data scientists que siguen el blog @noeliagorod. Al contrario que el lenguaje de programación R, Python esta desarrollado por una vertiente de programadores de herramientas y no tanto en estadísticos (se basa en C, Modula- 3 y sobretodo ABC) creado sobre todo para la visualización analítica de los datos. Python es un lenguaje de programación multiparadigma, permitiendo programar en varios estilos de programación (orientada a objetos, imperativa y funcional). Su sintaxis también suele ser fácil de entender. Python es open source, lo que también a facilitado su aumento en la utilización.

Al igual que R, en Python existe una gran de Pandas o librerías en Python, con gran cantidad de utilidades al rededor de la misma. Una de las herramientas más utilizadas dentro de Python es scikit -learn.

scikit-learn.JPG

scikit-learn dispone de gran cantidad de modelos de machine learning ya implementados y listos para su uso. Además, contiene herramientas que facilitan la extracción de datos y análisis datos. En este caso es libre pero se tiene que tener cuidado el uso de ciertas partes del mismo porque no es open source.

Otra herramienta que utilizamos en Python es GraphLab Create para crear soluciones de machine learning end to end.

graphlab

Esta aplicación es gratis para uso académico. Incorpora funciones de ingeniería automática, selección de modelos y visualización de machine learning.

Pandas es una biblioteca de código abierto que ofrece estructuras de datos de alto rendimiento y fáciles de usar, y herramientas de análisis de datos para el lenguaje de programación Python.

pandas

El proyecto esta patrocinado por NUMFocus que asegura el desarrollo de los pandas como un proyecto de código abierto de clase mundial. Las estructuras de datos de rápido acceso y flexibles permite trabajar con datos relacionales y etiquetados de forma fácil e intuitiva. La herramienta esta disponible para una gran una variedad de idiomas, hace que sea una de las herramientas más utilizadas entre muchos big data scientists.

spark-logo-trademark.png APACHE SPARK

spark.apache.org

@apachespark

spark

Dentro del mundo de herramientas de Apache Spark que ofrece «computación en clúster a la velocidad de la luz«, se encuentra esta herramienta utilizada por muchismas organizaciones para procesar grandes conjuntos de datos. Desde esta herramienta podemos acceder diversas fuentes de datos como HDFS, Cassandra, HBase y S3. La herramienta permite entenderse perfectamente con R, Python y Scala. Incluye librerías MLib, GraphX y Spark Streaming que son de las mas utilizadas por los data science.

El cambio conceptual de organizar los datos hace que su curva de aprendizaje para los profesionales big data scientists sea un poco más alta que otras herramientas, unido a que en la algoritmia no están implementados todos los algoritmos habituales por motivos del procesamiento en paralelo, que no lo permiten ciertos algoritmos, pueden ser los motivos por el que esta herramienta ocupe la tercera posición en el ranking de la encuesta. La herramienta es open source, por lo que cada vez se está utilizando más.

R, Python y Spark son las principales herramientas utilizadas según la encuesta, pero existen muchas otras que utilizan los big data scientists como son:

 Scala (@scala_lang)

El lenguaje de programación Scala es una herramienta para los big data scientists que construye jerarquías con clases para maximizar la reutilización y extensibilidad del código. 

scala

La herramienta es libre, y al igual que Python es un lenguaje de programación multi-paradigma. Integra sin problemas las características de los lenguajes orientados a objetos y funcionales.

RapidMiner (@RapidMiner)

A partir de ahora aparecen herramientas que permite ser más productivos a los big data scienstist, al disponer herramientas de fácil complementación de los modelos, como es el caso de RapidMiner. La herramienta RapidMiner integra desde la preparación de datos, machine learning e implementación de modelos en sistemas de producción.

rapidminer.JPG

RapidMiner aparece como una de las lideres el Cuadrante Mágico Gartner de Data Science Platforms, líder también en Forrester Wave para análisis predictivo y machine learning, y en análisis predictivo G2 Crowd. La herramienta es libre para 10.000 registros y un procesamiento, a partir de ahí comienza su coste de 2.500$ al año hasta los 60.000$ al año en función de su versión y uso.

BigML (@bigmlcom)

bigml.PNG

He conocido esta herramienta hace unas semanas. La verdad que es una herramienta sencilla de utilizar para todo tipo de data scientists desde juniors a seniors, incluso para personas que no son data scientist. Permite hacer machine learning de forma rápida e incluye opciones para reprogramar los modelos a nuestro gusto con las diferentes herramientas de programación estadística open source (a excepción de R).  La herramienta esta disponible en versión cloud y desktop.  Simplifica las tareas desde carga y transformación de los datos, hasta utilización de los modelos. Esta pre-configurados los modelos de clasificación, regresión, análisis clusters, detección de anomalías, detección de patrones con asociaciones, entre otros. Para mi la parte más interesante es la sencilla integración de los modelos en los sistemas productivos de las compañías. Su coste, es gratuito para una pequeña cantidad de espacio, en el momento que queremos hacer analíticas con un volumen de información considerable tiene un coste que se va escalando en función del tamaño utilizado en sus sistemas.

Jupyter (@ProjectJupyter)

jupiter

Jupyter es una de las herramientas más utilizadas por muchos de nosotros gracias a su Notebook, que es una aplicación web de código abierto, que nos permite crear código de diferentes lenguajes de programación y compartir compartir esta información de forma dinámica, incluyendo las visualizaciones de los datos.

A través del Notebook se puede hacer desde depuración y transformación del datasets, hasta modelos de machine learning y visualización de datos (se puede visualizar datos en real time e incluir imágenes, vídeos, LaTeX y JavaScript).  Se puede utilizar más de 40 lenguajes de programación comentados anteriormente en este post como Python, R, y Scala, todo en el único Notebook.  Su coste es gratuito.

Existen otras herramientas también muy utilizadas como Knime, Tensorflow, Matlab, IBM Modeler, SAS Enterprise Miner,… Pero estas herramientas las comentaré en otro post posterior!!!

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.