Utilizzare il Machine Learning per analizzare la composizione dei carrelli acquistati
Una delle attività più strategiche che tendono ad ottimizzare la disposizione dei prodotti, nonché le opportunità di vendite incrociate (up-selling, cross-selling), è rappresentata dall’analisi dei carrelli acquistati.
L’algoritmo Apriori
Per questo scopo, abbiamo sviluppato un modello di Machine Learning basato sull’algoritmo Apriori che offre un metodo robusto per esplorare e identificare insiemi di articoli frequentemente acquistati all’interno di ciascuna transazione permettendo di derivare regole di associazione forti.
Queste regole non si limitano solo a tracciare quali prodotti tendono a co-occorrere nei carrelli della spesa, ma forniscono una visione sulla probabile sequenza di acquisti.
Ad esempio, scoprire che i clienti che acquistano scarpe sportive acquistano spesso anche abbigliamento sportivo nella stessa transazione può guidare l’ottimizzazione della disposizione dei prodotti e migliorare le opportunità di vendita incrociata.
Come Funziona Apriori?
L’algoritmo Apriori è una tecnica di mining di dati che viene utilizzata per trovare insiemi di articoli frequenti in un dataset per regole di associazione
È particolarmente utile nel contesto dell’analisi del market basket, dove l’obiettivo è scoprire relazioni tra diversi articoli acquistati insieme in una transazione.
La prima cosa da fare è importare i dati da uno storage (es. Bigquery) con le metriche e dimensioni necessarie.
Esempio:
- transaction_date = data transizione
- transaction_id = numero transazione
- order_value = valore dell’ordine
- category = categoria
- item_details = prodotto acquistato
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'transaction_id') AS transaction_id,
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = 'value') AS order_value,
item_details.item_name,
(SELECT value.string_value FROM UNNEST(item_details.item_params) WHERE key = 'item_category_4') AS category
FROM
`your_dataset_*`,
UNNEST(items) AS item_details
WHERE
event_name = 'purchase'
AND _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL {num_days} DAY)) AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
ORDER BY
transaction_id;
Vediamo l’algoritmo:
- Preparazione dei dati
- Dopo aver estratto i dati, il codice li organizza in “transazioni”, dove ogni transazione rappresenta tutti gli articoli acquistati insieme.
- Utilizza TransactionEncoder da mlxtend per trasformare queste liste di articoli in un formato adatto per l’analisi.
- Esecuzione dell’algoritmo Apriori
- Con i dati adeguatamente preelaborati, l’algoritmo Apriori viene applicato per identificare insiemi di articoli frequenti, basandosi su un parametro di supporto minimo definito (in questo caso, 0.001)
- Questo parametro di supporto rappresenta la frazione delle transazioni totali che devono contenere un certo insieme di articoli affinché sia considerato “frequente”.
- Generazione di regole di associazione
- Dalle combinazioni di articoli frequenti trovate, il codice genera regole di associazione che mostrano come la presenza di alcuni articoli in una transazione (antecedenti) è associata alla presenza di altri articoli (conseguenti), basandosi su metriche di fiducia e lift
- La fiducia indica la frequenza con cui gli articoli conseguenti appaiono nelle transazioni che contengono gli antecedenti: il valore che va da 0 a 1 (100% fiducia).
- Il lift misura quanto più spesso gli antecedenti e i conseguenti appaiono insieme rispetto a quanto ci si aspetterebbe se fossero indipendenti: un lift maggiore di 1 indica che gli articoli sono positivamente correlati: compaiono insieme nelle transazioni più frequentemente di quanto ci si aspetterebbe se fossero indipendenti.
- Dalle combinazioni di articoli frequenti trovate, il codice genera regole di associazione che mostrano come la presenza di alcuni articoli in una transazione (antecedenti) è associata alla presenza di altri articoli (conseguenti), basandosi su metriche di fiducia e lift
Rappresentazione a Grafo
L’aspetto interessante di questa analisi è la possibilità di realizzarla attraverso grafi intuitivi e di semplice interpretazione.
Nel grafo ogni nodo rappresenta un articolo (antecedente o conseguente) e ogni arco rappresenta una regola di associazione tra due articoli. Gli archi sono etichettati con la fiducia della regola di associazione per mostrare la forza della relazione.
Questa è solo una applicazione dell’algoritmo Apriori. Ad esempio può essere utilizzato per effettuare una Analisi delle Sequenze Temporali di acquisti per capire l’ordine in cui i clienti acquistano prodotti nel tempo. Ciò può essere usato per prevedere i prossimi acquisti e per costruire campagne di marketing proattive.
Bello vero? Cosa ne pensi?
Data Scientist
Sono un Data Scientist con esperienza nell’applicazione di tecniche avanzate di Machine Learning per l’analisi di complessi set di dati nel campo del marketing digitale. Specializzato nell’uso di Python, sviluppo modelli predittivi e di analisi dei dati che permettono di identificare e risolvere criticità nei progetti.