Ανακάλυψη αιτιατού : Το λαλάρισμα του κόκορα προκαλεί την ανατολή του ήλιου;

10 γραμμές κώδικα Python για την αυτοματοποίηση της αιτιώδους ανακάλυψης που πρέπει να δείτε

Φωτογραφία Έγκορ Μίζνικ on Unsplash

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

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

Αυτό με οδήγησε να διαβάσω το "The Book of Why" των Judea Pearl και Dana Mackenzie (αρκετές φορές!) και μια άποψη που εκφράστηκε είναι ότι δεν μπορείτε να αναστρέψεις ένα διάγραμμα αιτίου, γνωστό και ως Directed Acyclic Graph (DAG), από τα δεδομένα μόνος.

Τα δεδομένα μπορούν να αποκαλύψουν συσχέτιση αλλά όχι αιτιότητα, οπότε πώς είναι δυνατόν να «ανακαλύψουμε» την αιτιότητα;

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

Πριν βουτήξουμε στην αιτιώδη ανακάλυψη, σκεφτείτε…

Εγγραφή στο Medium με τον σύνδεσμο παραπομπής μου (Θα λάβω ένα μέρος των τελών εάν εγγραφείτε χρησιμοποιώντας αυτόν τον σύνδεσμο).

Εγγραφή σε ένα δωρεάν e-mail κάθε φορά που δημοσιεύω μια νέα ιστορία.

Ρίχνοντας μια γρήγορη ματιά στα προηγούμενα άρθρα μου.

Λήψη του δωρεάν πλαισίου λήψης αποφάσεων βάσει στρατηγικών δεδομένων.

Επίσκεψη στον ιστότοπο της επιστήμης δεδομένων μου — Το Ιστολόγιο Δεδομένων.

Εξετάστε τις μετρήσεις τιμών από το ακόλουθο δυαδικό σύνολο δεδομένων…

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

Εικόνα από συγγραφέα

Μπορούμε να δούμε ότι ο κόκορας λαλά όταν ανατέλλει ο ήλιος στο 90.25% των παρατηρήσεων, αλλά πώς ξέρουμε αν η ανατολή του ήλιου κάνει τον κόκορα να λαλήσει ή το λάλημα του κόκορα κάνει τον ήλιο να ανατείλει με βάση τα δεδομένα και μόνο;

Ο αριθμός των περιπτώσεων όταν ο κόκορας λαλάει όταν ο ήλιος δεν ανατέλλει ή όταν ο ήλιος ανατέλλει αλλά ο κόκορας μένει σιωπηλός είναι σχεδόν πανομοιότυπος (50,000 έναντι 47,500), επομένως η αιτιολογική απάντηση δεν μπορεί να βρεθεί συγκρίνοντας τους σχετικούς όγκους δεδομένων.

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

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

Φωτογραφία Φεντερίκο Ρεσπίνι on Unsplash

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

Υπάρχει ένας αλγόριθμος που ονομάζεται «NOTEARS» που ισχυρίζεται ότι είναι σε θέση να εφαρμόσει αιτιώδη ανακάλυψη, οπότε ας τον δοκιμάσουμε και ας δούμε τι μπορεί να κάνει…

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

Εικόνα από συγγραφέα

Αυτό το σύνολο δεδομένων μοντελοποιεί τις σχέσεις αιτίας-αποτελέσματος στους εμβολιασμούς κατά της ευλογιάς. Ας εκτελέσουμε τον αλγόριθμο NOTEARS εναντίον του και ας δούμε τι μπορεί να κάνει…

[('Αντίδραση;', 'Εμβολιασμός;'),
('Ευλογιά;', 'Αντίδραση;'),
('Θάνατος;', 'Αντίδραση;'),
('Θάνατος;', 'Ευλογιά;')]

Εάν επρόκειτο να οπτικοποιήσουμε τα αποτελέσματα που παρήγαγε η NOTEARS θα έμοιαζε έτσι…

Εικόνα από συγγραφέα

Δεν φαίνεται πολύ καλό έτσι δεν είναι; Σύμφωνα με τους NOTEARS ο θάνατος προκαλεί ευλογιά. Η χρονική πτυχή μας λέει ότι η ευλογιά έρχεται πρώτη και δεν μπορεί να προκληθεί από θάνατο. Ούτε η ευλογιά μπορεί να προκαλέσει την αντίδραση (το εμβόλιο προκαλεί την αντίδραση) και η αντίδραση σίγουρα δεν μπορεί να προκαλέσει τον εμβολιασμό.

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

Εικόνα από συγγραφέα

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

Αν θέλετε να διαβάσετε περισσότερα σχετικά με την ακαταλληλότητα των NOTEARS για αιτιότητα, εδώ είναι μια εξαιρετική ακαδημαϊκή εργασία — https://arxiv.org/pdf/2104.05441.pdf (Marcus Kaiser και Maksim Sipos).

Προτού εγκαταλείψουμε την πλήρως αυτοματοποιημένη αιτιακή ανακάλυψη, ας ρίξουμε μια ματιά σε μια εναλλακτική λύση του NOTEARS, τον αλγόριθμο «Λάσο» –

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

Εικόνα από συγγραφέα
Εικόνα από συγγραφέα

Αγαπητέ μου, το Λάσο είναι καταστροφή! Έχει προβλέψει ότι όλα προκαλούν όλα τα άλλα και ότι οι κόμβοι προκαλούν και τον εαυτό τους!

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

Οι βιβλιοθήκες και οι αλγόριθμοι αιτιώδους ανακάλυψης που είναι διαθέσιμοι δεν λειτουργούν και αυτό ενίσχυσε την άποψη που εκφράζεται στο «The Book of Why», δηλαδή ότι η αιτιότητα δεν μπορεί να αναστραφεί μόνο από δεδομένα.

Αυτό το συμπέρασμα με οδήγησε να αναπτύξω τη δική μου προσέγγιση…

Φωτογραφία Amanda Jones on Unsplash

Κάρτες στο τραπέζι, δεν έχω γράψει αλγόριθμο αιτιώδους ανακάλυψης. Μάλλον ο αλγόριθμός μου υλοποιεί τη συσχετιστική ανακάλυψη με μια ανατροπή (χωρίς λογοπαίγνιο!).

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

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

Ανέπτυξα τη σκέψη μου ως εξής — στα μοντέλα αιτιώδους ανακάλυψης συνήθως προσδιορίζουμε το «επίδραση», δηλαδή το χαρακτηριστικό δεδομένων που μας ενδιαφέρει (όπως ο «στόχος» στις προβλέψεις μηχανικής μάθησης). Στο παράδειγμα της ευλογιάς αυτό είναι «Θάνατος;» και στο παράδειγμα αποδοχών αποφοίτων είναι κέρδη «μεγαλύτεραΕυχαριστώ50k».

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

Το επόμενο βήμα μου ήταν να αναπτύξω έναν αναδρομικό αλγόριθμο που μπορεί να οπτικοποιηθεί ως εξής…

Εικόνα από συγγραφέα

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

Αυτές είναι οι 10 γραμμές αναδρομικού κώδικα Python που ανακάλυψα για να εφαρμόσω την αιτιακή ανακάλυψη

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

Ας ξεκινήσουμε διαβάζοντας τα δεδομένα και ρίχνοντας μια ματιά στους συσχετισμούς…

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

Εικόνα από συγγραφέα

Η πρώτη εκτέλεση του αλγόριθμου ανακάλυψης περιλαμβάνει τη διατήρηση των επαναλήψεων στο 1, επομένως εξετάζουμε απλώς τις συσχετίσεις (που θα πρέπει να είναι αιτιώδεις) με το «αποτέλεσμα», δηλαδή εάν η κράτηση ξενοδοχείου ακυρώνεται ή όχι…

Εικόνα από συγγραφέα

Εντάξει, δεν είναι κακή αρχή, ας αυξήσουμε τον αριθμό των επαναλήψεων / αναδρομών / επιπέδων σε 3, τσιμπήσουμε λίγο το όριο συσχέτισης και ας δούμε τι θα λάβουμε…

Εικόνα από συγγραφέα

Εντάξει, ούτε και πολύ άσχημα, αλλά είναι λίγο «απασχολημένο», οπότε το επόμενο βήμα είναι να αποκλείσουμε ορισμένους από τους κόμβους που υποψιαζόμαστε ότι μπορεί να προκαλούν κάποιο από το θόρυβο (σημείωση: σε μια πραγματική επιχειρηματική υπόθεση με την οποία θα συζητούσαμε οι ειδικοί του τομέα μας σε αυτό το στάδιο).

Εικόνα από συγγραφέα

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

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

Δουλεύοντας με τους ειδικούς του τομέα (ή τη δική μου εμπειρία από τις κρατήσεις ξενοδοχείων σε αυτήν την περίπτωση!) παρατήρησα τα εξής –

  • Ο σύνδεσμος από το "DifferentRoomAssigned" στο "LeadTime" είναι σε λάθος κατεύθυνση, επειδή ο μεγάλος χρόνος κράτησης αυξάνει την πιθανότητα να αλλάξει η κράτηση δωματίου και όχι το αντίστροφο.
  • Η συσχέτιση μεταξύ "BookingChanges" και "DifferentRoomAssigned" είναι κάτω από το όριο, αλλά μπορεί να είναι σημαντική αιτιολογικά, επομένως πρέπει να συμπεριληφθεί.

Η επόμενη προσπάθεια δίνει οδηγίες στον αλγόριθμο να κάνει αυτές τις διορθώσεις –

Εικόνα από συγγραφέα

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

Η εμπειρία μου από την επίσκεψη σε ξενοδοχεία και οι γνώσεις μου για το σύνολο δεδομένων ξενοδοχείων με έκαναν να υποψιάζομαι ότι υπάρχει ένας «μη παρατηρημένος παράγοντας σύγχυσης» που επηρεάζει τα δεδομένα των ξενοδοχείων.

Υπάρχουν δύο ξενοδοχεία στα δεδομένα — ένα ξενοδοχείο «πόλης» και ένα ξενοδοχείο «θέρετρο». Αυτό με οδήγησε στην υπόθεση ότι ο μη παρατηρούμενος συγχυτής σε αυτό το αιτιολογικό μοντέλο είναι το “Λόγος για τη διαμονή στο ξενοδοχείο”.

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

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

Οι ΣΗΜΕΙΩΣΕΙΣ και άλλοι παρόμοιοι αλγόριθμοι δεν μπορούν να λάβουν υπόψη τους «μη παρατηρηθέντες συγχυτές», αλλά ο αλγόριθμος που ανέπτυξα μπορεί να τους λάβει υπόψη, συμπεριλαμβάνοντάς τους ρητά ως εξής…

Εικόνα από συγγραφέα

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

  • Υπάρχει ένας «μη παρατηρημένος παράγοντας σύγχυσης» που είναι ο πρωταρχικός λόγος για τη διαμονή (διακοπές εναντίον επιχειρήσεων / διάλειμμα στην πόλη).
  • Η «Χώρα» έχει μια αιτιώδη επίδραση στον μη παρατηρούμενο συγχυτικό παράγοντα - όσοι ταξιδεύουν από ορισμένες χώρες είναι πιο πιθανό να κάνουν διακοπές.
  • Το ίδιο ισχύει για το "TotalGuests". Τα μεγάλα πάρτι είναι πιο πιθανό να είναι διακοπές, τα single σε επαγγελματικά ταξίδια και τα δίκλινα σε διακοπές στην πόλη.
  • Ο μη παρατηρούμενος "λόγος διαμονής" έχει αιτιώδη επίδραση στο "LeadTime", "HotelType" και "DepositType".
  • Τα "LeadTime", "DifferentRoomAssigned", "HotelType", "DepositType" και "Reason for Stay" (U) έχουν όλα αιτιώδη επίδραση στο "IsCanceled".

Αιτιατική Ανακάλυψη είναι η διαδικασία της υπέρβασης των συσχετιστικών συνδέσμων στην ανακάλυψη αιτιακών συνδέσμων (δηλαδή σε ποιο άκρο της συσχετιστικής γραμμής ανήκει το βέλος;). Αυτό δεν είναι δυνατό, ή τουλάχιστον απαγορευτικά δύσκολο, να αυτοματοποιηθεί με αλγόριθμους όπως το NOTEARS γιατί οι απαντήσεις δεν υπάρχουν μόνο στα δεδομένα.

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

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

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

Εάν σας άρεσε αυτό το άρθρο, σκεφτείτε…

Εγγραφή στο Medium με τον σύνδεσμο παραπομπής μου (Θα λάβω ένα μέρος των τελών εάν εγγραφείτε χρησιμοποιώντας αυτόν τον σύνδεσμο).

Εγγραφή σε ένα δωρεάν e-mail κάθε φορά που δημοσιεύω μια νέα ιστορία.

Ρίχνοντας μια γρήγορη ματιά στα προηγούμενα άρθρα μου.

Λήψη του δωρεάν πλαισίου λήψης αποφάσεων βάσει στρατηγικών δεδομένων.

Επίσκεψη στον ιστότοπο της επιστήμης δεδομένων μου — Το Ιστολόγιο Δεδομένων.

Δεδομένα ανατολής ηλίου / λάλησης κόκορα

Δεδομένα ευλογιάς

Στοιχεία Αποδοχών Αποφοίτων / Απογραφής Εισοδήματος

Δεδομένα κρατήσεων ξενοδοχείων

Ανακάλυψη αιτιατού : Το λαλάρισμα του κόκορα προκαλεί την ανατολή του ήλιου; Αναδημοσίευση από την Πηγή https://towardsdatascience.com/causal-discovery-does-the-cockerel-crowing-cause-the-sun-to-rise-f4308453ecfa?source=rss—-7f60cf5620c9—4 μέσω https://towardsdatascience. com/feed

Si al principi no tens èxit, aleshores el paracaigudisme no és per a tu.

->

Σφραγίδα ώρας:

Περισσότερα από Σύμβουλοι Blockchain