proyectos

17 de marzo de 2013

Comercio electrónico (a veces) haciéndolo mal

La mayoría de los sitios web de comercio electrónico le ofrecen ordenar sus resultados de búsqueda por calificaciones de clientes muchos lo están haciendo mal. Supongamos que estoy buscando un libro sobre CSS. Quiero obtener el mejor libro que el dinero pueda comprar, así que definitivamente presionaré el botón ordenar por calificación. El sitio web ofrece dos opciones

  • book A : 1 clasificación de 5. Puntuación media de 5.
  • libro B: 50 clasificaciones. Calificación media de 4.5

Piénsalo, preferirías que el libro A venga primero del libro Bcome primero. Probablemente el libro B, ¿verdad? Eso significa que necesitamos algo más que ordenar por calificación promedio.

Una primera respuesta simple, que definitivamente sería una mejora en comparación con la clasificación por calificación promedio, podría ser poner el producto con calificaciones inferiores a k en la parte inferior. Pero entonces, ¿cómo elegir k? ¿Qué pasa si estamos buscando un nicho y todos los productos tienen calificaciones inferiores a k, excepto uno, que tiene calificaciones horribles de k+1? ¿Debería ir arriba ?

Una segunda respuesta a la que podría llegar sería elegir una fórmula de puntuación empírica que parezca coincidir con nuestras limitaciones.

La mayoría de las fórmulas que existen dependen de la estimación bayesiana. En términos generales, la estimación bayesiana realmente brilla en este tipo de situación : quieres medir algo, pero sabes que no tendrás suficientes datos para alcanzar una estimación perfecta.

Si m es la media de las calificaciones y n es el número de las calificaciones, podríamos considerar algo como :

$$rating(m, n) = {mn \over {n+K}}$$

Esto probablemente funcionará bien. Probablemente you Todavía tienes que elegir la K correcta sin saber a qué valores físicos se relaciona. Más importante aún, tendrá que convencer a su compañero de trabajo de que esta es la buena solución que cubre perfectamente los casos extremos.

Curso acelerado de estimación bayesiana

La gran idea es, en lugar de tratar de calcular directamente nuestra estimación, primero calculamos una distribución de probabilidad que describe “lo que sabemos” del valor que queremos estimar, y luego (y solo entonces) podemos extraer una estimación de este valor que se ajuste a nuestro propósito.

La separación de la preocupación en ese último bit es en realidad bastante importante. Dependiendo de su punto de vista, puede considerar valores muy diferentes como estimaciones de un valor físico.

Por ejemplo, si necesito estimar el número de sueros que un gobierno necesita comprar para hacer frente a una epidemia, desearé entregar una cifra para la cual puedo decir : Estoy seguro de que al 90% esto será suficiente. Esa cifra a veces puede estar muy lejos de lo esperado. Si en realidad estoy trabajando como contable en la compañía que vende esos sueros, y quiero tener una idea de un límite inferior para mis ingresos para el próximo mes, probablemente tomaré un cuantil totalmente diferente.

Un ejemplo simple

Supongamos que acaba de descubrir un parásito llamado toxoplasmosis y desea estimar la proporción X X of de personas infectadas por un parásito llamado toxoplasmosis.

Los pacientes humanos infectados por el parásito no muestran ningún síntoma en absoluto, por lo que, hasta donde sabes, podría ser cualquier cosa. Podríamos describir su visión de la distribución de probabilidad de este valor como una distribución uniforme. .

Hablar de probabilidad aquí puede parecer un poco raro.En primer lugar, ¿es legítimo hablar de probabilidad cuando estimamos algo un valor muy tangible, no aleatorio? En términos de probabilidad bayesiana, una variable es aleatoria si no conoce su valor exactamente. Es una pieza de información que resume nuestro conocimiento sobre algo.

Pero volvamos a nuestro problema. A medida que evalúe a las personas para detectar toxoplasmosis, hará observaciones.Cada persona tendrá una probabilidad X de tener toxoplasmosis, y desea estimar esto mismo X. Supongamos que después de ver n n persons personas, detectó k personas con toxoplasmosis.

Empezaste con una probabilidad previa uniforme, y cada observación doblará tu visión en X, haciéndola cada vez más precisa.Esta visión actualizada de X se llama su distribución posterior.Llamamos O (como en la observación) a la secuencia de resultados de nuestras pruebas N.

Bayes ofrece una pequeña fórmula para calcularlo

 $$P(X | O) = { P( O | X) P(X) \over { P(O)} }$$

P P(O) is es la probabilidad de observar lo que observamos. Es constante con X, y por lo tanto de poco interés. Del mismo modo, elegimos nuestra probabilidad anterior P P(X) be para que sea uniforme y, por lo tanto, no varía con X. Solo nos interesa la relación de proporcionalidad :

 $$ P(X | O) \propto P( O | X) $$
P P( O X) $ $ se llama la probabilidad. Se le da X (el valor que estamos buscando) la probabilidad de observar lo que observamos. Por lo general, es algo bastante sencillo de calcular.

En nuestro caso, la probabilidad de observar la secuencia de observaciones independientes

 $$ O = ({o_1}, ..., {o_N}) $$

está dada por la multiplicación de la probabilidad de cada observación :

 $$ P(O | X) = P({o_1}| X) \times ... \times P({o_N} | X) $$

Para una sola observación, la probabilidad de observar oi positivo (o negativo) es, por definición, X (respectivamente 1-X). Al final, si observamos K positivo y N-K negativo, la probabilidad posterior es

 $$ P(X | O) \propto X^{K}(1-X)^{N-K} $$

Esta distribución también se denomina distribución binomial.

Es interesante ver cómo evoluciona la probabilidad posterior con el número de observaciones. El siguiente gráfico muestra cómo la parte posterior se refina cada vez más con el número de observaciones que obtenemos.

Ahora que tenemos la probabilidad exacta, podríamos considerar calcular cualquier tipo de estimaciones a partir de esta distribución. Podría decirse que la salida más común sería calcular un intervalo de confianza : un intervalo para el que podemos afirmar con una confianza del 90% nuestro valor se encuentra en algún lugar entre a y b.

Hoy en día todo el mundo tiene una computadora y probablemente la forma más sencilla de producir tal intervalo de confianza es probablemente calcular la función de distribución acumulada de esta distribución.

Muchos estadísticos también trabajaron en encontrar intervalos de confianza muy precisos para distribuciones binomiales cuando la aproximación normal no se mantiene. Es posible que desee verificar esta página de wikipedia si desea usar una de estas fórmulas.

Volver a las estrellas

¡Volvamos a las clasificaciones de estrellas! En esta sección, para simplificar, consideraremos un rango de 1, 2 o 3 estrellas. Trataremos de estimar, dada la respuesta de la gente, la distribución posterior de la proporción de personas que le darían, respectivamente , 1,2 o 3 estrellas, si tuviéramos la oportunidad de preguntar a un número infinito de personas.

La variable aleatoria que observamos sigue la llamada distribución categórica. Eso es básicamente una variable que toma sus valores dentro de {1,2,3} con algunas probabilidades p1, p2, p3 con

$$ {p_1} + {p_2} + {p_3} = 1 $$

Lo que lo hace más difícil es que no estamos mirando la distribución de un valor escalar, sino la distribución conjunta de tres valores escalares (o más bien dos considerando la restricción lineal).

Aún así, podemos aplicar el mismo razonamiento que hicimos con la estimación de una sola probabilidad :

 $$ P({p_1}, {p_2}, {p_3} | O) \propto P( O | {p_1}, {p_2}, {p_3}) P({p_1}, {p_2}, {p_3}) $$

Esta vez, sin embargo, incluiremos un anterior. Para simplificar los cálculos, siempre es una buena idea elegir un prior que tenga la misma forma que la probabilidad. Primero calculemos la probabilidad.

Al igual que en nuestra estimación de parámetros de ejemplo anterior, podemos usar la independencia de nuestra observación.

 $$ P(O | {p_1}, {p_2}, {p_3}) = P({o_1}| {p_1}, {p_2}, {p_3}) \times \cdots \times P({o_N} | {p_1}, {p_2}, {p_3}) $$

Y la probabilidad de cada observación individual viene dada por la probabilidad asociada

 $$\forall j \in \{1,2,3\}, ~~ \forall 1\leq i \leq N, ~~P( {o_i = j} | {p_1}, {p_2}, {p_3}) = {p_j} $$

Por lo tanto, si dentro de las N reseñas que recibimos hubo reseñas de K1, K2 y K3 con 1, 2 y 3 estrellas respectivamente, tenemos una probabilidad de

 $$ P(O | {p_1}, {p_2}, {p_3}) = {p_1}^{K_1} {p_2}^{K_2} {p_3}^{K_3} $$

Que se llama una distribución de Dirichlet con el parámetro

 $$ \alpha = \left( \begin{array}{c} {K_1} + 1 \\ {K_2} + 1 \\ {K_3} + 1 \end{array} \right) $$

Para simplificar las matemáticas, consideremos un prior con la misma forma y el parámetro alfa0.

La parte posterior, es proporcional a

 $$ P({p_1}, {p_2}, {p_3} | O) \propto { {p_1}^{K_1} } { {p_2}^{K_2} } { {p_3}^{K_3} } { {p_1}^{ {\alpha_1^0} - 1 } } { {p_2}^{ {\alpha_2^0} - 1 } } { {p_3}^{ {\alpha_3^0} - 1 } } $$

Que podemos factorizar en

 $$ P({p_1}, {p_2}, {p_3} | O) \propto { {p_1}^{ {K_1} + {\alpha_1^0} - 1 } } { {p_2}^{ {K_2} + {\alpha_2^0} - 1 } } { {p_3}^{ {K_3} + {\alpha_3^0} - 1 } }. $$

en el que podemos ver una distribución dirichlet con el parámetro

 $$ {\alpha^1} = \left( \begin{array}{c} {K_1} + \alpha_1^0 \\ {K_2} + \alpha_2^0 \\ {K_3} + \alpha_3^0 \end{array} \right) $$

Ahora lo que realmente queremos es una estimación del promedio de número de estrellas. Consideremos el uso de la expectativa de este promedio, dado nuestro posterior.

 $$ E( {p_1} + 2{p_2} + 3{p_3} | O ) = E( {p_1} | O ) + 2 E({p_2} | O ) + 3E({p_3} | O ) $$

La esperanza de que la probabilidad de obtener 1,2, o 3 número de las estrellas está dada por la distribución dirichlet

 $$ E(p_i | O) = { {\alpha_i^1} \over { {\alpha_1^1} + {\alpha_2^1} + {\alpha_3^1} } } $$

por lo tanto, para que nuestros promedio bayesiano :

 $$ rating({K_1}, {K_2}, {K_3}) = \frac{ {K_1} + \alpha_1^0}{ N + A} + 2 \frac{ {K_2} + \alpha_2^0}{ N + A} + 3 \frac{ {K_3} + \alpha_3^0}{ N + A}, $$

donde definimos

 $$ N = {K_1} + {K_2} + {K_3}~~and~~A = {\alpha_1^0} + {\alpha_2^0} + {\alpha_3^0} $$

podemos reagrupar que como

 $$ rating({K_1}, {K_2}, {K_3}) = \frac{ \left(\alpha_1^0 + 2 \alpha_2^0 + 3 \alpha_3^0 \right) + \left({K_1} + 2{K_2} + 3{K_3}\right) }{A + N} $$

Voilà ! Vamos a digerir esta fórmula para que sea algo utilizable en la vida real. El promedio bayesiano para la calificación de estrellas consistiría en elegir algún parámetro C y m en el que

  • m representa un prior para el promedio de las estrellas
  • C representa la confianza que tenemos en nuestro prior. Es equivalente a una serie de observaciones.

Entonces el promedio bayesiano será

 $$ rating({K_1}, {K_2}, {K_3}) = \frac{ C \times m + total~number~of~stars }{C + number~of~reviews } $$

Si tiene los datos relevantes y el tiempo infinito, puede establecer estos dos valores ajustando una distribución de Dirichlet en el conjunto de datos de las clasificaciones de todos sus libros de computadora. Sin embargo, es muy común elegir un par de parámetros que imiten el comportamiento que estamos buscando. m es el valor hacia el que ajustaremos la revisión promedio de productos con muy pocas revisiones. Cuanto más grande es C, mayor es el número de revisiones necesarias para “alejarse de m”.

Echemos un vistazo a nuestro primer ejemplo. Dos posibles valores pueden ser, por ejemplo, m=3 y C=5.

Los promedios bayesianos para los dos libros se convierten en

 $$ {rating_{book~A}} = \frac{5 \times 3 + 5 \times 1}{ 5 + 1 } = 3.3 $$ $$ {rating_{book~B}} = \frac{5 \times 3 + 4.5 \times 50 }{ 5 + 50 } = 4.36 $$

Como era de esperar, el Libro 2 tiene un promedio bayesiano mejor que el Libro 1.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.