Puntuaciones del informe de ratio de segnalaciones de usuarios

Las puntuaciones en el informe de la relación de señalización de usuarios parecen un poco confusas. :slightly_smiling_face:

Por ejemplo:

  • Los usuarios con solo señales desacordadas obtienen una puntuación superior a los que no tienen señales y a los que tienen una cantidad similar de señales acordadas y desacordadas.
  • Aquellos con, por ejemplo, 100 desacuerdos y 100 acuerdos obtienen exactamente la misma puntuación que alguien sin señales, es decir, 0.

¿Cuál es la intención detrás de esta puntuación? (cc: @j.jaffeux)


La fórmula actual para cada puntuación es:

if disagreed == 0
  agreed * agreed
else
  ((1 - (agreed / disagreed)) * (disagreed - agreed)).to_i

fuente: app/models/reports/user_flagging_ratio.rb

Aquí hay un ejemplo de puntuaciones para 0, 5, 10 y 15 señales acordadas y desacordadas:

   |   0   5   10   15  acordadas
------------------------
0  |   0  25  100  225
   |
5  |   5   0    5   20
   |
10 |  10   2    0    2
   |
15 |  15   6    1    0
   |
desacordadas

Y así es como se ve si introduces esa fórmula en Wolfram Alpha. :wink: (x son las acordadas e y las desacordadas)

editado:

Los cambios más recientes en este algoritmo se mencionan aquí: User_flagging_ratio_count - #8 by j.jaffeux

3 Me gusta

Mi caso de uso para este informe en particular es identificar a los usuarios que están más o menos alineados con la moderación. Desde esa perspectiva, 15/0 y 0/15 son igualmente importantes por razones distintas, y una puntuación de 255 / -255 en esos casos, creo que haría la situación mucho más precisa, pero no estoy seguro de cómo el algoritmo podría lograrlo al mismo tiempo que pondera el volumen de reportes, lo cual es igualmente importante.

3 Me gusta

¡Vaya! Eso significa que, manteniendo constante el número de agreed, a medida que aumenta el número de disagreed, la puntuación será cada vez mejor (cuando disagreed > agreed).

Una fórmula más razonable y directa podría ser algo así como:

(agreed * agreed) - (disagreed * disagreed)

Es decir, los agreed siempre elevarán la puntuación y los disagreed siempre la reducirán. No sé si sea necesario complicar más la fórmula, pero de todos modos, esa es mi opinión (si está bien que la puntuación pueda ser negativa).

Creo que esto está bien. ¿Hay algún problema con ello, considerando que ambos valores (uno que debería aumentar la puntuación y otro que debería disminuirla) son iguales?

1 me gusta

No escribí la mayor parte, principalmente corregí un error que impedía mostrar registros cuando tenías más desacuerdos que acuerdos. Así que no estoy seguro de la mayoría de la lógica. @eviltrout

Hice acordado * acordado porque pensé que sería interesante resaltar a los usuarios con los que nunca estamos en desacuerdo. Pero es un caso marginal y la mayoría de los usuarios no estarán en este grupo, así que probablemente deberíamos optimizar la otra rama.

Siéntete libre de corregir la fórmula para manejar mejor cualquier caso específico que no tenga en cuenta.

1 me gusta

Deberías consultar con @eviltrout

1 me gusta

Estoy definitivamente abierto a sugerencias aquí. ¿Qué me recomiendas en su lugar?

2 Me gusta