كيف تتنبأ آلياً بنتيجة مباراة كرة قدم؟



كيف تتنبأ آلياً بنتيجة مباراة كرة قدم؟

خلال السنوات الآخيرة، انتشرت في السعودية ثقافة الهاكاثون (Hackathon) بشكل واضح وواسع مما أثرى المحتوى التنافسي في مجال تحليل البيانات (data analytics) واستخراج المعلومات (knowledge extraction) في كثير من المجالات. فعلى سبيل المثال، قام مركز بحوث الطب والعلوم الطبية وعمادة البحث العلمي بجامعة أم القرى مؤخراً بإقامة هاكاثون مكة الطبي البحثي الأول من نوعه في السعودية. وحالياً، تقوم فعالية دوري ذكاء باشراف من الاتحاد السعودي للأمن السيبراني والبرمجة والدرونز في مدينة الرياض كواحدة من أوائل الهاكاثونات المُعتمِدة كلياً على مهارات الذكاء الإصطناعي (artificial intelligence) والتنبؤ (prediction) باستخدام خوارزميات التعلم الآلي (machine learning algorithms) في المملكة. تتمحور أهداف دوري ذكاء في عدة نقاط أهمها تفعيل استخدام تحليل البيانات الآلي في المجال الرياضي وتحديداً مباريات كرة القدم و التنبؤ المسبق بنتيجة المباريات بثقة عالية.

ولكن ما مدى إمكانية التنبؤ بنتيجة مباراة رياضية؟ وماهي العوامل المؤثرة في مثل هذه التوقّعات؟

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

عودة إلى مباريات كرة القدم. ما هي العوامل التي تؤثر على نتيجة المباراة؟

نظراً لاعتماد كرة القدم على نظام الأهداف في تحديد الفائز في المباراة، يمكن تكوين نظام يحسب متغير(feature/attribute) قوة الفريق بالاعتماد على القيم المسجلة من عدد الأهداف أو عدد المباريات التي فاز فيها. يمكن أيضاً أن يستخدم محلل البيانات معلومات مثل عدد ركلات الجزاء، التسلل ومدى تكراره، الهجمات والهجمات المرتدة. كل هذه المعلومات وغيرها يمكن الحصول عليها بسهولة بتتبع المباريات السابقة لكلا الفريقين وتسجيل البيانات.
بينما يبدو أن هذه المعلومات قد تكون مؤشر جيد لنتيجة المباراة، يجب أخذ البيانات الغير حسابية (non-quantitative) في عين الاعتبار عند إجراء مثل هذه التوقعات. البيانات الغير حسابية يمكن أن تصف مدى جودة لاعبي الفريق الحاليين، مدى جودة حالتهم الصحية، أو النفسية. كما يمكن أن تلاحظ، تلك المعلومات لا يمكن أن تؤرخ بسهولة تأريخ نتائج المباريات، وبالتالي نفقد معلومات مهمة كان من الممكن أن تؤثر بشكل كبير على نتائج التنبؤ. بالإضافة، يمكن أن تظهر بعض المتغيرات (attributes) وكأنها في صالح الفريق، بينما باطنياً تكون أحد أهم أسباب ضعف الأداء. على سبيل المثال، متى كانت آخر مباراة لعبها الفريق؟ في حال خوض الكثير من المباريات المتتالية في وقت قريب من المباراة المراد توقع نتيجتها، نجد أن إجهاد اللاعبين قد يكون مؤشر قوي لضعف الأداء بغض النظر عن جودة الأداء في  المباريات السابقة. مثال آخر يلامس الواقع كثيراً هو حادثة تغيير مدرب الفريق، فالتغيير في الاستراتيجيات يؤثر بشكل كبير وملموس على أداء الفريق ويمكن أن يقلب موازيين النتائج بشكل يصعب التنبؤ به.

لنفترض أنه تم رصد جميع العوامل المؤثرة على نتيجة المباراة وتم تقديمها لمحلل البيانات للتنبؤ بمجريات المباراة. ماهي أهم التوصيات والنصائح التي يمكن اتباعها للحصول على أفضل نتيجة ممكنة وبناء نظام كفؤ لتوقع النتائج بأعلى نسبة ثقة؟

1. استخدام جميع المتغيرات المتاحة لا يعني بالضرورة تنبؤ أدق
قد يعتقد البعض أن عالِم البيانات (data scientist) يقوم مبدئياً بجمع أكبر عدد من المعلومات بغرض استخدام جميعها في بناء نظام التنبؤ. بينما أثبتت الدراسات أن دقة النظام (overall accuracy) لا تتحسن بالضرورة بزيادة عدد المتغيرات في بناء نظام التنبؤ. على النقيض، فإن العلاقة غير طردية بين عدد المتغيرات المستخدمة في بناء النظام ودقة النظام في توقع النتائج. السبب الرئيسي لجمع البيانات يكون لدراسة الحالة وفهم البيانات بالتصوير (visualization)، واستخراج المتغيرات (feature selection/extraction) المؤثرة فعلاً وبشكل ملحوظ على نتيجة المباراة. أحد أقوى الخوارزميات (algorithms) المستخدمة في حصر أهم المتغيرات في البيانات هي: تحليل العنصر الرئيسي أو (principal component analysis PCA) حيث يقوم عالم البيانات باستخراج المتغيرات الأكثر تأثيراً على نتيجة كل من المباريات السابقة والاعتماد على تلك المعلومات في بناء النموذج و توقع نتيجة المباريات القادمة.

2. اختيار الخوارزمية الأنسب يعتمد كلياً على بنية وتكوين البيانات (format/type) المتاحة
فعلى سبيل المثال، لو أردنا التنبؤ بنتيجة المباراة مبدئياً بتصنيف النتيجة كأحد ثلاث نتائج متوقعة: فوز الفريق الأول، فوز الفريق الثاني، التعادل. قد يتسرع البعض في اختيار خوارزمية شجرة القرار (decision tree) أو خوارزميات التجميع بالمتوسطات (k-means) لتصنيف النتيجة دون إعارة إحداثيات البيانات أي أهمية في تحديد الخوارزمية. كون التصنيف فصلي (categorical) (فوز الفريق الأول، فوز الفريق الثاني، تعادل) وليس عدد حقيقي متتالي (continuous real value) (كالطول أو الوزن مثلاً)، لا يعني بالضرورة استخدام أي من خوارزميات التصنيف (classification) تحديداً. بالنظر الدقيق لتكوين البيانات المتاحة، ومراجعة نوع المتغيرات الأخرى (وليس تصنيف النتيجة وحسب) يمكن أختيار الخوارزمية الأنسب لضمان أعلى نسبة ثقة في نتيجة التنبؤ. التشعب في هذا الموضوع (اختيار الخوارزمية الأنسب) يتطلب مقال منفصل ساتطرق له في المستقبل باذن الله.

3. التحقق المتداخل (Cross Validation) صديقك عند تدريب نظام التوقع (training the prediction model)
في حال الإنتهاء من تحديد المتغيرات الأهم في التأثير على نتيجة النظام، بالإضافة إلى اختيار الخوارزمية المناسبة لأنمذجة البيانات، يأتي دور تعليم الآلة "حرفياً". يبدأ عالم البيانات بعرض البيانات على نظام التنبؤ بحيث يألَف العلاقات ويربط بين الشروط المؤدية لنتيجة معينة. فمثلاً، يبدأ النظام في فهم رياضة كرة القدم، الأحداث التي تحدد فوز الفريق أو خسارته، الأحداث المؤثرة إيجاباً أو سلباً على نتيجة المباراة، وهكذا. بناءً على تلك المعلومات، يقوم النظام بتكوين مراتب وتعيين رتبة (rank/weight) لكل متغير حسب أهميته في التنبؤ. من  أفضل طرق التدريب المتاحة لتعريض النظام لكافة الإحتمالات الممكنة وبالتالي الحصول على أفضل متوسط أحتمالات (optimal average probability) هو التحقق المتداخل أو تحديداً التحقق الطبقي ذو المضاعفات الكافيّة (stratified k-fold cross validation). في هذا النوع من التدريب، يحرص المحلل على أن تكون كل مجموعة يتم فصلها من البيانات بغرض التدريب (training) أو الأختبار (testing) لاحقاً، يحرص أن تكون شاملة ومعبرة عن تكوين البيانات ككل. يتم فصل البيانات بحيث تتوزع كل قيمة تسلسلياً بين كونها ضمن بيانات التدريب (training data) وتكوين النظام أو بيانات اختبار صحة التنبؤ لاحقاً (testing data).

4. التنبؤ ليس الهدف، الهدف هو تقليل نسبة الخطأ (error optimization)
عند بناء نظام تنبؤ وتدريب الآلة على الاستنباط وتوقّع نتيجة حدث معين، يجب التركيز على الهدف الرئيسي من بناء النظام وهو تطوير نظام ينتج توقعات للأحداث بأقل نسبة خطأ ممكنة أو بالأصح بأكبر نسبة دقة (accuracy) وإحكام (precision). عند توفر الإمكانيات، يفضّل دائماً العودة للنظام بعد الاستحواذ على بيانات جديدة لم تكن في حاضرة حين بناء النظام واستخدام تلك البيانات في تطوير النظام بحيث يتم ضبط المتغيرات ورُتَبِها بناءً على البيانات الجديدة. من أفضل خوارزميات تقليل نسبة الخطأ والمفضلة لدي كمبدأ، هي خوارزمية الانحدار بالتدرج (gradient decent). ساقوم بتخصيص مقال كامل اراجع فيه هذه الخوارزمية واستخداماتها.

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


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

سماء قزاز
twitter: @SamaTG

Comments