Que ve el machine learning?

Los algoritmos de machine learning logran entender problemas de cientos o a veces miles de dimensiones, logrando así ver cosas que el ojo humano no podría de otro modo ver, pero… ¿como se comparan estos métodos cuando el ojo humano si puede ver?

Por ello generamos una serie de experimentos en 2 dimensiones y les aplicamos varios distintos métodos de machine learning para comparar el dato real vs lo que vio el computador.

Básicamente el desafío consiste en tomar un patrón fácil para el ojo humano y generalizarlo de este modo:

Se le entrega un dataset siguiente modo: Y se espera que generalice de este modo:

Los algoritmos aplicados son:

  • rpart: Arbol de Decisión usando rpart, parámetros por defecto.
  • logit: Regresión Logistica usando glm.
  • forest_h2o, Random Forest usando H2O, 5000 arboles.
  • forest_ranger, Random Forest, 5000 arboles.
  • knn50, KNN con 50 muestras.
  • nnet50, usando H2O, Red neuronal de 1 capa con 50 nodos con kernel logit.
  • deep10x5, Red Neuronal multicapa usando H2O, 5 capas de 10 neuronas cada una..

Luego se calcularán métricas como accuracy y AUC en ambos dataset.

Ahora esperando que ya hayan entendido el desafío, comencemos con los distintos experimentos:

Diagonal

Tablero de Ajedrez

Cruz

Tablero de Ajedrez 2

Harley Queen

Circulo

Circulos

Conclusiones

Creo que lo más interesante de haber hecho esto, es que un AUC de 0.7 es considerado bueno en un modelo de propensión, pero en la realidad no es un buen modelo, es cosa de comparar lo que vió la red neuronal en el caso «Harley Queen»:

Lo que me hace pensar que el Machine Learning tiene aun mucho que «aprender».

Por otro lado, las super queridas redes neuronales, no siempre fueron las mejores prediciendo.

Saludos.

Como siempre les dejo el código del ejercicio realizado: comparacion_ml

Print Friendly, PDF & Email