Vai al contenuto principale

Algoritmo Apriori spiegato: guida passo dopo passo con implementazione in Python

Scopri come funziona l'algoritmo Apriori, i suoi concetti chiave e come usarlo in modo efficace per l'analisi dei dati e il decision-making.
Aggiornato 3 giu 2026

Il mining delle regole di associazione è diventato essenziale per le aziende che vogliono capire i comportamenti dei clienti e i modelli di acquisto. Questa tecnica identifica gli articoli spesso comprati insieme, aiutando le aziende a ottimizzare il posizionamento dei prodotti, le promozioni e le raccomandazioni. Un'analisi di questo tipo migliora le strategie aziendali perché mette in luce con chiarezza le tendenze nascoste nei dati transazionali.

L'algoritmo Apriori è un metodo popolare per estrarre queste regole di associazione grazie alla sua semplicità e ai risultati pratici. A differenza di altri metodi complessi, Apriori è lineare e intuitivo, adatto a chi inizia ed efficace nelle applicazioni reali. 

Questo articolo spiega l'algoritmo Apriori, ne illustra il flusso di lavoro con esempi chiari e ti mostra come usarlo in modo efficace. Se vuoi mettere le mani in pasta con i concetti di machine learning, dai un'occhiata al nostro  percorso di carriera Machine Learning Scientist in Python

Che cos'è l'algoritmo Apriori?

Come scoprirai dal nostro tutorial su Association Rule Mining in Python, Apriori è un algoritmo progettato per estrarre itemset frequenti da database transazionali e generare regole di associazione. Si basa sul principio secondo cui, se un itemset è frequente, allora anche tutti i suoi sottoinsiemi devono essere frequenti. Questa assunzione aiuta a ridurre il numero di itemset possibili da verificare, rendendo il processo efficiente.

Itemset e transazioni

Un dataset per Apriori è tipicamente composto da transazioni, dove ogni transazione è un insieme di articoli acquistati insieme. Per esempio, i dati di vendita di un supermercato possono contenere transazioni come:

  • Latte, Pane, Burro
  • Latte, Pannolino, Birra, Pane
  • Pannolino, Birra, Burro

Ognuna di queste transazioni rappresenta un carrello di articoli comprati in un unico acquisto. Il nostro corso Market Basket Analysis in Python approfondisce l'applicazione di questo concetto in Python. 

Comprendere i dataset di transazioni Apriori

Supporto, confidenza e lift

Il mining delle regole di associazione si basa su tre metriche chiave:

Supporto: La frequenza con cui un articolo appare nel dataset. Si calcola come:

Confidenza: La probabilità che l'articolo B venga acquistato quando viene acquistato l'articolo A, data da:

Lift: La forza di una regola, che misura quanto è più probabile che l'articolo B venga comprato quando viene comprato l'articolo A rispetto a quando è comprato indipendentemente:

Un valore di lift maggiore di 1 suggerisce una forte associazione positiva tra gli articoli.

Come funziona l'algoritmo Apriori

Vediamo ora come funziona l'algoritmo Apriori.

Come funziona l'algoritmo Apriori

Processo passo dopo passo

  1. Generazione degli itemset candidati: l'algoritmo inizia identificando i singoli articoli e contando le loro occorrenze per determinare gli articoli frequenti.
  2. Potatura in base al supporto minimo: gli itemset che compaiono meno della soglia di supporto minima vengono rimossi.
  3. Generazione degli itemset frequenti: l'algoritmo genera itemset più grandi combinando itemset più piccoli frequenti, iterando finché non è più possibile formare itemset frequenti.
  4. Derivazione delle regole di associazione: estrae regole in base ai valori di confidenza e lift per determinare relazioni significative.

Esempio illustrativo

Considera un dataset con le seguenti transazioni:

  1. Latte, Pane
  2. Latte, Burro
  3. Latte, Pane, Burro
  4. Pane, Burro

Usando un supporto minimo del 50%, l'algoritmo identifica gli itemset frequenti ed estrae regole come:

  • Latte → Pane: Confidenza: 66,7%
  • Pane → Burro: Confidenza: 66,7%

Queste regole aiutano le aziende a comprendere i comportamenti d'acquisto e a ottimizzare l'inventario.

Implementare l'algoritmo Apriori in Python

In questa sezione impari a implementare l'algoritmo Apriori in Python.

Configurare l'ambiente

Per usare Apriori in Python, installa le librerie necessarie:

pip install mlxtend pandas

Caricamento e preparazione dei dati

Il passo successivo è caricare i pacchetti e preparare i dati:

import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules

# Expanded dataset
data = {
    'Milk': [1, 1, 0, 1, 0, 1, 0, 1, 1, 0],
    'Bread': [1, 0, 1, 1, 1, 0, 1, 0, 1, 1],
    'Butter': [0, 1, 1, 1, 1, 1, 0, 1, 1, 0],
    'Eggs': [1, 0, 0, 1, 1, 1, 1, 0, 0, 1],
    'Cheese': [0, 1, 1, 0, 1, 1, 0, 1, 0, 1],
    'Diaper': [0, 1, 0, 1, 0, 1, 1, 1, 0, 0],
    'Beer': [1, 0, 1, 0, 1, 0, 1, 0, 1, 1]
}
df = pd.DataFrame(data)

Applicare l'algoritmo Apriori

Ora applica l'algoritmo.

# Generating frequent itemsets
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

Poi otteniamo le regole di associazione:

# Generating frequent itemsets
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

# Generating association rules
rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.6)
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])
 antecedents consequents  support  confidence      lift
0    (Butter)      (Milk)      0.5    0.714286  1.190476
1      (Milk)    (Butter)      0.5    0.833333  1.190476
2     (Bread)      (Eggs)      0.5    0.714286  1.190476
3      (Eggs)     (Bread)      0.5    0.833333  1.190476
4     (Bread)      (Beer)      0.6    0.857143  1.428571
5      (Beer)     (Bread)      0.6    1.000000  1.428571
6    (Butter)    (Cheese)      0.5    0.714286  1.190476
7    (Cheese)    (Butter)      0.5    0.833333  1.190476

I valori di supporto (da 0,5 a 0,6) indicano che queste associazioni compaiono nel 50-60% di tutte le transazioni.

I punteggi di confidenza (da 0,71 a 1,0) mostrano l'affidabilità delle regole, con alcune come Birra → Pane che sono certe (confidenza 100%).

I valori di lift (~1,2-1,4) suggeriscono associazioni moderate ma significative, indicando che queste coppie di articoli si presentano insieme un po' più frequentemente del caso.

Interpretare i risultati

Per comprendere meglio le regole di associazione generate dall'algoritmo Apriori, possiamo visualizzarle con Matplotlib. Uno scatter plot aiuta a esaminare confidenza e lift, mentre una heatmap mostra il supporto per varie combinazioni di articoli.

import matplotlib.pyplot as plt
import networkx as nx
# Scatter plot of confidence vs lift
plt.figure(figsize=(8,6))
plt.scatter(rules['confidence'], rules['lift'], alpha=0.7, color='b')
plt.xlabel('Confidence')
plt.ylabel('Lift')
plt.title('Confidence vs Lift in Association Rules')
plt.grid()
plt.show()
# Visualizing association rules as a network graph
G = nx.DiGraph()
for _, row in rules.iterrows():
    G.add_edge(tuple(row['antecedents']), tuple(row['consequents']), weight=row['confidence'])
plt.figure(figsize=(10, 6))
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_color='lightblue', edge_color='gray', node_size=3000, font_size=10)
edge_labels = {(tuple(row['antecedents']), tuple(row['consequents'])): f"{row['confidence']:.2f}" 
               for _, row in rules.iterrows()}
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)

plt.title("Association Rules Network")
plt.show()

Lo scatter plot aiuta a identificare le regole con relazioni forti, mentre il grafo di rete rappresenta visivamente come sono associati i vari articoli. Queste intuizioni guidano le decisioni in ambito retail, raccomandazioni e rilevamento frodi.

Scatter Plot (Confidenza vs Lift)

Lo scatter plot mostra la relazione tra confidenza e lift per le regole di associazione generate. Le osservazioni chiave sono:

  • I punti dati sono distribuiti in un intervallo di confidenza tra 0,7 e 1,0.
  • I valori di lift ricadono per lo più tra 1,19 e 1,43, indicando che le regole individuate forniscono un certo livello di associazione significativa ma non sono estremamente forti.
  • Un valore di confidenza di 1,0 con un lift di 1,43 (Birra → Pane) suggerisce che ogni volta che viene acquistata la birra, il pane è sempre presente nella transazione, rendendola una regola altamente affidabile.

Rete delle regole di associazione

Il grafo di rete rappresenta visivamente le associazioni tra i diversi articoli:

  • Latte e Burro sono fortemente associati, il che significa che chi compra uno è probabile che compri anche l'altro.
  • Pane e Uova hanno una relazione simile, indicando un modello di acquisto comune.
  • Birra e Pane mostrano la confidenza più alta (1,0), cioè in tutte le transazioni in cui compare la Birra, il Pane è sempre presente.

Applicazioni dell'algoritmo Apriori

Le aziende applicano ampiamente l'algoritmo Apriori per risolvere vari problemi. Scopriamoli qui sotto. 

Market basket analysis

I retailer usano Apriori per analizzare i modelli di acquisto, aiutandoli a disporre i prodotti per favorire acquisti combinati. Per esempio, se pane e burro compaiono spesso insieme, un negozio può posizionarli vicini per aumentare le vendite. Scopri di più sulla market basket analysis con il nostro tutorial sulla market basket analysis in R

Sistemi di raccomandazione

Le piattaforme online usano Apriori per suggerire prodotti in base agli acquisti precedenti. Se un cliente compra un laptop, tra le raccomandazioni potrebbero esserci accessori come un mouse o una tastiera.

Rilevamento delle anomalie

Nel rilevamento delle frodi, Apriori individua transazioni insolite confrontandole con i modelli attesi. Se una transazione con carta di credito devia in modo significativo dalle regole stabilite, può attivare un controllo di sicurezza. Nel contesto dell'anomaly detection, pur non essendo usato direttamente per identificare le anomalie, può aiutare a rilevare combinazioni di articoli rare o inattese che deviano in modo significativo dai modelli di acquisto comuni.

Applicazioni dell'algoritmo Apriori

Vantaggi e limiti

Ci sono diversi vantaggi e svantaggi nell'uso dell'algoritmo Apriori, come vedrai qui sotto. 

Vantaggi

Apriori è semplice da comprendere ed efficace nel rilevare itemset frequenti in dataset strutturati. È ampiamente usato in settori come retail e sanità per la scoperta di pattern.

Limiti

L'algoritmo diventa lento con dataset di grandi dimensioni perché genera molti itemset candidati. In presenza di grandi volumi di dati, metodi alternativi come FP-Growth offrono prestazioni migliori.

Vantaggi e limiti dell'algoritmo Apriori

Conclusione

Apriori resta una delle tecniche più utili per trovare associazioni nei dati. Nonostante le sfide computazionali, fornisce insight preziosi che le aziende usano per migliorare l'esperienza dei clienti e aumentare le vendite.

Pur non essendo l'approccio più veloce per dataset molto grandi, rimane uno strumento fondamentale nel data mining, nell'analytics e nel machine learning. Per saperne di più, esplora il machine learning con Python e avvicinati a diventare machine learning scientist con il nostro percorso di carriera Machine Learning Scientist in Python

Domande frequenti su Apriori

A cosa serve l'algoritmo Apriori?

L'algoritmo Apriori è usato nel data mining per identificare itemset frequenti e generare regole di associazione da grandi dataset. È comunemente applicato nella market basket analysis, nei sistemi di raccomandazione e nel rilevamento delle frodi.

Come funziona l'algoritmo Apriori?

Apriori funziona identificando prima gli articoli individuali che ricorrono frequentemente in un dataset e poi generando itemset più grandi basati su questi. Esegue la potatura degli itemset che non soddisfano una soglia minima di supporto e deriva regole di associazione usando le metriche di confidenza e lift.

Cosa sono supporto, confidenza e lift in Apriori?

Supporto: la frequenza di un itemset nel dataset.

Confidenza: la probabilità che un articolo compaia in una transazione dato la presenza di un altro articolo.

Lift: la forza dell'associazione, che indica se gli articoli vengono acquistati insieme più spesso del previsto.

Quali sono i limiti dell'algoritmo Apriori?

Apriori può essere lento con dataset di grandi dimensioni a causa dell'elevato numero di itemset candidati generati. Ha inoltre difficoltà con dataset densi in cui molti articoli compaiono spesso insieme. L'algoritmo FP-Growth è un'alternativa che in tali casi offre prestazioni migliori.

Qual è la differenza tra Apriori e FP-Growth?

Apriori genera itemset candidati e ne verifica iterativamente il supporto, risultando computazionalmente costoso. FP-Growth, invece, utilizza una struttura ad albero per ridurre il numero di itemset candidati, rendendolo più veloce per dataset di grandi dimensioni.

Argomenti

I migliori corsi DataCamp

Programma

Fondamenti di apprendimento automatico in Python

16 h
Impara l'arte dell'apprendimento automatico e diventa un maestro nella predizione, nel riconoscimento dei modelli e negli albori dell'apprendimento profondo e dell'apprendimento per rinforzo.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro