Punteggi del rapporto sul rapporto di segnalazione degli utenti

I punteggi nel rapporto sul rapporto di segnalazione degli utenti sembrano un po’ confusi. :slightly_smiling_face:

Ad esempio:

  • Gli utenti con solo segnalazioni non concordate ottengono un punteggio superiore a quelli senza segnalazioni e a quelli con una quantità simile di segnalazioni concordate e non concordate.
  • Chi ha, ad esempio, 100 segnalazioni non concordate e 100 concordate ottiene esattamente lo stesso punteggio di qualcuno senza segnalazioni, ovvero 0.

Qual è l’intenzione dietro questo punteggio? (cc: @j.jaffeux)


La formula attuale per ogni punteggio è:

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

sorgente: app/models/reports/user_flagging_ratio.rb

Ecco un esempio di punteggi per 0, 5, 10 e 15 segnalazioni concordate e non concordate:

   |   0   5   10   15  agreed
------------------------
0  |   0  25  100  225
   |
5  |   5   0    5   20
   |
10 |  10   2    0    2
   |
15 |  15   6    1    0
   |
disagreed

E così appare se si inserisce quella formula in Wolfram Alpha. :wink: (x è concordato, y è non concordato)

_modifica:

Le modifiche più recenti a questo algoritmo sono menzionate qui: User_flagging_ratio_count - #8 by j.jaffeux

3 Mi Piace

Il mio caso d’uso per questo rapporto specifico è identificare gli utenti che sono più o meno allineati con la moderazione. Da questa prospettiva, 15/0 e 0/15 sono ugualmente importanti per motivi diversi, e un punteggio di 255 / -255 in questi casi, secondo me, renderebbe la situazione molto più precisa, ma non sono sicuro di come l’algoritmo possa farlo mentre pesa anche il volume dei segnalazioni, che è ugualmente importante.

3 Mi Piace

Wow, questo significa che mantenendo costante il numero di agreed, man mano che il numero di disagreed aumenta, il punteggio migliorerà sempre di più (quando disagreed > agreed).

Una formula più ragionevole e diretta potrebbe essere qualcosa come:

(agreed * agreed) - (disagreed * disagreed)

Cioè, gli agreed aumenteranno sempre il punteggio, mentre i disagreed lo diminuiranno sempre. Non so se ci sia bisogno di rendere la formula più complessa di così, ma comunque è solo la mia opinione (se va bene che il punteggio possa essere negativo).

Penso che questo vada bene. C’è un problema, considerando che entrambi i valori (quello che dovrebbe aumentare e quello che dovrebbe diminuire il punteggio) sono uguali?

1 Mi Piace

Non ho scritto la maggior parte del codice; ho principalmente corretto un bug che impediva la visualizzazione dei record quando il numero di disaccordi superava quello degli accordi. Quindi non sono sicuro della maggior parte della logica. @eviltrout

Ho usato accordi * accordi perché pensavo potesse essere interessante evidenziare gli utenti con cui non siamo mai in disaccordo. Ma si tratta di un caso limite e la maggior parte degli utenti non rientrerà in questa categoria, quindi dovremmo probabilmente ottimizzare l’altro ramo.

Sentiti libero di correggere la formula per gestire meglio eventuali casi specifici non considerati.

1 Mi Piace

Dovresti controllare con @eviltrout

1 Mi Piace

Sono decisamente aperto a suggerimenti in questo caso. Cosa consiglieresti al suo posto?

2 Mi Piace