lunes, 9 de julio de 2018

Apache Spark MLlib parte 2


 Continuamos!!

Cuando se trabaja en proyectos de aprendizaje automático la preparación de datos, la limpieza y el análisis, también son tareas importantes más allá de los modelos de aprendizaje reales y los algoritmos utilizados para resolver los problemas de negocios.

Los siguientes son los pasos que se realizan en un programa típico de aprendizaje automático:

Caracterización (featurization) del modelo.
entrenar el modelo.
evaluación modelo.

Es importante saber que se debe limpiar y preparar los datos antes de ejecutar un algoritmo de aprendizaje automático, de lo contrario el patrón resultante no será preciso ni útil, y puede pasar por alto algunas anomalías.

La calidad de los datos de entrenamiento que proporcionamos a los programas de aprendizaje automático también juega un papel fundamental en los resultados de predicción. Si los datos de entrenamiento no son lo suficientemente aleatorios, los patrones resultantes no serán precisos. Y si el conjunto de datos es demasiado pequeño, el programa de aprendizaje automático puede dar predicciones inexactas.

Los casos de uso comerciales para aprendizaje automático abarcan diferentes dominios y escenarios, incluidos motores de recomendación (como este motor de recomendación de alimentos), análisis predictivo (por ejemplo, predicción de precios de acciones o retrasos en los vuelos), publicidad dirigida, detección de fraude, reconocimiento de imágenes y videos -conducir automóviles y otras formas de inteligencia artificial.

Veamos dos aplicaciones populares, un motor de recomendación y detección de fraude, en más detalle.

Los motores de recomendación utilizan los atributos de un elemento o un usuario o el comportamiento de un usuario o sus compañeros para hacer predicciones. Diferentes factores impulsan un motor de recomendación eficaz. Algunos de estos factores incluyen:
  • análisis por pares.
  • comportamiento del cliente.
  • ofertas u ofertas corporativas.
  • agrupamiento de elementos.
  • factores de mercado / tienda.


Podemos construir un motor de recomendación mediante la participación de dos algoritmos: filtrado basado en contenido y filtrado colaborativo.

El filtrado basado en contenido se basa en cuán similares son el uso y las calificaciones de un artículo en particular a otros artículos. El modelo usa los atributos de contenido de los elementos (como categorías, etiquetas, descripciones y otros datos) para generar una matriz que relacione cada elemento con otros elementos y calcule la similitud en función de las clasificaciones proporcionadas. Luego, los elementos más similares se enumeran junto con un puntaje de similitud. Los artículos con el puntaje más alto son los más similares.

La recomendación de la película es un buen ejemplo de este modelo. Puede aconsejar que a los usuarios a los que les haya gustado una película en particular también les hayan gustado estas otras películas.

El filtrado basado en contenido no tiene en cuenta el comportamiento general de otros usuarios, por lo que sus modelos no ofrecen recomendaciones personalizadas, como el filtrado colaborativo y otros modelos.

Por otro lado, los modelos de filtrado colaborativo predicen y recomiendan elementos específicos o usuarios en función de la similitud con otros elementos o usuarios.

El filtro aplica ponderaciones basadas en las preferencias del "usuario par". La suposición es que los usuarios con perfiles o comportamientos similares también tendrán preferencias de elementos similares.

Un ejemplo de este modelo son las recomendaciones sobre sitios web de comercio electrónico como Amazon. Cuando buscamos un artículo en el sitio web, vemos una lista llamada "Los clientes que vieron este artículo también compraron".

Los elementos con el puntaje de recomendación más alto son los más relevantes para el usuario en contexto.

Las soluciones de filtrado colaborativo funcionan mejor que otros modelos. Spark MLlib implementa un algoritmo de filtrado colaborativo llamado Alternating least squares (ALS). Hay dos variaciones de las entradas en el filtrado colaborativo, llamadas realimentación explícita e implícita.

La retroalimentación explícita se basa en las preferencias directas otorgadas por el usuario al elemento (como una película). La retroalimentación explícita es agradable, pero muchas veces es sesgada porque los usuarios a quienes les gusta o no les gusta mucho un producto tienden a opinar con más frecuencia que los que les es indiferente. Por lo tanto podemos no obtener la opinión de muchas personas en el centro de la curva.

La retroalimentación implícita incluye las vistas del usuario, los clics, los "me gusta", etc. La retroalimentación implícita a menudo se utiliza para el análisis predictivo debido a lo fácil que es recopilar este tipo de datos.

También hay métodos basados en modelos para motores de recomendación. A menudo incorporan métodos de filtrado colaborativo y basado en contenido. Un enfoque basado en modelos obtiene lo mejor de ambos mundos: el poder y el rendimiento del filtrado colaborativo y la flexibilidad y adaptabilidad del filtrado basado en el contenido. Las técnicas de aprendizaje profundo o deep learning son buenos ejemplos de este modelo.

También puede integrar otros algoritmos como k-means clustering en el motor de recomendación para refinar aún más las predicciones. El algoritmo k-means funciona al dividir N observaciones en k clústeres en los que cada observación pertenece al clúster con la media más cercana. Usando la técnica de k-means, podemos encontrar elementos similares o usuarios en función de sus atributos.


Como deben adivinar:

continuará...