फूस्बॉल परिणाम भविष्यवाणी

हमारे कार्यालय में, हम काम के बाद नियमित रूप से फ़ॉसबॉल/टेबल फुटबॉल के कुछ राउंड का आनंद लेते हैं। मैंने एक छोटे जावा प्रोग्राम को एक साथ रखा है जो उपलब्ध खिलाड़ियों से यादृच्छिक 2vs2 लाइनअप उत्पन्न करता है और मैच परिणामों को बाद में डेटाबेस में संग्रहीत करता है।

परिणाम की वर्तमान भविष्यवाणी 4 शामिल खिलाड़ियों से पिछले सभी मैच परिणामों का एक साधारण औसत उपयोग करती है। यह एक बहुत ही मोटा अनुमान देता है, लेकिन मैं इसे कुछ और परिष्कृत के साथ बदलना चाहता हूं, जैसे खाते को ध्यान में रखना:

  • खिलाड़ी हमलावर के रूप में अच्छा खेल सकते हैं लेकिन डिफेंडर (या इसके विपरीत)
  • के रूप में खराब हो सकते हैं
  • खिलाड़ी किसी विशिष्ट प्रतिद्वंद्वी/दूसरों के खिलाफ बुराई के खिलाफ अच्छा प्रदर्शन करते हैं
  • कुछ टीम अच्छी तरह से मिलकर काम करती हैं, अन्य लोग
  • नहीं करते हैं
  • कौशल समय के साथ बदलता है

यथासंभव सटीक रूप से गेम परिणाम की भविष्यवाणी करने के लिए सबसे अच्छा एल्गोरिदम क्या होगा?

किसी ने इसके लिए एक तंत्रिका नेटवर्क का उपयोग करने का सुझाव दिया, जो काफी रोचक लगता है ... लेकिन मेरे पास यह कहने के लिए पर्याप्त जानकारी नहीं है कि यह काम कर सकता है, और मुझे यह भी संदेह है कि यह उचित रूप से प्रशिक्षित होने के लिए बहुत सारे गेम ले सकता है।

संपादित करें:
कुछ परियोजना की समय सीमा के कारण इस से अधिक समय लेना पड़ा। प्रश्न को और अधिक विशिष्ट बनाने के लिए:

निम्नलिखित MySQL तालिका को देखते हुए अब तक खेले गए सभी मैचों में:

table match_result

match_id      int pk
match_start   datetime
duration      int (match length in seconds)
blue_defense  int fk to table player
blue_attack   int fk to table player
red_defense   int fk to table player
red_attack    int fk to table player
score_blue    int
score_red     int

आप एक फ़ंक्शन भविष्यवाणी कैसे लिखेंगे रीसेट (ब्लूडिफ, ब्लूएक्ट, रेडडिफ, रेडएक्ट) {...}
नतीजे जितना संभव हो सके अनुमान लगाने, किसी भी एसक्यूएल को निष्पादित करने, गणना करने या बाहरी पुस्तकालयों का उपयोग करने के लिए?

0

5 उत्तर

एक विकल्प यह होगा कि कुछ प्रकार के रैखिक मॉडल के रूप में प्रसारित बिंदु को आजमाएं और अनुमान लगाएं। यदि आपके पास खिलाड़ियों की तुलना में अधिक गेम हैं, तो सभी गेम के लिए गेम मैट्रिक्स (एक टीम पर प्लेयर के लिए +1, दूसरे के लिए -1, दर्शक के लिए 0) बनाकर प्रति खिलाड़ी अंक के कम से कम वर्गों का फिट कर सकते हैं और परिणाम फैलाने के लिए वेक्टर।

0
जोड़ा

एक तंत्रिकानेट का उपयोग क्यों करें? आंकड़ों का प्रयोग करें, शायद प्रत्येक खिलाड़ी के बीच सहसंबंध अच्छा उपाय होगा।

0
जोड़ा
ठीक ठीक। कुछ लोग सब कुछ के लिए एक तंत्रिका नेट का सुझाव देते हैं; द डेली डब्ल्यूटीएफ देखें: thedailywtf.com/Articles/No,_We_Need_a_Neural_Network.aspx : - )
जोड़ा लेखक ShreevatsaR, स्रोत

बस शुरू करने के लिए कुछ जानकारी इकट्ठा करें: किसी दिए गए खिलाड़ी के लिए हमें इसकी आवश्यकता है:

  1. उन्होंने जो स्थिति खेली है
  2. अंतिम स्कोर

एक अच्छा हमलावर अंक उठाएगा। एक अच्छा डिफेंडर अंक बनाए जाने से रोक देगा।

वास्तविक जानकारी एक अच्छे बचावकर्ता के खिलाफ खेल रहे एक अच्छे हमलावर से होगी।

0
जोड़ा

ट्रूस्किल एल्गोरिदम का प्रयोग करें, यह इस पर बहुत अच्छा है। मैंने इसे फ़ॉसबॉल और शतरंज के लिए कार्यान्वित किया है और यह बहुत अच्छी तरह से काम करता है। सहकर्मियों ने मुझे बताया है कि यह लगभग भी इस पर अच्छा है।

यह कैसे काम करता है इसके साथ-साथ मेरे कार्यान्वयन के लिंक के बारे में पूरी जानकारी के लिए, मेरा " अपने कौशल कंप्यूटिंग " ब्लॉग पोस्ट।

0
जोड़ा

बेवकूफ बेयस वर्गीकरण लागू करने का प्रयास करें।

<पी> बेयसियन सीखना एक संभाव्य है   दृष्टिकोण जो एक पर आधारित है   धारणा है कि मात्रा की मात्रा   ब्याज संभावना से शासित है   वितरण और इष्टतम   निर्णय तर्क से किया जा सकता है   इन संभावनाओं के बारे में एक साथ   मनाए गए डेटा के साथ। [मिशेल, टी।   (1 99 7), मशीन लर्निंग]

खिलाड़ियों के समान सटीक वितरण के परिणामस्वरूप विभिन्न मिलान परिणाम हो सकते हैं। यदि आपके डेटा में एक पैटर्न है, तो आपके चर के आधार पर एक पैटर्न, बेवकूफ बेयस वर्गीकृत अच्छे परिणाम दे सकता है।

The algorithm is not very complex. I think, one with some knowledge in probability, can understand & apply it.

In intrusion detection systems, it is being used for determining network anomalies, by looking at various network parameters. Bayesian approach may be very successful in particular types of data and produce high TP & low FP rates. But it may also result in high FP rates, depending on your data. Your data will determine the best approach.

आप वेका का उपयोग कर सकते हैं ( http://www.cs.waikato.ac.nz/~ मिली/वीका/), एक डेटा खनन सॉफ्टवेयर लाइब्रेरी, और विभिन्न एल्गोरिदम का प्रयास करें। इसमें बेवकूफ बेयस वर्गीकरण शामिल है। बस कोशिश करो और देखें।

0
जोड़ा