Algoritmi di apprendimento delle regole: induzione delle regole in Machine Learning
L’apprendimento delle regole, noto anche come Induzione delle Regole, è una tecnica di apprendimento automatico che mira a estrarre conoscenze esplicite da un dataset sotto forma di regole IF-THEN. Questo approccio è particolarmente utile per costruire modelli interpretabili, fornendo regole chiare che descrivono i dati e possono essere comprese dagli esseri umani.
In questo articolo, esploreremo i concetti fondamentali dell’induzione delle regole, i principali algoritmi utilizzati e le loro applicazioni pratiche.
Cos’è l’induzione delle regole?
L’induzione delle regole è un metodo che genera regole decisionali a partire da un dataset, permettendo di formulare conoscenze esplicite e interpretabili. Le regole sono tipicamente rappresentate nella forma:
Esempio:
Questa rappresentazione è utile in settori come la finanza, la medicina e il marketing, dove è essenziale comprendere il processo decisionale del modello.
Tipologie di apprendimento basato su regole
L’apprendimento delle regole può essere suddiviso in due categorie principali:
- Apprendimento Supervisionato:
- L’obiettivo è estrarre regole che classificano istanze in diverse classi.
- Viene utilizzato in algoritmi di classification rule induction (es. RIPPER, CN2).
- Apprendimento Non Supervisionato:
- Utilizzato per scoprire associazioni tra attributi senza una variabile target.
- Esempio: Regole di associazione (es. Apriori, FP-Growth).
Principali algoritmi di apprendimento delle regole
1. RIPPER (Repeated Incremental Pruning to Produce Error Reduction)
RIPPER è un algoritmo di induzione di regole per problemi di classificazione che segue un approccio greedy (ossia, cerca di ottimizzare le decisioni passo dopo passo).
Come funziona:
- Genera regole usando un processo di divide et impera.
- Pruna le regole per ridurre l’overfitting.
- Valida il modello su dati di test.
Vantaggi:
- Funziona bene su dataset sbilanciati.
- Regole interpretabili.
Svantaggi:
- Non sempre ottimale in termini di accuratezza rispetto agli alberi decisionali.
2. CN2 Algorithm
CN2 è un altro algoritmo di apprendimento supervisionato basato su regole, progettato per affrontare il problema del rumore nei dati.
Come funziona:
- Scandisce il dataset alla ricerca di pattern significativi.
- Genera regole usando una misura di qualità (es. entropia o probabilità condizionale).
- Affina le regole per migliorarne l’accuratezza.
Vantaggi:
- Buona gestione del rumore.
- Maggiore robustezza rispetto a RIPPER.
Svantaggi:
- Può essere più lento rispetto ad altri metodi.
3. Algoritmo Apriori (Regole di Associazione)
L’algoritmo Apriori è uno dei metodi più utilizzati per scoprire regole di associazione nei dati.
Come funziona:
- Identifica gli elementi più frequenti in un dataset.
- Genera regole della forma SE X ALLORA Y, con un valore di supporto e confidenza.
Esempio di regola in un supermercato:
Vantaggi:
- Molto utile per l’analisi di mercato e raccomandazioni.
Svantaggi:
- Lento su dataset molto grandi.
- Può generare troppe regole irrilevanti.
4. FP-Growth (Frequent Pattern Growth)
FP-Growth è una variante più efficiente di Apriori, che evita la generazione esplicita di tutti i sottoinsiemi possibili.
Vantaggi:
- Più veloce di Apriori su dataset ampi.
Svantaggi:
- Maggiore complessità nell’implementazione.
Applicazioni degli algoritmi di apprendimento delle regole
1. Finanza e Credito
- Generazione di regole per approvazione di prestiti.
- Identificazione di transazioni fraudolente.
2. Medicina e Diagnosi
- Classificazione di malattie basata su sintomi.
- Generazione di regole per suggerire trattamenti.
3. Marketing e Raccomandazioni
- Analisi del comportamento dei clienti (Market Basket Analysis).
- Suggerimenti di prodotti basati su acquisti passati.
4. Sicurezza e Rilevamento delle Frodi
- Identificazione di schemi sospetti nelle transazioni finanziarie.
Esempio pratico in Python: induzione delle regole con RIPPER
Per implementare l’induzione delle regole in Python, possiamo usare la libreria wittgenstein, che implementa RIPPER.
L’implementazione di seguito rappresentata da per scontato che tu abbia installato la libreria wittgenstein
pip install wittgenstein
Codice Python per Induzione delle Regole con RIPPER:
import pandas as pd
import wittgenstein as lw
# Creazione di un dataset di esempio
data = {
'Età': ['Giovane', 'Giovane', 'Adulta', 'Adulta', 'Anziana', 'Anziana'],
'Reddito': ['Basso', 'Alto', 'Basso', 'Alto', 'Basso', 'Alto'],
'Credito_Adeguato': ['No', 'Si', 'Si', 'Si', 'No', 'Si'],
'Approvato': ['No', 'Si', 'Si', 'Si', 'No', 'Si']
}
# Creazione del DataFrame
df = pd.DataFrame(data)
# Separazione delle caratteristiche (X) e della variabile target (y)
X = df.drop(columns=['Approvato'])
y = df['Approvato']
# Unione in un unico dataset per il modello
df['Approvato'] = y
# Creazione e addestramento del modello RIPPER
model = lw.RIPPER()
model.fit(df, class_feat='Approvato')
# Stampa delle regole generate
print("Regole apprese dal modello RIPPER:")
print(model.ruleset_)
Risultato atteso:
Esempio di regole generate dal modello:
SE (Reddito = Alto) ALLORA Approvato = Si SE (Età = Adulta) E (Credito_Adeguato = Si) ALLORA Approvato = Si SE (Età = Anziana) E (Credito_Adeguato = No) ALLORA Approvato = No
Queste regole possono essere utilizzate per prendere decisioni trasparenti basate su dati storici.
Conclusione
L’apprendimento delle regole è una tecnica potente e interpretabile che trova applicazioni in diversi settori. Algoritmi come RIPPER, CN2, Apriori e FP-Growth consentono di estrarre conoscenze strutturate dai dati e di prendere decisioni basate su regole comprensibili.
L’uso di questi metodi permette di bilanciare accuratezza e interpretabilità, rendendoli ideali per applicazioni in cui la trasparenza è essenziale.








