progetti

Marzo 17, 2013

E-Commerce (a volte) farlo male

La maggior parte dei siti di e-commerce si offrono di ordinare i risultati della ricerca per le valutazioni dei clienti… e un bel po ‘ stanno facendo male. Supponiamo che qui sto cercando un libro sui CSS. Voglio ottenere il miglior libro che i soldi possono comprare, quindi sicuramente colpirò il pulsante Ordina per voto. Il sito offre due opzioni

  • prenota A : 1 valutazione di 5. Valutazione media di 5.
  • libro B: 50 valutazioni. Valutazione media di 4.5

Pensaci, preferiresti prenotare un come first of book Bcome first. Probabilmente libro B giusto? Ciò significa che abbiamo bisogno di qualche thingsmarter di un semplice ordinamento per voto medio.

Una prima risposta semplice, che sarebbe sicuramente un miglioramento rispetto all’ordinamento per valutazione media, potrebbe essere quella di mettere il prodotto con meno di k in basso. Ma allora, come scegliere k? Che cosa succede se siamo alla ricerca di una nicchia e tutti i prodotti hanno meno di k valutazioni tranne uno, che ha un k+1 valutazioni terribili. Dovrebbe andare in cima ?

Una seconda risposta che potresti trovare sarebbe quella di scegliere una formula di punteggio empirica che sembra corrispondere ai nostri vincoli.

La maggior parte delle formule là fuori si basa sulla stima bayesiana. In generale, la stima bayesiana brilla davvero su questo tipo di situazione : vuoi misurare qualcosa, ma sai che non avrai abbastanza dati per raggiungere una stima perfetta.

Se m è la media delle valutazioni e n è il numero delle valutazioni, potremmo considerare qualcosa come:

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

Questo probabilmente funzionerà bene. Probabilmente have Devi ancora scegliere la K giusta senza sapere a quali valori fisici si riferisce. Ancora più importante dovrai convincere il tuo collega che questa è la bella soluzione che copre perfettamente i casi limite.

Bayesian estimation crash course

La grande idea è, piuttosto che cercare di calcolare direttamente la nostra stima, prima calcoliamo una distribuzione di probabilità che descrive “ciò che sappiamo” del valore che vogliamo stimare, e poi (e solo allora) possiamo estrarre una stima di questo valore che si adatta al nostro scopo.

La separazione della preoccupazione in quell’ultimo bit è in realtà abbastanza importante. A seconda del tuo punto di vista puoi considerare valori molto diversi come stime di un valore fisico.

Ad esempio, se devo stimare il numero di sieri che un governo deve acquistare per far fronte a un’epidemia, voglio fornire una cifra per la quale posso dire : sono sicuro al 90% che questo sarà sufficiente. Questa cifra a volte può essere molto lontano dalle aspettative. Se sto effettivamente lavorando come nella contabilità nella società che vende quei sieri, e voglio avere un’idea di un limite inferiore per il mio reddito per il prossimo mese, probabilmente prenderò un quantile completamente diverso.

Un semplice esempio

Supponiamo che tu abbia appena scoperto un parassita chiamato toxoplasmosi e vuoi stimare il rapporto X X of delle persone infettate da un parassita chiamato toxoplasmosi.

Pazienti umani infettati dal parassita non mostra alcun sintomo a tutti, in modo abbastanza per quanto ne sai che potrebbe essere qualsiasi cosa. Potremmo descrivere la tua visione sulla distribuzione di probabilità di questo valore come una distribuzione uniforme. .

Parlare di probabilità qui potrebbe sembrare un po ‘ strano.Prima di tutto è legittimo parlare di probabilità quando stiamo stimando qualcosa di un valore molto tangibile, non casuale? In termini di probabilità bayesiana, una variabile è casuale se non si conosce esattamente il suo valore. È un’informazione che riassume la nostra conoscenza su qualcosa.

Ma torniamo al nostro problema. Mentre provi le persone per la toxoplasmosi, farai osservazioni.Ogni persona avrà una probabilitàX di avere la toxoplasmosi, e tu vuoi stimare questo molto X. Supponiamo che dopo aver visto persons n persons persone, hai rilevato k persone con toxoplasmosi.

Hai iniziato con una probabilità precedente uniforme, e ogni osservazione piegherà la tua visione su X, rendendola sempre più accurata.Questa visione aggiornata di X è chiamata la sua distribuzione posteriore.Chiamiamo O (come nell’osservazione) la sequenza dei risultati dei nostri test N.

Bayes fornisce una piccola formula per calcolarla

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

P P(O) is è la probabilità di osservare ciò che abbiamo osservato. È costante con X, e quindi di scarso interesse. Allo stesso modo abbiamo scelto la nostra prima probabilità $P(X)$ per essere uniforme e quindi non varia al variare di X. Ci sono solo interessati nella relazione di proporzionalità :

 $$ P(X | O) \propto P( O | X) $$
$$P( O X)$$ è detta probabilità. Viene dato X (il valore che stiamo cercando) la probabilità di osservare ciò che abbiamo osservato. Di solito è qualcosa di piuttosto semplice da calcolare.

Nel nostro caso, la probabilità di osservare la sequenza di osservazioni pratiche

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

è determinato moltiplicando la probabilità di ogni osservazione :

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

Per una sola osservazione, la probabilit ‘ a di osservare oi positivo (rispettivamente negativo) è, per definizione, X (rispettivamente 1-X). Alla fine, se osserviamo K positivo e NK negativo la probabilità posteriore è

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

Questa distribuzione è anche chiamata distribuzione binomiale.

È interessante vedere come la probabilità posteriore si evolve con il numero di osservazioni. Il grafico seguente mostra come il posteriore diventa sempre più raffinato con il numero di osservazioni che otteniamo.

Ora che abbiamo la probabilità esatta, potremmo considerare di calcolare qualsiasi tipo di stima da questa distribuzione. Probabilmente l’output più comune sarebbe calcolare un intervallo di confidenza : un intervallo per il quale possiamo affermare con una confidenza del 90% il nostro valore si trova da qualche parte tra a e b.

Oggigiorno tutti hanno un computer e probabilmente il modo più semplice per produrre un tale intervallo di confidenza è probabilmente calcolare la funzione di distribuzione cumulativa

Molti statistici hanno anche lavorato per trovare intervalli di confidenza molto accurati per le distribuzioni binomiali quando l’approssimazione normale non regge. Potresti voler controllare questa pagina di wikipedia se vuoi usare una di queste formule.

Torna alle stelle

Torniamo alle stelle! In questa sezione, per semplificare considereremo un intervallo di 1, 2 o 3 stelle. Cercheremo di stimare, data la risposta della gente, la distribuzione posteriore della proporzione di persone che darebbero rispettivamente 1,2 o 3 stelle , se avessimo la possibilità di chiedere un numero infinito di persone.

La variabile casuale che osserviamo segue una cosiddetta distribuzione categoriale. Che fondamentalmente è una variabile che assume i suoi valori all’interno di {1,2,3} con una qualche probabilità p1, p2, p3 con

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

Ciò che rende più difficile è che non stiamo guardando la distribuzione di un valore scalare, ma la distribuzione congiunta di tre valori scalari (anzi due considerando il vincolo lineare).

Tuttavia, possiamo applicare lo stesso ragionamento che abbiamo fatto con la stima di una singola probabilità:

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

Questa volta includeremo comunque un precedente. Per semplificare i calcoli, è sempre una buona idea scegliere un precedente che abbia la stessa forma della probabilità. Calcoliamo prima la probabilità.

Proprio come nel nostro precedente esempio di stima dei parametri, possiamo usare l’indipendenza della nostra osservazione.

 $$ 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}) $$

E la probabilità di ogni singola osservazione è dato dalla probabilità associata

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

Pertanto, se entro il N recensioni che abbiamo ricevuto non c’era, rispettivamente, K1, K2, K3 giudizi rispettivamente a 1,2 e 3 stelle, abbiamo una probabilità di

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

Che si chiama una distribuzione Dirichlet con il parametro

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

al fine di rendere la matematica più semplice, consideriamo un preventivo con la stessa forma, e il parametro alpha0.

Il posteriore, è proporzionale 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 } } $$

Che possiamo fattorizzare in

 $$ 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 } }. $$

in cui vediamo una distribuzione di dirichlet con il parametro

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

Ora quello che vogliamo veramente è una stima del numero medio di stelle. Consideriamo l’uso dell’aspettativa di questa media, dato il nostro posteriore.

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

L’aspettativa di che la probabilità di ottenere 1, 2 o 3 numero di stelle è dato dalla distribuzione di dirichlet

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

Siamo, dunque, per il nostro bayesiano media :

 $$ 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}, $$

in cui definiamo

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

Siamo in grado di riorganizzarsi che come

 $$ 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} $$

et Voilà ! Cerchiamo solo di digerire questa formula al fine di renderlo qualcosa di utilizzabile nella vita reale. La media bayesiana per la valutazione a stelle consisterebbe nella scelta di alcuni parametri C e m in cui

  • m rappresenta un priore per la media delle stelle
  • C rappresenta quanto siamo fiduciosi nel nostro precedente. È equivalente a una serie di osservazioni.

Allora la media bayesiana sarà

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

Se si hanno i dati rilevanti e il tempo infinito, è possibile impostare questi due valori inserendo una distribuzione di Dirichlet sul set di dati delle valutazioni di tutti i libri del computer. Tuttavia è molto comune scegliere solo una coppia di parametri che imitano il comportamento che stiamo cercando. m è il valore verso il quale regoleremo la recensione media dei prodotti con pochissime recensioni. Più grande è C, maggiore è il numero di recensioni necessarie per “allontanarsi da m”.

Diamo ora un’occhiata al nostro primo esempio. Due valori possibili potrebbero essere, ad esempio,m=3 eC=5.

Le medie bayesiane per i due libri diventano

 $$ {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 $$

Come previsto, il Libro 2 ha una media bayesiana migliore del Libro 1.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.