عن المشروع
مشروع توقع قتال MMA هو مشروع بحث وخدمة بلغة Python يتوقع فائزَي قتال UFC، طريقة النصر وجولة الانتهاء. يجمع نظام تقييم "Elo"، ومجموعة تعزيز تدرج ("XGBoost")، ومجموعة شبكة عصبية متعددة المهام، ومزيج متساوي الوزن من الاثنين الذي هو المسجل المُستَخدم. يُقيَّم كل مرشح باستخدام تقييم نافذة متوسعة للمشي إلى الأمام خلال 2018-2026، ويتم تعديل المسجل الفائز بدرجة حرارة مُناسبة على البيانات المحجوزة بعد متوسط المزيج.
خط أنابيب قابل للتكرار
يُنشئ quickstart بيئة افتراضية، وي-install الحزمة مع الإضافات التطويرية، ثم يشغل أربعة نصوص بالترتيب: download_data.py (مجموعة بيانات UFC من Kaggle إلى data/raw/)، make_dataset.py (باركيت نظيف إلى data/processed/)، build_ratings.py (ضبط وبناء تقييمات "Elo")، يليه pytest. تطبيق "Streamlit" (streamlit run app.py) يسمح للمستخدم باختيار أي مقاتلين ويعيد احتمال الفوز مع عدم اليقين، واتجاهات الطريقة وجولة الانتهاء، وتحليل لأهم العوامل المساهمة. هدف موثق هو قابلية للتكرار بايت-لبايت لجميع الخط الأنابيب.
هندسة الميزات والتحكم في التسرب
تُجمع الميزات من كتل مسماة (base, external, trajectory, notice, context, opponent_adjusted) في src/mma/feature_blocks.py، مما ينتج جدولًا بحوالي 11 ألف قتال و87 عمودًا. تُبنى الميزات داخل acumulators زمنية بحيث تكون كل قيمةstrictly قبل القتال، ويستخدم اختبار invariance تحت القطع للتأكد من أن لا ميزة يمكنها رؤية المستقبل. قُيِّمت الكتل مقابل شريط دقة مُسجَّل مسبقًا: واحدة (external، التي تغطي بيانات ما قبل UFC المهنية) اجتازته بمفردها، بينما تُرسل الكتل الأخرى فقط كجزء من الجدول الذي تم تقييم المزيج عليه، أو لا تُرسل على الإطلاق. يوثق المشروع تسرب اختيار وُجد في أعلام فقدان القيم لكل زاوية، والذي أُزيل من مصفوفات النموذجين مع بقائه في الجدول لشرائح التقييم. يتم استبعاد عدة أعمدة صراحةً من مدخلات النموذج كحماية من التسرب، ويملف sidecar للمصدر يسجل، لكل صف، ما إذا كان جاء من المصدر الأساسي أو الثانوي.
مصادر البيانات
تُجمع السجلات كاتحاد لمرآة Kaggle المُحافظ عليها (المصدر الأساسي، المُصالح) ونشرة CSV Greco1899/scrape_ufc_stats (تُستخدمstrictly كبيانات، تُجلب عبر HTTPS، بدون vendoring كود مرخص بـ GPL). في المعارك المتداخلة يفوز الصف الأساسي؛ يتم دمج الدمج بشرط اتفاق الفائز بين المصادر ويكونfail-soft، ويتدهور إلى بناء أساسي فقط مع تحذير. يُبلغ المستودع عن المصدر، فحوصات التكامل، وحماية الانحدار حول هذا الدمج.
التحديث الذاتي والتقييم المستقبلي
يُحدث إجراء GitHub أسبوعي مجموعة البيانات ويعيد بناء الاصطناعات، ملتزمًا بها تلقائيًا. يتم توقع أحداث UFC القادمة والالتزام بها في git قبل حدوثها وتقييمها afterwards، مما يوفر سجلًا مستقبليًا بدلاً من تقارير رجعية فقط. تُرسل تقارير harness لكتل الميزات المرفوضة وملفات قرار التجربة المُسجَّلة مسبقًا إلى models/walkforward/، بحيث تُحتفظ بالنتائج السلبية.
يُكتب المشروع بلغة Python (3.10+) ويُصدر تحت رخصة "MIT". توجد مستندات التصميم وخطة المراحل تحت docs/.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.