Quale dovrebbe essere il valore di un campo non valutato quando si trova la somiglianza del coseno


8

Sto lavorando a un sistema di raccomandazione di libri molto semplice. Voglio sapere cosa fare con i campi che non sono classificati dall'utente quando trovano la somiglianza del coseno, dovremmo ignorarli e calcolare solo con i campi classificati o dovremmo contrassegnarli come 0.

Il libro che sto seguendo dice di escludere i campi poiché fornirà un'interpretazione errata in caso di correlazione Euclidea e Pearson, ma in caso di Cosine Somiglianza, porta tutti i campi non classificati a 0.

Qualcuno può spiegare perché è necessario rendere i campi non classificati a 0 solo per Coseno e non altri o esiste un modo diverso per farlo. (So ​​come rendere i campi 0 in Euclide e Pearson influenzano il risultato ma non sono sicuro del coseno)


Puoi guardare questa domanda su StackOverflow per avere maggiori informazioni a riguardo.
Janpreet Singh,

La risposta risponde parzialmente alla domanda poiché mostra che mantenere voci non classificate come 0 influirà sicuramente sulla somiglianza corrispondente. Quale potrebbe essere (o meno) utilizzato nell'algoritmo per il motore di raccomandazione
janpreet singh,

Hai provato la normalizzazione media?
Valentin Calomme,

Risposte:


1

Per quanto riguarda l'implementazione, c'è un buon motivo per far corrispondere 0 a non valutato. Poiché la maggior parte degli utenti non ha valutato la maggior parte dei libri, 0 sarà il valore più comune e la funzione di somiglianza del coseno può utilizzare internamente matrici sparse per accelerare il calcolo. La scorciatoia a matrice sparsa è il motivo principale per cui le persone usano la somiglianza del coseno in primo luogo.

D'altra parte, eliminerà i tuoi consigli se l'algoritmo interpreta uno 0 per essere più vicino a un 1 di un 2. Devi ignorarli intenzionalmente, ma puoi facilmente farlo all'interno dell'implementazione della somiglianza del coseno piuttosto che filtrare il dati prima di applicarli.


1. Quindi, secondo la tua risposta, seguire qualcosa non dovrebbe influire sul risultato?
divyum,

0

Considera come viene calcolata la somiglianza del coseno .

La somiglianza del coseno prende il prodotto punto di due vettori reali e divide questo valore per il prodotto della loro grandezza. Per l'identità del prodotto punto euclideo, questo è uguale al coseno dell'angolo tra i due vettori. Il risultato è un valore compreso tra 1 e -1.

Quando il valore è 1, quei vettori puntano esattamente nella stessa direzione. Quando il valore è -1, i vettori puntano esattamente nella direzione opposta (una è la negazione dell'altra). Quando il valore è 0, i vettori sono perpendicolari l'uno all'altro; in altre parole, quando il valore è zero, questi due vettori non sono simili nello spazio delle funzioni come è possibile ottenere.

Il prodotto punto è la somma di tutti i prodotti saggio elemento dei tuoi due vettori. Più grandi sono quei numeri, più contribuiscono alla somiglianza del coseno.

Ora, prendi qualsiasi funzione nel tuo vettore. Il quinto, diciamo. Se lo imposti a zero in uno dei tuoi vettori, anche il quinto elemento nel prodotto saggio elemento dei due vettori sarà zero, indipendentemente dal suo valore nell'altro vettore. Quando riassumi tutti questi prodotti dal punto di vista degli elementi, il quinto elemento non avrà alcun impatto sulla somma. Di conseguenza, impostando un valore nel vettore della funzione su zero significa che non contribuisce alla somiglianza del coseno.

Questo è il motivo per cui impostare un valore su zero in un vettore di funzione equivale a non includere la funzione nel calcolo della somiglianza del coseno e non distorce la somiglianza del coseno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.