12 Δεκεμβρίου 2017

Πώς να προβλέψετε τον κίνδυνο απώλειας του πελάτη (Churn): Πότε ακυρώνουν την συνδρομή τους οι παραλήπτες των email;

Μπορούμε να προβλέψουμε πότε θα χάσουμε έναν πελάτη; Η πρόβλεψη αυτής της πιθανότητας είναι ένα πολύτιμο εργαλείο για κάθε έμπορο. Η ιδέα της πρόβλεψης στον τομέα του ηλεκτρονικού μάρκετινγκ δεν είναι νέα. Ο στόχος είναι να διαμορφώσει μια πιο αποτελεσματική στρατηγική από την μοντελοποίηση της συμπεριφοράς των πελατών ή των καταναλωτών με βάση τα ιστορικά δεδομένα, τα οποία θα επεξεργάζονται με την βοήθεια στατιστικών αλγορίθμων αλλά και μηχανικής μάθησης.

Στο μάρκετινγκ ηλεκτρονικού ταχυδρομείου, ο έμπορος μπορεί να ενδιαφέρεται περισσότερο για την αξιολόγηση της απόδοσης προηγούμενων εκστρατειών αλλά και να προβλέπει το αποτέλεσμα των νέων. Μια συνηθισμένη μέτρηση για να επιτευχθεί αυτό, είναι η μέτρηση της τάσης των παραληπτών να απεγγραφούν από τις ενημερώσεις της εταιρείας.

Στο παρακάτω παράδειγμα, θα προσπαθήσουμε να χτίσουμε ένα μοντέλο για την ταξινόμηση των συνδρομητών e-mail σε δύο κατηγορίες, αυτές των συνδρομητών που σκοπεύουν να απεγγραφούν και αυτών που θα συνεχίσουν να λαμβάνουν ενημερώσεις, από ιστορικά δεδομένα μιας καμπάνιας της εταιρείας Mailchimp.

Data Collection - Συλλογή των δεδομένων

Αρχικά, έπρεπε να έχουμε πρόσβαση στην βάση δεδομένων της εταιρείας και για αυτό τον λόγο χρησιμοποιήσαμε την Blendo, μια πλατφόρμα διαχείρισης δεδομένων, με την οποία φορτώσαμε τα δεδομένα από την Mailchimp σε μια PostgreSQL βάση δεδομένων.

Από τα δεδομένα που παρέχει η Mailchimp επιλέξαμε τα εξής:

  • Τη λίστα των μελών της: Η συγκεκριμένη εταιρεία οργανώνει τα μέλη της σε λίστες. Κάθε λίστα περιέχει πληροφορίες σχετικά με την τοποθεσία των δικαιούχων (γεωγραφικό πλάτος και μήκος, GMT, ζώνη ώρας, κωδικός χώρας), την ηλεκτρονική διεύθυνσή του και τους πελάτες που είναι σε χρήση, στατιστικά σχετικά με το πόσοι είδαν το email και πόσοι όχι αλλά και την τρέχουσα κατάσταση της συνδρομής του (διαγραμμένος, εγγεγραμμένος ή σε αναμονή).
  • Δραστηριότητα των email: Μια σειρά από εκθέσεις που περιέχουν όλες τις ενέργειες που εκτελούν οι χρήστες, όπως το άνοιγμα ενός email ή την χρονική στιγμή που έκανε υπερσύνδεση μαζί με την χρονική στιγμή. Αυτό μπορούμε να πούμε ότι είναι μια χρονολογική σειρά που περιέχει πληροφορίες σχετικά με το πώς ο παραλήπτης του ηλεκτρονικού ταχυδρομείου αλληλοεπιδρά με τις εκστρατείες του μάρκετινγκ του ηλεκτρονικού ταχυδρομείου με την πάροδο του χρόνου.

Με τα δεδομένα μας να είναι αποθηκευμένα σε μια βάση δεδομένων όπως η PostgreSQL, μπορούμε να προχωρήσουμε και να εντάξουμε τους δύο παραπάνω πίνακες.

Exploratory Data Analysis - Διερευνητική ανάλυση δεδομένων

Η διερευνητική ανάλυση των δεδομένων είναι μια οπτική προσέγγιση της έρευνας των δεδομένων ώστε να μεγιστοποιήσουμε τις πληροφορίες που μπορούμε να λάβουμε από αυτά, εφόσον αποκαλύπτουν την ελλοχεύουσα δομή και εμείς με την σειρά μας δημιουργούμε κατάλληλα τεστ υποθέσεων.

Τα εργαλεία που θα χρησιμοποιήσουμε περιλαμβάνουν τα ακόλουθα:

  • H λεγόμενη Five-Number Summary
  • Ιστογράμματα
  • Ζεύγη διαγραμμάτων ή pairwise scatterplots

Πριν ξεκινήσουμε να εξερευνούμε τα δεδομένα μας, ορίζουμε την μεταβλητή churn ως μεταβλητή εξόδου με τις ακόλουθες δυνατές τιμές και την ερμηνεία τους:

  • 0 για εκείνους τους χρήστες που δεν θα αποσυνδεθούν.
  • 1 για εκείνους που σκοπεύουν να διακόψουν την συνδρομή τους ή ήδη έχουν διαγραφεί για οποιοδήποτε λόγο. Για παράδειγμα αν κάποιος μπλοκάρει τα email ή τα ακυρώνει, αυτόματα η εταιρεία τον τοποθετεί στην λίστα.

Φυσικά δεν περιμένουμε όλες οι μεταβλητές να έχουν προβλεπτική ικανότητα, αλλά μέρος της διερευνητικής φάσης είναι να καταλάβουμε ποιες από αυτές είναι χρήσιμες ώστε να μας βοηθήσουν με την σειρά τους να επιλύσουμε το πρόβλημα. Οπότε ας ξεκινήσουμε την διαδικασία!

 


Predicting Churn: Exploratory Data Analysis

 

Ρίχνοντας μια ματιά στα αποτελέσματα του παραπάνω πίνακα μπορούμε να συμπεράνουμε τα εξής:

  • Όλοι οι χρήστες έχουν VIP status ίσο με 0. Αυτό σημαίνει ότι η μεταβλητή αυτή είναι άχρηστη για την ανάλυσή μας και ως εκ τούτου μπορεί να αποκλειστεί εφόσον δεν μας παρέχει πληροφορία.
  • Πάνω από το 75% έχει μέσο αριθμό κλικ ίσο με 0 (βλέπε 3rd. Quantile: 0). Δεδομένου ότι εκείνοι που αποσυνδέονται είναι σημαντικά λιγότεροι, μπορούμε να υποψιαστούμε ότι ακόμη και για τους αδιάφορους παραλήπτες, η μέτρηση των κλικ δεν είναι καλή ένδειξη για το αν κάποιος σκοπεύει να αποχωρήσει από τις ενημερώσεις της εταιρείας.
  • Η κατανομή των δύο μεταβλητών, locationlatitude και locationlongtidute δείχνει ότι οι δικαιούχοι δεν έχουν εξαπλωθεί σε όλον τον κόσμο. Στην πραγματικότητα, η πλειοψηφία βρίσκεται στο βόρειο ημισφαίριο.

 


Predicting Churn: Exploratory Data Analysis

 

Ο χάρτης επιβεβαιώνει την υπόθεση ότι οι δικαιούχοι δεν κατανέμονται σε όλο τον κόσμο. Οι πράσινες κουκίδες δείχνουν εκείνους που κατά πάσα πιθανότητα θα παραμείνουν εγγεγραμμένοι ενώ οι μπλε αυτούς που δεν θα παραμείνουν.

 


Predicting Churn: Exploratory Data Analysis - email Lists Histogram Lists Histogram

 

Ένα ενδιαφέρον συμπέρασμα εξήχθη σχετικά με το αν η λίστα που ανήκει ο παραλήπτης, επηρεάζει την τάση του να θέλει να σταματήσει να λαμβάνει email. Φαίνεται, επειδή τα μέλη που είναι στην αριστερή πλευρά του διαγράμματος να τείνουν πιο εύκολα να σταματήσουν να δέχονται ενημερωτικά email.

Αυτό μπορεί να είναι συνέπεια της λανθασμένης κατάτμησης των υποψήφιων με αποτέλεσμα να αποστέλλεται λανθασμένη πληροφορία σε κάθε άτομο.

 


Predicting Churn: Exploratory Data Analysis - Maillist Member Rating Scatterplot Member Rating Scatterplot

 

Όσον αφορά το member_rating, σύμφωνα με την Mailchimp, οι νέοι συνδρομητές ξεκινούν με 2 αστέρια όταν προστίθενται σε μια λίστα. Η βαθμολογία πέφτει ανάλογα τις αναπηδήσεις των πελατών (αναφέρθηκαν νωρίτερα) και τις καταγγελίες για spam. Με βάση αυτό κανείς δεν μπορεί να αναρωτιέται πλέον γιατί η Mailchimp έχει διακόψει την συνδρομή πολλών συνδρομητών.

Από την άλλη πλευρά, θετικά αποτελέσματα εκχωρούνται σε αυτούς που δείχνουν να είναι πιο ενεργοί. Σύμφωνα με τα έγγραφα της εταιρείας, η συμμετοχή των συνδρομητών μετριέται με την χρησιμοποίηση των δεδομένων που μετρούν τα κλικ που έκαναν οι χρήστες στα email που τους έστειλαν οι έμποροι. Το ενδιαφέρον γεγονός είναι ότι από τους συνδρομητές που σκοπεύουν να απεγγραφούν, ο αριθμός εκείνων που έχουν βαθμολογία 2 είναι σχεδόν ίσοι με αυτούς που έχουν βαθμολογία ίση με 3, σε αντίθεση με τους δικαιούχους οι οποίοι σκοπεύουν να παραμείνουν, οι οποίοι οι περισσότεροι έχουν βαθμολογία ίση με 2.

Αυτό, μας οδηγεί στο συμπέρασμα ότι η εκστρατεία των email πιθανότατα δεν κατάφερε να διατηρήσει το ενδιαφέρον των αποδεκτών, οι οποίοι μόνο κατά ένα μικρό διάστημα φάνηκε να ασχολήθηκαν

 


Predicting Churn: Exploratory Data Analysis - Correlation Plot Correlation Plot of Churn predictor variables

 

Άλλο ένα χρήσιμο διάγραμμα είναι το διάγραμμα συσχέτισης, το οποίο μας δίνει πληροφορία για το αν υπάρχει γραμμική σχέση ή όχι ανάμεσα στις μεταβλητές. Τα διαφορετικά χρώματα δείχνουν αν υπάρχει θετική ή αρνητική συσχέτιση. Από το παραπάνω διάγραμμα μπορούμε να συμπεράνουμε ότι η μεταβλητή churn έχει μια σημαντική γραμμική συσχέτιση με την μεταβλητή stats_avg_open_rate, ενώ με την μεταβλητή location_gmtoff η γραμμική σχέση είναι μηδενική (0).

Χαρακτηριστικό της μηχανικής - Feature Engineering

Η εφαρμοσμένη μηχανική συνδυάζει χαρακτηριστικά, τα οποία με ευρηματικό τρόπο προσπαθούν να αποσπάσουν λίγες παραπάνω πληροφορίες από τα δεδομένα. Είναι ίσως το πιο δύσκολο μέρος του προβλήματος της επιστήμης των δεδομένων, καθώς αυτό το πρόβλημα εξαρτάται από το πόσο καλά κατανοούμε τα δεδομένα.

Μετατροπή της ζώνης ώρας

Όλα τα δεδομένα μας περιέχουν στήλες όπου έχουν την ώρα που εκφράζεται σε UTC. Σε αυτό το σημείο, θα προσπαθήσουμε να μετατρέψουμε κάθε χρονική στιγμή στην σωστή ζώνη ώρας. Με αυτόν τον τρόπο αποκομίζουμε σημαντική πληροφορία για τους παραλήπτες μας.

Ανίχνευση προσωπικών ή επιχειρηματικών email

Σε αυτό το σημείο, προσπαθήσαμε να κατατάξουμε τα μηνύματα σε επαγγελματικά ή προσωπικά. Η εφαρμογή αυτή βασίζεται σε μια λίστα με τους πιο συχνούς παρόχους υπηρεσιών του ηλεκτρονικού ταχυδρομείου. Εάν ο πάροχος υπηρεσιών ενός δικαιούχου ανήκει σε αυτή τη λίστα, τότε το email του καταχωρείται ως προσωπικό, αλλιώς ως επαγγελματικό. H εφαρμογή είναι απλοϊκή αλλά μπορεί να γίνει μια καλή αρχή μέσο αυτού. Τα αποτελέσματα αυτής της κατάταξης είναι αποθηκευμένα στην μεταβλητή personalMail.

Συγκεντρωτικά πεδία δράσης ή Aggregated action fields

Επιπλέον, θα υπολογίσουμε μια σειρά συγκεντρωτικών πεδίων για να συμπληρώσουν τα δεδομένα μας, τα οποία είναι τα εξής:

  • Το σύνολο των φορών που ανοίγει ένας παραλήπτης ένα email
  • Ο συνολικός αριθμός που ο παραλήπτης πάτησε υπερσύνδεση σε κάποιο link του email
  • Ο συνολικός αριθμός των email που επιστράφηκαν

Μετασχηματισμοί δεδομένων - Data transformation

Αντιμετώπιση των τιμών που λείπουν - Dealing with missing values

‘Σκαλίζοντας’ κάθε μεταβλητή, διαπιστώσαμε ότι πολλές από αυτές έχουν πολλές τιμές που λείπουν (NAs). Αυτές οι τιμές στην R αναφέρονται ως ‘Not Available’, όπου κατά κάποιο τρόπο είναι ίδιο με το NULL που αναφέρεται σε άλλες γλώσσες προγραμματισμού.

Το να υπάρχουν missing values στο σετ των δεδομένων είναι πολύ συχνό και υπάρχουν πολλοί τρόποι ώστε να δημιουργηθούν. Για παράδειγμα, όταν ένας παραλήπτης αφήνει ένα πεδίο του προφίλ του κενό, τότε αμέσως δημιουργείται μια ελλείπουσα τιμή. Αν και πολύ συχνές, οι τιμές που λείπουν μπορούν να προκαλέσουν μεγάλα προβλήματα κατά καιρούς. Για να εξαλείψουμε το πρόβλημα, μπορούμε να εκτιμήσουμε τις τιμές που λείπουν ή να διαγράψουμε την γραμμή ή την στήλη που έχει πολλά NAs.

Στην δική μας περίπτωση, επιλέξαμε να διαγράψουμε τις στήλες που είχαν ποσοστό NAs πάνω από 50% και έτσι δεν χρειάστηκε να τα εκτιμήσουμε.

Διάσπαση του σετ δεδομένων σε training και test

Είναι σημαντικό να μπορέσουμε να αξιολογήσουμε την ποιότητα ενός μοντέλου πρόβλεψης, προσομοιώνοντας την απόδοσή του σε ένα άγνωστο σετ δεδομένων. Αυτό μπορεί να γίνει εάν διασπάσουμε τα αρχικά μας δεδομένα. Στην δική μας περίπτωση επιλέξαμε το 25% προκειμένου να αξιολογήσουμε το μοντέλο μας με την μέθοδο out of sample.

Μοντελοποίηση με την μέθοδο Random Forest

Όπως αναφέραμε παραπάνω, η μεταβλητή churn είναι δυαδική, παίρνει την τιμή 1 όταν ο παραλήπτης σκοπεύει να φύγει και 0 όταν συμβαίνει το αντίθετο.

Η μέθοδος που χρησιμοποιήσαμε για την μοντελοποίηση μας λέγεται Random Forest, το οποίο καταδεικνύει ορισμένα πλεονεκτήματα σε σχέση με άλλους αλγορίθμους, συμπεριλαμβανομένου και την αντίσταση σε υπερπροσαρμογή (overfitting).

Η εξάρτηση μεταξύ των μεταβλητών δεν είναι πρόβλημα σε αυτήν την περίπτωση, αφού αυτή η μέθοδος διαχωρίζει τις μεταβλητές ώσπου να πετύχει την τέλεια διάσπαση. Η δύναμη της μεθόδου έγκειται στο ότι ένα δέντρο μπορεί να είναι η πληροφοριακό, ενώ πολλά δέντρα μαζί μπορούν να δώσουν μια καλύτερη πρόβλεψη για το μέλλον. Τα δέντρα φαίνονται παρακάτω:

 


Predicting Churn: Modelling with Random Forest

 

Τα διαφορετικά κριτήρια αναφέρονται σε διαφορετικές μεταβλητές του συνόλου δεδομένων και σύμφωνα με τον αλγόριθμο, το κριτήριο 1 (criterion 1) είναι το πιο σημαντικό. Σε κάθε κόμβο, ο αλγόριθμος υπολογίζει ποια είναι η τέλεια διάσπαση και συνεχίζει την εκτέλεση. Το κριτήριο για την επιλογή του τέλειου διαχωρισμού είναι η μέγιστη μείωση του κριτηρίου Gini.

Για να γίνουν τα παραπάνω, ο αλγόριθμος κάνει τα εξής:

Bagging: Ο αλγόριθμος επιλέγει ένα τυχαίο σύνολο εκπαίδευσης έτσι ώστε κάθε δέντρο να εκπαιδεύεται με διαφορετικό τρόπο.

Διαφορετικές μεταβλητές: Για την κατασκευή του κάθε δέντρου, ο αλγόριθμος χρησιμοποιεί διαφορετικό υποσύνολο των διαθέσιμων μεταβλητών κάθε φορά (ίση με την τετραγωνική ρίζα αυτών). Με αυτόν τον τρόπο, τα ισχυρά χαρακτηριστικά μιας μεταβλητής δεν κυριαρχούν σε όλα τα δέντρα και μπορούμε να δούμε κι άλλες χρήσιμες μεταβλητές.

Στην περίπτωσή μας, το σετ δεδομένων δεν ήταν πραγματικά μεγάλο και γιαυτό τον λόγο επιλέξαμε να δημιουργήσει ο αλγόριθμος 2000 δέντρα, έναν αρκετά μεγάλο αριθμό. Στην περίπτωση που υπάρχουν μεγαλύτερα σετ δεδομένων, οι υπολογιστικοί περιορισμοί θα μας αναγκάσουν να μειώσουμε τον αριθμό των δέντρων ή τουλάχιστον θα συμβεί στο αρχικό κομμάτι της έρευνας.

 


Predicting Churn: Modelling with Random Forest - Mean Decrease Gini Modelling with Random Forest - Mean Decrease Gini

 

Για την αξιολόγηση της προβλεπτικής ικανότητας των μεταβλητών μας, χρησιμοποιήσαμε το μέτρο Mean Decrease Gini. Κάθε φορά που πραγματοποιείται μια διάσπαση, το κριτήριο Gini είναι μικρότερο για τους δύο κόμβους σε σχέση με τον κεντρικό κόμβο. Συνοψίζοντας την μείωση του Gini για κάθε μεταβλητή από όλα τα δέντρα, παίρνουμε τις μεταβλητές με την σειρά σπουδαιότητας:

  1. last_changed
  2. stats_avg_open_rate
  3. member_rating
  4. totalopens
  5. list_id

Μοντέλο αξιολόγησης - Model Evaluation

Μετά την δημιουργία ενός μοντέλου, είναι σημαντικό να αξιολογήσουμε πόσο καλά συμπεριφέρεται το μοντέλο μας. Αυτή η εποικοδομητική ανάδραση είναι η βασική αρχή ώστε να χτίσουμε ένα σωστό προγνωστικό μοντέλο. Ακόμη, με βάση την έξοδο διάφορων μετρήσεων απόδοσης, έχουμε την δυνατότητα να βελτιώσουμε το μοντέλο μας και να επιτύχουμε τα επιθυμητά αποτελέσματα.

Γενικότερα, δεν υπάρχουν τέλεια μέτρα ώστε να κρίνουν εξ ολοκλήρου το μοντέλο, αλλά παρόλα αυτά μπορούν να αξιολογήσουν διάφορες πλευρές αυτού. Παρακάτω παρουσιάζουμε τα πιο κοινά μέτρα αξιολόγησης ενός προβλεπτικού μοντέλου.

Ακρίβεια - Accuracy

H ακρίβεια είναι ένα από τα πιο απλά μέτρα, καθώς αντιπροσωπεύει το ποσοστό των σωστών κατατάξεων που έγιναν από τις προβλέψεις. Βέβαια, μεγάλη πιθανότητα δεν συνεπάγεται με καλή προβλεπτική ικανότητα και γιαυτό τον λόγο θα υπολογίσουμε κι άλλα μέτρα.

Ανάκληση ή ευαισθησία - Recall or Sensitivity

H ανάκληση που προέρχεται από το μοντέλο μας είναι ίση με 86%. Δηλαδή, το ποσοστό των θετικά καταταγμένων τιμών οι οποίες είναι πραγματικά θετικές είναι 86%. Η ακρίβεια κυμαίνεται από το 0-1, οπότε το 0.86 είναι ένα πολύ καλό αποτέλεσμα.

Ακρίβεια - Precision

H ακρίβεια που προέρχεται από το μοντέλο μας είναι 96%. Η ακρίβεια, όπως και η ανάκληση είναι μέτρα συνάφειας και ισούνται με κλάσματα κάθε φορά τα οποία σχετίζονται. Με άλλα λόγια, precision είναι το ποσοστό των αληθινών εικασιών που σχετίζονται με τα πραγματικά αποτελέσματα.

F1 score

Το συγκεκριμένο μέτρο είναι λιγότερο έξυπνο σε σχέση με τα άλλα και είναι ο σταθμισμένος μέσος. Η καλύτερη τιμή του είναι το 1 και η χειρότερή του το 0. Στην περίπτωσή μας το F1 υπολογίστηκε και είναι ίσο με 0.91.

Περιοχή κάτω από την καμπύλη ROC (AUC)

Ίσως το λιγότερο έξυπνο μέτρο που βέβαια στην περίπτωσή μας έφτασε να είναι ίσο με 0.93. το μέτρο παίρνει τιμές από το 0-1.

Συμπέρασμα

Να ξέρεις αν ένας πελάτης σου είναι σε θέση να αποχωρήσει από την ομάδα είναι ένα σημαντικό εργαλείο για κάθε έμπορο. Αυτό είναι δυνατόν να επιτευχθεί με τα εργαλεία που παρέχει η επιστήμη των δεδομένων.

Αρχικά, θα πρέπει να έχετε στο μυαλό σας ότι οι προβλέψεις είναι μια επαναληπτική διαδικασία. Το μοντέλο σας δεν έχει σημασία πόσο καλό είναι αφού στην πορεία θα πρέπει να ενημερώνεται και να προσαρμόζεται στα νέα δεδομένα. Οπότε, αυτό που πρέπει να γίνει, είναι να χρησιμοποιείται αυτά τα μέτρα αξιολόγησης κάθε φορά που εισάγετε ένα νέο δεδομένο.

Επίσης, αν σε ένα σετ δεδομένων όλα πηγαίνουν πολύ καλά, υπάρχουν πιθανότητες να αποτύχει το μοντέλο μας στο νέο σετ δεδομένων, ακόμη και αν τα δεδομένα προέρχονται από την ίδια πηγή δεδομένων. Ο τρόπος με τα μέλη της λίστας ενδέχεται να διαφέρουν και αυτή η συμπεριφορά είναι κρυμμένη στα δεδομένα και πρόκειται να δυσκολέψει την προσπάθειά σας να προβλέψουμε το μέλλον.

Τέλος, δεν έχει σημασία πόσο καλά είναι τα δεδομένα σας, αφού πάντα θα είναι ελλιπή. Πάντα να προσπαθείτε να εμπλουτίζετε τα σετ των δεδομένων σας με νέες πηγές.

Πηγή: blog.blendo.co

 

markou eleni