top of page

Filtro collaborativo cos'è e come implementarlo con python

cos'è il Il filtraggio collaborativo ?

Il filtraggio collaborativo può essere considerato una tecnica per fornire consigli in un sistema o motore di suggerimenti. In sostanza, possiamo dire che è un modo per trovare somiglianze tra utenti e oggetti.



Filtro collaborativo cos'è e come implementarlo con python
Filtro collaborativo cos'è e come implementarlo con python


I sistemi di raccomandazione hanno un'ampia gamma di applicazioni in tutti i domini.


Costruire un buon sistema di raccomandazione adatto alle esigenze aziendali è sempre una sfida. Un buon sistema può essere sviluppato solo quando c'è una buona comprensione del suo funzionamento. In questo articolo, discuteremo come creare da zero un sistema di raccomandazione , in particolare basato su filtri collaborativi. Inizieremo con i dati casuali e costruiremo un sistema di raccomandazione per generare raccomandazioni.


Indice

  1. Che cos'è il filtro collaborativo?

  2. Uso della correlazione

  3. Implementazione del filtraggio collaborativo basato sugli elementi

  4. Implementazione del filtraggio collaborativo basato sull'utente

Iniziamo con la comprensione del filtro collaborativo.



Che cos'è il filtro collaborativo?

Il filtraggio collaborativo può essere considerato una tecnica per fornire consigli in un sistema o motore di suggerimenti. In sostanza, possiamo dire che è un modo per trovare somiglianze tra utenti e oggetti. Utilizzandolo possiamo calcolare le valutazioni in base alle valutazioni di utenti simili o articoli simili.

I sistemi di raccomandazione basati sul filtraggio collaborativo possono essere classificati nei seguenti modi:

  • Basato sul prodotto: questo tipo di sistema di raccomandazione aiuta a trovare somiglianze tra gli articoli oi prodotti. Questo viene fatto generando dati sul numero di utenti che hanno acquistato due o più articoli insieme e se il sistema trova una correlazione elevata, presume la somiglianza tra i prodotti. Ad esempio, ci sono due prodotti X e Y che sono altamente correlati quando un utente acquista X, il sistema consiglia di acquistare anche Y.

  • Basato sull'utente: questo tipo di sistema aiuta a trovare utenti simili in base alla loro natura di selezione degli articoli. Ad esempio, un utente utilizza un casco, una ginocchiera e una protezione per i gomiti e il secondo utilizza solo un casco e una protezione per i gomiti al momento della guida in bicicletta, il sistema di raccomandazione basato sull'utente consiglierà al secondo utente di utilizzare una protezione per le ginocchia.

In questo articolo cercheremo di comprendere da zero il filtraggio collaborativo. Per prima cosa creeremo un esempio di dati e cercheremo di trovare somiglianze tra gli elementi. Trovare la somiglianza tra gli elementi è correlato alla ricerca della correlazione tra gli elementi in base ai dati che abbiamo. Prima di passare all'implementazione ci viene richiesto di capire qual è la correlazione.


Uso della correlazione

La correlazione può essere considerata come la relazione tra due variabili. Questo può essere di tre tipi positivo, negativo o neutro. Se due variabili sono correlate positivamente, possiamo dire che i cambiamenti in una variabile in direzione positiva o negativa possono fornire un cambiamento nella seconda variabile in direzione positiva o negativa.

Se la correlazione è negativa, un cambiamento in una variabile può causare un cambiamento nella direzione opposta. Se le variabili sono correlate in modo neutro, le modifiche in una variabile non provocano una modifica nell'altra. La misurazione della correlazione può essere effettuata utilizzando il coefficiente di correlazione.

Il calcolo del coefficiente di correlazione può essere effettuato calcolando prima la covarianza della variabile e poi dividendo per la quantità di covarianza per il prodotto delle deviazioni standard di tali variabili.

Matematicamente,


filtro collaborativo cos'è e come implementarlo con python
filtro collaborativo cos'è e come implementarlo con python

Dove,

r = coefficiente di correlazione

x i = valori di x variabile in un campione

x = media dei valori della variabile x

y i = valori della variabile y in un campione

y = media dei valori della variabile y



E' veramente molto semplice, potresti quasi calcolarla con un foglio di carta e una calcolatrice


Esistono molti tipi di coefficienti di correlazione utilizzati nell'analisi statistica, utilizziamo principalmente la correlazione di Pearson per i sistemi di raccomandazione perché è una misura della forza e della direzione della relazione lineare tra due variabili. Passiamo all'implementazione di un sistema di raccomandazione.


Implementazione del filtraggio collaborativo basato sui prodotti


1. Importiamo le librerie

#Importiamo le libreire
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 

2. Set di dati

In questo articolo, implementeremo un sistema di raccomandazione utilizzando l'approccio di filtraggio collaborativo a tale scopo lavoreremo su dati semplici. Diciamo che abbiamo alcuni utenti, prodotti e valutazioni di quel prodotto fornite dall'utente. Possiamo creare un tale set di dati utilizzando il codice di seguito



#creiamo un dataset finto molto semplice per farti capire come funziona un filtro collaborativo, 
#successivamente per te sarà facile implementarlo con i tuoi dati

data2 = {'user_id':[1, 2, 3, 1, 2],
         'product_id':[1, 2, 1,2,3],
        'product_name':['product_1', 'product_2', 'product_1','product_2','product_3'],
         'rating':[3,3,3,2,2]
         }
 
items_df = pd.DataFrame(data2)
items_df

Output:
filtro collaborativo cos'è e come implementarlo con python
filtro collaborativo cos'è e come implementarlo con python



3. Tabella pivot

Creiamo una tabella pivot utilizzando questi dati in base a user_id e product_name.

#Creiamo una tabella Pivot tra il voto e i prodotti
pivot = pd.pivot_table(items_df,values='rating',columns='product_name',index='user_id')
pivot

Output:
filtro collaborativo cos'è e come implementarlo con python
filtro collaborativo cos'è e come implementarlo con python

Qui nell'output sopra, possiamo vedere la nostra tabella pivot. Questo formato di tabella può essere utilizzato per calcolare la correlazione. Poiché la correlazione sarà maggiore, possiamo usarli come nostra raccomandazione.


Generazione di raccomandazione

Per comprendere chiaramente il processo, abbiamo utilizzato un set di dati molto semplice e possiamo dire, vedendo la tabella sopra, che i prodotti 1, 2 e 3 hanno valutazioni simili e il prodotto 1 ha due recensioni. Quindi potrebbe esserci la possibilità che i prodotti 2 e 3 siano consigliati con il prodotto 1. Verifichiamo i nostri risultati.



#generiamo una raccompandazione in base a prodotti e rating
print('Il prodotto da consigliare quando viene acquistato il product_2 è :')
print( pivot.corr()['product_2'].sort_values(ascending=False).iloc[1:2])

Output :
Il prodotto da consigliare quando viene acquistato il product_2 è : product_name product_1   NaN 

Utilizzando le righe di codici sopra, calcoliamo la correlazione tra i prodotti e ordiniamo i valori. Quindi abbiamo stampato 1 valore e abbiamo scoperto che il nostro sistema ci consiglia di acquistare o utilizzare il prodotto 2 con il prodotto 1.



Implementazione del filtraggio collaborativo basato sull'utente


Nella sezione precedente, abbiamo esaminato il processo di creazione di dati e tabelle pivot. In questa sezione, utilizzeremo dati simili per implementare il filtraggio collaborativo basato sull'utente.


1. Tabella pivot

Iniziamo con la creazione di una tabella pivot per il filtraggio collaborativo basato sull'utente. A questo scopo, ci viene richiesto di invertire la nostra vecchia tabella pivot, il che significa che ora stiamo creando una tabella pivot basata sugli utenti come colonne.

#Creiamo una tabella Pivot tra il voto e gli utenti
pivot1 = pd.pivot_table(items_df,values='rating',columns='user_id',index='product_name')
pivot1

Output:
filtro collaborativo cos'è e come implementarlo con python
filtro collaborativo cos'è e come implementarlo con python

Nella tabella sopra, possiamo vedere che abbiamo user-id come colonna e prodotti come riga.


2. Generazione di raccomandazione

In questa sezione, troveremo utenti simili in base alle valutazioni fornite. In modo da poter filtrare gli utenti e fornire consigli simili su elementi diversi oppure possiamo anche fornire consigli a un utente in base a una cronologia utente simile.

#generiamo una raccompandazione in base a utenti e rating
print('Gli utenti simili a user_2 sono :')
print( pivot1.corr()[2].sort_values(ascending=True).iloc[1:2])

Output:
Gli utenti simili a user_2 sono : 
user_id 1   NaN 

Nell'output sopra, possiamo vedere che l'utente 1° è più simile all'utente 2°, ed è perché hanno fornito valutazioni quasi simili nel nostro set di dati principale.





Conclusione

In questo articolo, abbiamo esaminato le intuizioni di base alla base della creazione di sistemi di raccomandazione utilizzando tecniche di filtraggio collaborativo e abbiamo imparato questo approccio da zero.


Condividi l'articolo se ti è piaciuto :)


Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page