Comunidad de diseño web y desarrollo en internet online

Sistema de recomendaciones usando Data Mining

Citar            
MensajeEscrito el 22 Ago 2012 05:18 pm
Hola a todos, en este tutorial les voy a enseñar una técnica para recomendar artículos. Esta técnica es usada por grandes sitios como Amazon para aumentar sus tasas de conversión.

El método que les voy a mostrar se llama filtrado colaborativo. Es llamado colaborativo porque hace recomendaciones basadas en otras personas. Supongamos que te quiero recomendar un artículo de un blog. Busco entre todos los usuarios de mi blog una persona similar a tí. Una vez haya encontrado a esa persona puedo ver qué artículos le gustaron y recomendártelos.

¿Cómo puedo encontrar a alguien con preferencias similares?


Imaginemos que los usuarios pueden dar un puntaje a un artículo en un rango de 0 a 5. Para hacer el ejemplo más simple vamos a restringir los puntajes a solo dos artículos: "Operadores lógicos en Python" y "Operadores de asignación en Python".

Aqui hay tres usuarios que le han dado un puntaje a esos artículos:

Código :

Juan:     [5,5]
Carlos:   [2,5]
Luis:      [1,4]


Me gustaría recomendarle un libro a una cuarta persona llamada Jhon quien le dió un puntaje a "Operadores lógicos en Python" de 4, y a "Operadores de asignación en Python" de 2. Lo primero es encontrar la persona más similar o más cercana. Esto lo hacemos calculando la distancia.

La Distancia Euclídea


Esta fórmula matemática es bastante simple. Cada persona está representada por un punto (x,y). Agregaré un subíndice para referirme a una persona en específico. Entonces (x1,y1) podría ser Juan y (x2,xy2) puede ser Jhon. La distancia está definida por:



Veamos qué distancia hay entre Juan y Jhon.
x1 es el puntaje que la primera persona le dió al primer artículo y x2 es el puntaje que la segunda persona le dió al mismo artículo; y1 es el puntaje que la primera persona le dió al segundo artículo y y2 es el puntaje que le dió la segunda persona.

La distancia entre Juan y Jhon quedaría definida así:


Calculando las distancias restantes:

Código :

Juan - Jhon = 3.16
Carlos - Jhon = 3.61
Luis - Jhon = 3.61


La persona más cercana a Jhon es Juan y vemos por ejemplo en su historial, que le dió un puntaje de 5 al artículo "Funciones matemáticas en Python", entonces podríamos recomendarle ese artículo a Jhon.

En la segunda parte veremos técnicas mas avanzadas y algo de código en Python.

Por davidzr

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Nov 2012 09:23 pm
hola davidzr, no habrá una segunda parte de este tuto? saludos!

Por Mariux

BOFH

7756 de clabLevel

28 tutoriales
15 articulos

Genero:Femenino   Héroes Editores

Diseñadora & ilustradora

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.