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.
continuará...