الاكتشاف السببي: هل يتسبب صياح الديك في شروق الشمس؟

10 أسطر من كود بايثون لأتمتة الاكتشاف السببي الذي عليك رؤيته

تصوير إيجور ميزنيك on Unsplash

لقد كان محور بحثي الأخير هو الاستدلال السببي مدفوعًا بالطلبات المتزايدة التي أتلقاها من العملاء لتجاوز توقعات التعلم الآلي إلى الإجابة على "ماذا لو؟" اكتب الأسئلة لدفع التأثير والنتائج.

أحد الأشياء التي أثارت اهتمامي في البداية كان - "كيف يتم بناء المخططات السببية؟". وفي العديد من الأمثلة الموجودة على الإنترنت، يبدو أنها تنبض بالحياة بشكل كامل دون أي تفسير لكيفية تحديد العقد والروابط.

قادني هذا إلى قراءة "كتاب السبب" بقلم جوديا بيرل ودانا ماكنزي (عدة مرات!) وإحدى وجهات النظر التي تم التعبير عنها هي أنه لا يمكنك إجراء هندسة عكسية للمخطط السببي، المعروف أيضًا باسم الرسم البياني غير الدوري الموجه (DAG)، من البيانات وحيد.

يمكن للبيانات أن تكشف عن الارتباط ولكن ليس السببية، فكيف يمكن "اكتشاف" السببية؟

ملاحظة: جميع مجموعات البيانات في هذه المقالة مرخصة للاستخدام العام، يرجى مراجعة قسم المراجع في نهاية المقالة لجميع المصادر والمراجع.

قبل أن نغوص في الاكتشاف السببي، يرجى النظر في ...

الانضمام إلى Medium باستخدام رابط الإحالة الخاص بي (سأحصل على نسبة من الرسوم إذا قمت بالتسجيل باستخدام هذا الرابط).

الاشتراك في بريد إلكتروني مجاني كلما قمت بنشر قصة جديدة.

ألقي نظرة سريعة على مقالاتي السابقة.

تنزيل إطار عمل اتخاذ القرار الاستراتيجي المبني على البيانات مجانًا.

زيارة موقع علوم البيانات الخاص بي - مدونة البيانات.

خذ بعين الاعتبار تعداد القيم من مجموعة البيانات الثنائية التالية...

ملاحظة: مجموعة بيانات شروق الشمس/الديك هي بيانات تركيبية أنشأها المؤلف، يرجى الاطلاع على قسم المراجع في نهاية المقالة للحصول على تفاصيل المصدر والمرجع الكاملة.

صورة المؤلف

يمكننا أن نرى أن صياح الديك عند شروق الشمس في 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 (ماركوس كايزر ومكسيم سيبوس).

قبل أن نتخلى عن الاكتشاف السببي الآلي بالكامل، دعونا نلقي نظرة على بديل لـ NOTEARS، خوارزمية "Lasso" –

ملحوظة: مجموعة بيانات دخل التعداد/أرباح الخريجين مرخصة للاستخدام العام، يرجى مراجعة قسم المراجع في نهاية المقال للحصول على تفاصيل المصدر والمراجع الكاملة.

صورة المؤلف
صورة المؤلف

يا عزيزي، لاسو كارثة! لقد تنبأ بأن كل شيء يسبب كل شيء آخر وأن العقد تسبب نفسها أيضًا!

كانت محاولاتي الأخيرة هي تجربة خوارزميات GES وGIES وLINGAM، لكن جميعها تتطلب مكتبات R. أنا لا أستخدم لغة R، وحتى لو تمكنت من الحصول على التكوين الصحيح، فلن أتمكن أبدًا من إنشاء تعليمات برمجية محمولة يمكن لعلماء البيانات الآخرين استخدامها.

إن مكتبات وخوارزميات الاكتشاف السببي المتاحة لا تعمل، مما أدى إلى إعادة فرض وجهة النظر المعبر عنها في "كتاب السبب"، أي أنه لا يمكن إجراء هندسة عكسية للسببية من البيانات وحدها.

قادني هذا الاستنتاج إلى تطوير نهجي الخاص…

تصوير أماندا جونز on Unsplash

بطاقات على الطاولة، لم أكتب خوارزمية اكتشاف سببية. بدلاً من ذلك، تنفذ الخوارزمية الخاصة بي الاكتشاف المترابط مع لمسة (لا يقصد التورية!).

عندما تخليت عن مكتبات الاكتشاف السببي، كنت لا أزال بحاجة إلى طريقة لتصور السببية كنقطة بداية للمحادثة مع خبراء المجال.

لقد فكرت في أنه يمكنني حساب الارتباطات بين الميزات/العقد بسهولة وأن هذا سيكون على الأقل نقطة انطلاق جيدة.

لقد طورت تفكيري على النحو التالي - في نماذج الاكتشاف السببي، نحدد عادةً "التأثير"، أي ميزة البيانات التي نهتم بها (مثل "الهدف" في تنبؤات التعلم الآلي). في مثال الجدري، هذا هو "الموت؟"، وفي مثال أرباح الخريجين هو الأرباح "أكبر شكرًا 50 ألفًا".

ولذلك إذا كان هناك ارتباطات بين أي سمة و"التأثير" فإن الاتجاه السببي يجب أن يكون من السمات الأخرى إلى التأثير كما هو في "نهاية السطر".

كانت خطوتي التالية هي تطوير خوارزمية متكررة يمكن تصورها على النحو التالي ...

صورة المؤلف

يجب استبعاد التكرارات والروابط ثنائية الاتجاه بالقوة. أردت أيضًا أن أكون قادرًا على تضمين أو استبعاد الاتصالات (الحواف) بشكل صريح واستبعاد الميزات (العقد) بشكل صريح.

هذه هي الأسطر العشرة من كود بايثون العودي التي توصلت إليها لتنفيذ الاكتشاف السببي

ولإظهار كيفية عمل الحل، قمت باختيار بعض البيانات الخاصة ببيانات إلغاء حجوزات الفنادق.

لنبدأ بقراءة البيانات وإلقاء نظرة خاطفة على الارتباطات …

ملاحظة: مجموعة بيانات حجوزات الفنادق مرخصة للاستخدام العام، يرجى مراجعة قسم المراجع في نهاية المقال للحصول على تفاصيل المصدر والمرجع الكاملة.

صورة المؤلف

يتضمن التشغيل الأول لخوارزمية الاكتشاف إبقاء التكرارات منخفضة إلى 1، لذلك نحن ننظر فقط إلى الارتباطات (التي ينبغي أن تكون سببية) مع "التأثير"، أي ما إذا تم إلغاء حجز الفندق أم لا...

صورة المؤلف

حسنًا، هذه ليست بداية سيئة، دعنا نزيد عدد التكرارات/التكرارات/الطبقات إلى 3، ونعدل عتبة الارتباط قليلاً ونرى ما سنحصل عليه...

صورة المؤلف

حسنًا، ليس سيئًا للغاية أيضًا، ولكنه "مشغول" بعض الشيء، لذا فإن الخطوة التالية هي استبعاد بعض العقد التي نشك في أنها قد تسبب بعض الضجيج (ملاحظة: في حالة الأعمال الواقعية، سنتحدث إلى خبراء المجال لدينا في هذه المرحلة).

صورة المؤلف

لقد بدأ هذا يبدو أفضل. تذكر أن الخوارزمية الخاصة بي واثقة من أن الروابط إلى "IsCancelled" سببية لأنها "التأثير"، وبالتالي لا شيء يأتي بعده.

الطبقات الأخرى من الشجرة مترابطة فقط، على الرغم من أنه تمت إضافة اتجاه الأسهم بناءً على الترتيب الذي وجدته الخوارزمية به.

من خلال العمل مع خبراء المجال (أو تجربتي الخاصة في حجوزات الفنادق في هذه الحالة!) لاحظت ما يلي –

  • الرابط من "DifferentRoomAssigned" إلى "LeadTime" في الاتجاه الخاطئ لأن مهلة الحجز الطويلة تزيد من احتمالية تغيير حجز الغرفة وليس العكس.
  • العلاقة بين "BookingChanges" و"DifferentRoomAssigned" أقل من الحد الأدنى ولكنها قد تكون ذات أهمية سببية لذا يجب تضمينها.

المحاولة التالية تطلب من الخوارزمية إجراء هذه التصحيحات -

صورة المؤلف

"الإرباك غير الملحوظ" هو عامل نعتقد أنه يؤثر على نموذجنا السببي من خلال توفير رابط بين بعض العقد، ولكن لم يتم قياس ذلك وبالتالي لم يتم تضمينه في الرسم البياني.

تجربتي في الذهاب إلى الفنادق ومعرفتي بمجموعة بيانات الفنادق جعلتني أشك في وجود "إرباك غير ملحوظ" يؤثر على بيانات الفنادق.

هناك فندقان في البيانات - فندق "المدينة" وفندق "المنتجع". يقودني هذا إلى افتراض أن الإرباك غير الملحوظ في هذا النموذج السببي هو “سبب الإقامة في الفندق”.

فرضيتي هي ذلك يقيم المصطافون في المقام الأول في فندق المنتجع ويقيم رجال الأعمال ومسافري المدينة في المقام الأول في فندق المدينة.

علاوة على ذلك، فقد افترضت أن هاتين المجموعتين لهما سلوكيات مختلفة وأن هذا هو "الإرباك غير الملحوظ" (غير ملحوظ لأن البيانات لا تلتقط "سبب الوقف").

لا يمكن لـ NOTEARS والخوارزميات المماثلة الأخرى أن تأخذ في الاعتبار "الإرباك غير الملحوظ" ولكن الخوارزمية التي قمت بتطويرها يمكنها أن تأخذها في الاعتبار من خلال تضمينها بشكل صريح على النحو التالي ...

صورة المؤلف

نتيجة التكرار النهائي هي تصور معقول وقابل للقراءة ومفهوم للعلاقة السببية في بيانات الفندق التي سأكون واثقًا من استكشافها وتحسينها مع خبراء المجال. هذه هي النقاط الأساسية…

  • هناك "إرباك غير ملحوظ" وهو السبب الرئيسي للإقامة (عطلة مقابل إجازة عمل / إجازة في المدينة).
  • "البلد" له تأثير سببي على الإرباك غير الملحوظ - من المرجح أن يكون أولئك الذين يسافرون من بعض البلدان في عطلة.
  • الأمر نفسه ينطبق على "TotalGuests". من المرجح أن تكون الحفلات الكبيرة في إجازة، والعزاب يكونون في رحلات عمل ويتضاعفون في استراحات المدينة.
  • "سبب الإقامة" غير الملحوظ له تأثير سببي على "LeadTime" و"HotelType" و"DepositType".
  • "LeadTime" و"DifferentRoomAssigned" و"HotelType" و"DepositType" و"Reason for Stay" (U) كلها لها تأثير سببي على "IsCanceled".

الاكتشاف السببي هي عملية تجاوز الروابط المترابطة لاكتشاف الروابط السببية (أي، إلى أي نهاية من الخط الارتباطي ينتمي السهم؟). ليس من الممكن، أو على الأقل من الصعب للغاية، التشغيل الآلي باستخدام خوارزميات مثل NOTEARS لأن الإجابات غير موجودة في البيانات وحدها.

ومع ذلك، لا تزال هناك حاجة ماسة لتصور السببية بحيث يمكن استكشافها مع خبراء المجال من أجل بناء مخطط سببي (يشار إليه أيضًا باسم الرسم البياني غير الدوري المباشر أو DAG).

في هذه المقالة، تم اقتراح خوارزمية تعتمد على زيادة الاكتشاف الارتباطي باستخدام 10 أسطر فقط من كود Python والتي يمكن استخدامها مع خبراء المجال لتحسين الحساسية (العتبة) بشكل متكرر وتصحيح الروابط (الأسهم) أو إضافتها أو إزالتها واستبعاد الروابط غير ذات الصلة. العقد.

في المقالات المستقبلية، سيتم استخدام هذه المخططات السببية لبناء نموذج تعلم آلي سببي كامل يمكنه الإجابة على الأسئلة المعقدة "ماذا لو؟" اكتب الأسئلة من العملاء وقادة الأعمال.

إذا استمتعت بهذا المقال، يرجى النظر…

الانضمام إلى Medium باستخدام رابط الإحالة الخاص بي (سأحصل على نسبة من الرسوم إذا قمت بالتسجيل باستخدام هذا الرابط).

الاشتراك في بريد إلكتروني مجاني كلما قمت بنشر قصة جديدة.

ألقي نظرة سريعة على مقالاتي السابقة.

تنزيل إطار عمل اتخاذ القرار الاستراتيجي المبني على البيانات مجانًا.

زيارة موقع علوم البيانات الخاص بي - مدونة البيانات.

شروق الشمس / بيانات صياح الديك

بيانات الجدري

أرباح الخريجين / بيانات دخل التعداد

بيانات حجوزات الفنادق

اكتشاف سببي: هل صياح الديك يسبب شروق الشمس؟ أعيد النشر من المصدر https://towardsdatascience.com/causal-discovery-does-the-cockerel-crowing-cause-the-sun-to-rise-f4308453ecfa?source=rss—-7f60cf5620c9—4 عبر https://towardsdatascience. كوم/تغذية

<!–

->

الطابع الزمني:

اكثر من مستشارو Blockchain