Icon

KNIME_​project_​uni_​lorenzoCarboni

Obiettivo

Costruire un modello che preveda quali clienti di una compagnia telefonica abbandoneranno il servizio (Churn), basandosi sui loro dati contrattuali e di utilizzo — così l'azienda può intervenire in anticipo con azioni di retention.

I passaggi del workflow, in ordine...

1. Caricamento dati (CSV Reader + Excel Reader)

Due fonti separate sugli stessi 3333 clienti:

  • ContractData.csv: Account Length, Churn (il target), Int'l Plan, VMail Plan, State, Area Code, Phone

• • CallsData.xls: minuti/chiamate/costi (giorno, sera, notte, internazionali), CustServ Calls, Area Code, Phone

2. Joiner

Ho unito le due tabelle usando Area Code + Phone insieme come chiave, perché nessuna delle due colonne da sola identifica univocamente un cliente. Risultato: un'unica tabella con 3333 righe e 19 colonne.

3. Number to String

Ho convertito in stringa solo le colonne che sono vere categorie (Churn, Int'l Plan, VMail Plan), lasciando numeriche tutte le colonne di quantità reali (Day Mins, Account Length, CustServ Calls, ecc.), così l'albero decisionale può ancora fare confronti tipo "maggiore di" su di esse.

4. Table Partitioner

Ho diviso i dati in 80% training (2666 righe) / 20% test (667 righe), con campionamento stratificato su Churn — così la proporzione di clienti che abbandonano resta identica in entrambi i gruppi (il churn è un evento raro, solo il 14,5% del totale).

5. Decision Tree Learner

Ho addestrato l'albero sul training set, impostando Churn come Class column (colonna target) e Minimum records per node = 10 (per evitare che l'albero creasse regole troppo specifiche/overfitting). L'albero ha individuato Day Charge come variabile più predittiva, seguita da VMail Message ed Eve Charge: i clienti con bollette diurne alte che non usano la segreteria vocale sono i più a rischio.

6. Decision Tree Predictor

Ho applicato l'albero appena creato al test set (i 667 clienti mai visti durante l'addestramento), ottenendo per ognuno una previsione (Churn 0/1) e le relative probabilità (P Churn=0, P Churn=1).

7. Scorer

Ho confrontato le previsioni con i valori reali di Churn:

  • Accuratezza: 94,3%

  • Cohen's Kappa: 0,745 (buon accordo, al netto del caso)

•Matrice di confusione: 563 veri negativi, 66 veri positivi, 7 falsi positivi, 31 falsi negativi

8. ROC Curve

Ho valutato la capacità discriminante del modello a tutte le soglie possibili: AUC = 0,904, un risultato eccellente (molto sopra 0,5 = modello casuale).

Commento finale :Ho costruito una pipeline di data mining che unisce due dataset relativi agli stessi clienti (dati contrattuali + dati di utilizzo) tramite una chiave composta, addestra un albero decisionale per prevedere l'abbandono clienti (churn) con un adeguato split train/test stratificato, e ne valuta le prestazioni con accuratezza (94,3%), Cohen's Kappa (0,745) e curva ROC (AUC 0,904). Il modello individua nel costo delle chiamate diurne il principale fattore predittivo di abbandono.

CSV Reader
Local File System Connector
Excel Reader
Joiner
Decision Tree Learner
Number to String
ROC Curve
Table Partitioner
Decision Tree Predictor
Scorer

Nodes

Extensions

Links