ML.NET – Machine Learning VS R

Cuando se puso de moda los frameworks para que los desarrolladores creen modelos y aplicaciones con Machine Learning el lenguaje de programación R se volvió uno de los más populares para programar complicados modelos estadísticos, gráficos y algoritmos de entrenamiento, para analizar datos y construir modelos predictivos de todo tipo.

El lenguaje de programación R ha sido de los más usados en la investigación científica ya que tiene varias herramientas para hacer análisis estadístico, modelos lineales, no lineales, entrenamientos supervisados, no supervisados, y una serie de complicadas cosas adicionales…

El lenguaje R se volvió un paradigma, y muchos creen que cualquier aplicación con Machine Learning se debe utilizar R como único lenguaje para el análisis de datos. Pero nada más alejado de la realidad, cada vez existen más herramientas que facilitan la vida a los programadores para incluir características de Machine Learning en cualquier tipo de aplicación; móvil, web, IoT, big data y demás.

En este blog recientemente publiqué una revisión de videos de ML.NET – Machine Learning, ya que desde que comencé a utilizarlo me ha parecido el framework de desarrollo más útil para quienes no somos especialistas en inteligencia artificial pero queremos usarla y aplicarla en nuestras aplicaciones y software.

La pregunta obvia que salta ahora es: ¿Qué debo usar si quiero desarrollar una aplicación con Machine Learning? ¿ML.NET o R?

Veamos algunas características de R.

Para programar en R el IDE de desarrollo más popular es R Studio. Es un IDE gratuito y sus características son muy simples: un editor de texto y diversas ventanas para observar valores de variables y gráficos.

Imagen de rstudio.com

El IDE de R Studio no cuenta (al menos por defecto) con herramientas para administrar el código desde un repositorio de fuentes (Ej. Git). No tiene herramientas de colaboración, no tiene un administrador de paquetes y tampoco cuenta con ayudas como IntelliCode, refactor o configuración de estilos, y es por una simple razón: no se necesita. El objetivo de un proyecto en R no es construir una aplicación funcional con un front end en web o con un API para disponibilizar servicios.

Esa es la principal diferencia entre el lenguaje R y ML.NET, además ese es el principal paradigma que se debe romper entre los desarrolladores o comunidades que creen que R es la única opción para crear modelos predictivos o hacer análisis de datos.

La utilidad de crear un proyecto en R es para analizar un set de datos y encontrar diferentes patrones y descubrir diferentes modelos que se puedan construir a partir de esos datos, este análisis se puede hacer simplemente escribiendo el código en R y ejecutando las instrucciones dentro del mismo IDE, sin necesidad de crear una aplicación. Por ejemplo: si cuento una base de datos de clientes con sus datos demográficos y su historial de productos que cada cliente ha comprado, y simplemente quiero analizar qué variables demográficas se repiten en los clientes que adquirieron un determinado producto, puedo hacer ese análisis en R y descubrir esas variables pero sin crear ninguna aplicación.

Por otro lado, ¿De qué me sirve descubrir esas variables si no me sirve para crear una API que en base a los datos del cliente me recomiende un producto determinado? Es ahí donde ML.NET se vuelve más útil.

Con ML.NET se puede realizar el mismo análisis de los datos del cliente sin necesidad de aprender un nuevo lenguaje de programación si ya sabemos programar en C# y estamos familiarizados con los ambientes de desarrollo de .NET. Además nuestro esfuerzo invertido en el análisis de datos no requerirá de otro esfuerzo adicional si lo queremos utilizar dentro de una aplicación.

Una clara ventaja que tiene ML.NET para los programadores es que no se requiere ser un experto en los modelos estadísticos que se utilizan para el análisis de datos. Pero la cantidad de herramientas para ejecutar modelos estadísticos con las que cuenta el lenguaje R lo hace muy útil para estudiantes de inteligencia artificial que si requieren conocer a profundidad toda la ciencia que mueve a las diferentes ramas de la inteligencia artificial como lo es Machine Learning.

Publicado por Diego Zumarraga Mera

Experto en transformación digital, Machine Learning, Desarrollo Web, Arquitecto Azure

A %d blogueros les gusta esto: