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

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

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

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

لذلك، تظهر سلاسل ماركوف احتمال التحولات بين الأحداث. إليك مثال بدائي من ويكيبيديا:

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

هنا "E" و"A" حدثان، والأسهم عبارة عن انتقالات بينهما (بما في ذلك الانتقال من حدث إلى نفسه)، وأوزان الأسهم هي احتمالية الانتقال ("الرسم البياني الموجه الموزون").

ماذا استخدمت؟

تم تدريب الدائرة باستخدام وظائف بايثون القياسية، والتي تم تغذيتها بسجلات نشاط الطلاب. تم إنشاء الرسم البياني للمصفوفة الناتجة بواسطة مكتبة NetworkX.

السجل يبدو مثل هذا:

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

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

تقوم المكتبة بإرجاع الرسوم البيانية التي تم إنشاؤها بتنسيق .dot أو .gexf. لتصور الأول، يمكنك استخدام حزمة Graphviz المجانية (أداة gvedit)، التي عملنا عليها مع .gexf وGephi، مجانًا أيضًا.

بعد ذلك، أود أن أقدم مثالين لاستخدام سلاسل ماركوف، مما سمح لنا بإلقاء نظرة جديدة على أهدافنا وعملياتنا التعليمية ونظام Skyeng البيئي نفسه. حسنا، إصلاح الخلل.

الحالة الأولى: تطبيق الهاتف المحمول

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

بأخذ السجلات وتشغيلها من خلال البرنامج النصي، حصلت على شيء مثل هذا:

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

عقدة البداية هي "البدء العام"، وفي الأسفل توجد ثلاث عقد إخراج: الطالب "نام"، وغير الدورة، وأنهى الدورة.

  • لقد نام، "نام" - وهذا يعني أنه لم يعد يحضر الدروس، وعلى الأرجح أنه سقط. نحن نسمي هذه الحالة بتفاؤل "نائمة"، لأن... ومن الناحية النظرية، لا تزال لديه الفرصة لمواصلة دراسته. أسوأ نتيجة بالنسبة لنا
  • تم إسقاط الجنرال، وتغيير المسار - تحول من عام إلى شيء آخر وضيع في سلسلة ماركوف الخاصة بنا.
  • انتهت الدورة، أنهت الدورة - حالة مثالية، أكمل الشخص 80% من الدروس (ليست كل الدروس مطلوبة).

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

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

  • من جلسة التطبيق مرة أخرى؛
  • ومن جلسة التطبيق إلى الفصل الدراسي الناجح؛
  • من الفصل الناجح إلى جلسة التطبيق.

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

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

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

وهذا يعني أن الطلاب الذين ينامون يبدأون في قضاء المزيد والمزيد من الوقت في تطبيق الهاتف المحمول، وفي النهاية، يظلون فيه إلى الأبد.

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

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

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

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

الحالة الثانية: أخطاء الإلحاق

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

أظهرت صفحات الإعداد القليلة هذه مسار تحويل مثل هذا:

كيف نستخدم سلاسل ماركوف في تقييم الحلول وإيجاد الأخطاء. مع نص بايثون
1: كتلة البداية بثلاثة نماذج مختلفة قليلاً (اعتمادًا على العميل) لتسجيل الدخول وكلمة المرور.
2: خانة الاختيار الموافقة على إجراء الإعداد الإضافي.
2.1-2.3: التحقق من حضور الوالدين وإصدار Chrome والصوت.
3: الكتلة النهائية.

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

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

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

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

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

قد يكون هناك سببان لهذه الصورة الغريبة:

  • تسللت المياه الضحلة إلى قاعدة بيانات السجل؛
  • هناك أخطاء في المنتج نفسه - الإعداد.

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

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

جربها بنفسك!

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

حسنًا، روابط مفيدة: مكتبة نتورك اكس, متخيل Graphviz. و هنا هناك مقال عن حبري حول سلاسل ماركوف. يتم إنشاء الرسوم البيانية في المقالة باستخدام Gephi.

المصدر: www.habr.com

إضافة تعليق