8 votos

¿Cómo puedo calcular "más populares" con mayor precisión?

Estoy desarrollando un sitio web en el momento.

El sitio web permite a los usuarios "tasa", un cargo de 0 a 5.

Los puestos se pueden visualizar en orden de popularidad.

Por el momento, mi método de cálculo es bastante primitivo:

average_rating = total_rating/calificaciones

el problema es que una historia con 1 calificación de 5 es más popular que una historia con 99 calificaciones de 5 y 1 de 4.

(5/1) > (499/100)

Podría alguien sugerir una forma más precisa para calcular la popularidad tanto en el número de votos y la calidad de cada voto?

6voto

Knox Puntos 1543

Usted podría considerar la posibilidad de cada post para tener un 'verdadero' la calificación promedio que un cero en la medida que más usuarios voten. Si tenemos en cuenta que los votos en cada post provienen de un conjunto de todos los posibles votos que podría haber sido echado de que tienen una 'verdadera' $\mu$ y la desviación estándar $\sigma$, entonces el promedio de los votos efectivamente emitidos puede ser considerado como un estimador del valor real. Este estimador puede ser más o menos preciso, dependiendo del número de votos emitidos. Así que la pregunta es: "¿cómo puedo tomar en cuenta las imprecisiones de mi promedios medidos en la clasificación de puestos?"

Podemos resolver esto con un poco de matemáticas. Vamos a votar a $i$ denotarse $x_i=1,\dots,5$. Comience por dar a cada post una calificación de 3, por lo $x_1=3$. A continuación, para cada período de calificación de calcular la media

$$\mu_{(n)} = \frac{1}{n}\sum_{i=1}^n x_i$$

y la desviación estándar de la muestra

$$\sigma_{(n)} = \frac{1}{n-1} \sum_{i=1}^n (x_i - \mu_{(n)})^2$$

Entonces la desviación estándar de la media medido $\mu_{(n)}$ (que es una medida de su precisión) está dada por

$$\hat{\sigma}_{(n)} = \frac{\sigma_{(n)}}{\sqrt{n}}$$

es decir, la calidad de la estimación de la verdadera media aumenta a medida que el número de votos aumenta, que es lo que usted esperaría.

Para traducir esto en un ranking, tener en cuenta que conocer la desviación estándar de la media le da un aproximado de intervalo de confianza para la media. En particular, se puede calcular un valor mínimo para la verdadera media, con un cierto nivel de confianza. Un 95% de confianza para estimar el valor mínimo de la media está dada por $\mu_{(n)} - 1.64\hat{\sigma}_{(n)}$. Traducido libremente, usted puede estar 95% seguro de que la verdadera media está por encima de $\mu_{(n)} - 1.64\hat{\sigma}_{(n)}$.

Ranking de tus posts por esta cantidad en lugar de la media medido de forma natural tiene en cuenta su incertidumbre para los puestos con sólo un pequeño número de votos.


Una crítica válida de este esquema es que es caro para volver a calcular la media y la varianza de cada vez que alguien envía un voto. Usted puede encontrar lo siguiente en la línea de algoritmos para el cálculo de la media y la varianza de utilidad: http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#On-line_algorithm

5voto

palehorse Puntos 8268

Un procedimiento estándar (con frecuencia -y vagamente llamada 'bayesiano promedio') es hacer una media ponderada entre la calificación individual y el 'a priori' calificación:

$R_a = W \; R + (1 - W ) \; R_0$

donde

$R_a = $ promedio de ('bayesiano') calificación

$R = $ individual de calificación: la calificación promedio para este elemento.

$R_0 = $ a priori de la calificación global de la puntuación media, para todos los artículos en su base de datos.

$W = $ factor de peso: se debe tienden a $0$ si este tipo de elementos tiene pocos votos, y debe tienden a $1$ si tiene muchos.

Algunas de las opciones: $W = \frac{n}{N_{max}}$ o $W = max( \alpha \frac{n}{N_{av}},1)$ , etc ($n=$ número de votos para este elemento, $N_{max}=$ número máximo de votos para todos los elementos, $N_{av}=$promedio, $\alpha=$ algún número entre 0,5 y 1... ) También, con frecuencia uno de los descartes de los elementos que tienen muy baja/grandes valores en el cómputo de las estadísticas.

Ver algunos ejemplos

Añadido: por otro enfoque, especialmente para sí/no como/diskike votos, ver aquí.

2voto

Aleksandr Levchuk Puntos 1110

Mientras que Chris Taylor respuesta que ya está bien, siento que debo decir algo acerca de la estimación estadística. La idea es que sus datos son observaciones de una variable aleatoria $X$, y quieres decir algo acerca de la distribución de $X$ el uso de estos datos. Hay dos tipos principales de modelos en las estadísticas, es decir, paramétrica y no paramétrica de modelos. Por ejemplo, los gráficos de los datos como un histograma es un ejemplo de no-paramétrica del método. Mientras que los métodos no paramétricos son robustos, a veces es más difícil obtener información acerca de $X$ uso de ellos, por lo que a menudo hacemos suposiciones sobre la distribución de $X$ y el uso de un modelo paramétrico en su lugar. Un ejemplo de modelado paramétrico sería asumir que los usuarios' los votos están distribuidos normalmente con algún desconocido media de $\mu$ y la varianza $\sigma^2$ y tratar de estimar los $\mu$ $\sigma^2$ a partir de los datos de la muestra. Una de las ventajas de hacer una suposición es que nos puede dar un buen intervalos de confianza para nuestras estimaciones.

De hecho, si tenemos muestras de $X_1, \ldots, X_n$$X \sim N(\mu, \sigma^2)$, entonces, la probabilidad de que la media de la muestra $\overline{X} = \frac{1}{n} (X_1 + \cdots + X_n)$ está contenida en el intervalo de $(\mu - a, \mu + a)$ es $$\Phi \left(\frac{a}{\sigma \sqrt{n}}\right) - \Phi \left(-\frac{a}{\sigma \sqrt{n}}\right)$$ donde $\Phi$ es la función de distribución acumulativa de la distribución normal estándar. Si establecemos $a = 1.64 \sigma \sqrt{n}$, entonces podemos ver que hay un $90\%$ de probabilidad de que $\overline{X} \in (\mu - a, \mu + a)$. Equivalentemente, existe un $90\%$ de probabilidad de que $\mu \in (\overline{X} - a, \overline{X} + a)$. Por desgracia, me he engañado aquí un poco - no sabemos lo $\sigma^2$, por lo que no podemos calcular el $a$. Así que ahora tenemos a la estimación de $\sigma^2$. Es un hecho conocido que $$S = \sum_{i=1}^{n} \frac{(X_i - \overline{X})^2}{\sigma^2}$$ es una $\chi^2$ variable aleatoria con $n - 1$ grados de libertad, y es independiente de $\overline{X}$. Por lo tanto, $$\mathbb{E} \left[ \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \overline{X})^2 \right] = \sigma^2$$ es decir, $\tilde{\sigma}^2 = \frac{1}{n - 1} S$ es un estimador imparcial de $\sigma^2$. Podríamos, en principio, calcular un intervalo de confianza para $\sigma^2$ así, pero sólo necesitamos una estimación de punto, y podemos acaba de sustituir a $\tilde{\sigma}$ $\sigma$ en la fórmula anterior para el intervalo de confianza para $\mu$ para obtener una respuesta concreta. (Pero tenga en cuenta que no se trata de una $90\%$ intervalo de confianza!)

Por supuesto, uno puede recorrer en este juego, y (a grandes rasgos) la estadística Bayesiana es lo que usted consigue cuando usted asume que los parámetros mismos son variables aleatorias distribuidas de acuerdo a algunos antes de la distribución.

-2voto

Luboš Motl Puntos 5567

Sí, dar a cada puesto un 3 inicial para comenzar con, así que ajuste su fórmula para

$${\rm average\,\ rating} = ({\rm total\ \,rating} + 3) / ({\rm ratings} + 1)$$

Alternativamente, usted puede también ampliar los puestos con muchas clasificaciones, por ejemplo

$${\rm score} = \log ({\rm ratings}+1) ({\rm total\ \,rating} + 3) / ({\rm ratings} + 1) $$

Esta puntuación puede crecer por un "grado" cada vez el número de calificaciones obtiene multiplicado por $e$, pero este grado total se descontará de la calificación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X