Analisi di Telco Cliente Churn Dataset

Va bene! Facciamolo..

Quindi, ho preparato questa storia per familiarizzare un po ‘ di più con i dati di squilibrio.

Il set di dati è disponibile nel seguente link:

Quindi tuffiamoci a destra in esso.

L’obiettivo finale sarà valutare diversi modelli per prevedere se un cliente sarà “Churn” o meno.

Per non familiare churn è più comunemente espresso come la percentuale (o il numero) di abbonati al servizio che interrompono i loro abbonamenti entro un determinato periodo di tempo.

Iniziamo facendo il nostro EDA (Exploratory Data Analysis)

I tipi di dati sembravano essere ok, con l’eccezione di Senior Citizen che dovrebbe essere un fattore troppo. (Nel dubbio consultare il set di dati di collegamento e la biblioteca)

visualizzare il riepilogo dei dati

Ci sono alcuni NaN in TotalCharges colonna, quindi dovremo scavare un po ‘ più in quelle righe

Dal momento che il numero di righe con i valori NaN sono molto piccole (1,5% dei dati), e tenendo in considerazione che tutti sono churn= “NO”, che è sovrarappresentato nei dati. Dobbiamo solo eliminare quelle righe i dati di lavoro,

permette di visualizzare l’barplots per la distribuzione dei categorico colonne

proviamo Ora a tracciare per la variabile dipendente

Come accennato prima, si può vedere ora lo squilibrio dei dati per la variabile dipendente. Dovremo occuparcene più tardi prima di modellare.

Ora tracciamo i boxplots per le variabili quantitative.

Il boxplot non mostra valori anomali nella distribuzione.

Ora vediamo la correlazione per le variabili quantitative:

C’è un’alta correlazione positiva tra le spese totali e le spese mensili e le spese totali e il possesso.

proviamo Ora a tracciare alcune istogrammi considerando la varianza di funzionalità per le caratteristiche quantitative:

L’immagine sopra mostra che il tasso di abbandono diminuisce il possesso aumentare, il che è una buona indicazione che la società è in grado di mantenere a lungo tempo i clienti.👏👏👏

Le trame di sopra ci dà alcuni suggerimenti di caratteristiche come:

  • a quanto Pare funzioni quali il Sesso, il Servizio Telefonico, e Più Righe e non hanno molto effetto sulla Varianza;
  • non sembra esserci molta differenza tra le funzioni di Streaming TV e Film in Streaming;
  • La sicurezza online, la protezione dei dispositivi e il supporto tecnico hanno istogrammi molto simili e relazione Churn x Non Churn.

Per approfondire ulteriormente un’analisi bi-variata che include le caratteristiche quantitative (possesso, spese mensili e spese totali) trasformiamole in fattori dividendo in 5 diversi livelli, per ciascuna funzionalità, in base al 20 ° percentile.

Come notato prima, la percentuale di varianza diminuisce con il numero di mesi in cui si indica che i vecchi clienti sono meno difficili da mantenere

Questo grafico a barre indicano che maggiore è la totale spese effettuate per cliente c’è una diminuzione della percentuale di varianza. Il che ha senso se si pensa che lungo tempo, i clienti hanno un più elevato “Costo Totale” e, come abbiamo visto prima, molto tempo, i clienti hanno una minore percentuale di varianza

Questo barplot è un po ‘ più intuitivo e mostra che la maggiore delle spese mensili tendono ad avere una maggiore percentuale di varianza.

Modellazione

Ora che abbiamo una migliore comprensione dei dati, iniziamo a prepararci per la modellazione al fine di prevedere il futuro churn dei clienti.

dividiamo questo processo in fasi, secondo l’immediato problema che stiamo affrontando:

  1. Affrontare lo Squilibrio
  2. Definire gli algoritmi e le Metriche
  3. Prova i nostri Algoritmi
  4. Trattare con la funzionalità di selezione
  5. risultati Finali

Trattare con lo Squilibrio ⚖️

Come abbiamo visto prima che la nostra variabile dipendente non è in equilibrio. Abbiamo molte alternative per affrontare questo problema:

  • Sovracampionamento
  • Sottocampionamento
  • Utilizzando costi di peso diversi
  • ecc.

Qui proveremo sotto, over-sampling e SMOTE tecnica.

al di Sotto di Esempio il Bilanciamento dei dati

Su campionamento di bilanciamento dei dati

Definire gli Algoritmi e le Metriche

Bene, visto che abbiamo a che fare con un problema di classificazione, cioè alla fine della giornata possiamo solo prevedere ” Churn “o” not Churn”, quindi dobbiamo scegliere un algoritmo sotto questo specifico”regno”. Che ci lasciano con alcune opzioni come:

  • Naive-Bayes
  • Regressione logistica
  • Alberi decisionali (o Foresta casuale)
  • SVM
  • GBM

Per scegliere la metrica dobbiamo capire il problema. Ad esempio,

  • “I falsi positivi o i falsi negativi hanno implicazioni più dannose?”🤔

Nel nostro caso non sembrano esserci pesi diversi per falsi positivi o falsi negativi, quindi useremo la precisione come metrica di confronto.

Testando i nostri algoritmi

Distribuiremo 5 algoritmi (Naive-Bayes, Logistic regression, Random Forest, SVM e LightGBM). Useremo 10-cross fold validation ed eseguiremo ogni algoritmo 10 volte e calcoleremo i risultati.

Ripeteremo questa metodologia per tutti e 3 i dati (bilanciati utilizzando sottocampionamento, sovracampionamento e SMOTE).

Con i risultati di algoritmi di costruire una singola Precisione Dataframe

Precisione Dataframe Struttura

ora, Noi di progetto boxplot per ogni Algoritmo e ogni equilibrato dati

Boxplot della precisione per il 10-CV ripetuto 10 volte

L’immagine sopra mostra che sia la foresta casuale per i dati bilanciati Over-sample che per i dati bilanciati SMOTE hanno presentato i migliori risultati : precisione 87%.

Gestione della selezione delle funzionalità

Ora che abbiamo gli algoritmi e i dati bilanciati che hanno mostrato i migliori risultati, proviamo a migliorare la precisione o semplificare l’algoritmo facendo la selezione delle funzionalità.

Quindi scelgo di lavorare con i dati del saldo SMOTE.

usiamo varImp funzione per vedere le caratteristiche che meglio rappresentano la varianza nella casuale foresta algoritmo

I primi quattro caratteristiche sembrava abbastanza intuitivo considerando le visualizzazioni che abbiamo visto nel corso EDA.

Quindi creeremo altri 2 dataframe, uno con le prime 4 funzionalità e uno con tutte le funzionalità principali fino a Sreaming TV.

Ora eseguiamo la foresta casuale con 10 cv ripetuto 10 volte.

Ora creiamo un nuovo boxplot con la distribuzione di precisione per ciascuno dei 3 dataframe.

Quindi i risultati per mid_features e dati completi sembrano essere migliori. Proviamo se sono significativamente diversi

Quindi il test statistico rifiuta l’ipotesi nulla, quindi la distribuzione di accuratezza da full_data e da mid_features_data è significativamente diversa.

Quindi finiamo questa selezione di funzionalità mantenendo effettivamente tutte le colonne. Poiché c’è ancora una significativa perdita di precisione rimuovendo le caratteristiche.

Risultati finali

Ricapitoliamo il nostro modello di previsione finale. Abbiamo ottenuto una precisione media dell ‘ 87%, usando SMOTE come modo per bilanciare i dati ed eseguendo ripetute convalide incrociate 10 per 10 volte, usando Random Forest come nostro algoritmo.

Inoltre, abbiamo catturato alcuni aspetti interessanti dai nostri dati dei clienti, come ad esempio:

  • La società sembra fare ” ok ” con il mantenimento dei clienti di vecchia data. L’energia deve essere più focalizzata nell’attuazione delle strategie per i nuovi clienti.
  • Tipo mese per mese di contratto hanno maggiore tasso di abbandono anche per le alte spese mensili, rispetto ad altri tipi di contratti.

  • Le fibre ottiche hanno tassi di zangolatura più elevati rispetto a DSL per i clienti che hanno un servizio Internet.

  • Mentre le fibre ottiche, hanno tassi di zangolatura più elevati, offrono anche i conteggi di carica totali più elevati. Pertanto, una migliore indagine sul perché i clienti non sono soddisfatti del servizio di fibra ottica è importante.

Sì, ce l’abbiamo fatta! Spero che ti sia piaciuto il viaggio e sono felice di sentire i tuoi pensieri.

Passi futuri

Come promemoria ci sono ancora molte altre cose che potresti fare in questo set di dati, come ad esempio:

  • Prova nuovi algoritmi
  • Ottimizza alcuni parametri di tunning per vedere se è possibile migliorare la precisione.

Grazie ancora!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.