Prediction Football Match from events in football match by using LSTM and CNN

Karn Phatnut
Super AI Engineer
Published in
6 min readMar 28, 2021

สวัสดีครับผมนายภูษณ พัฒนุช จากโครงการ Super AI Engineer รหัส 22p26n0176 วันนี้จะมาเล่าเทคนิคการทำนายผลฟุตบอลจากเหตุการณ์ที่เกิดขึ้นภายในการเเข่งขันโดยใช้โมเดล LSTM เเละ CNN โดุยจุดประสงค์ของการทำโปรเจคนี้คือการวัดประสิทธิภาพระหว่างโมเดล LSTM เเละ CNN ว่าโมเดลไหนมีประสิทธิภาพในการทำนายผลลัพธ์ฟุตบอลจากเหตุการณ์ที่เกิดขึ้นภายในการเเข่งขันได้ดีกว่ากันโดยมี accuracy เป็นเกณฑ์การวัด เเละเพื่อเข้าใจความรู้เเละสามารถต่อยอดความรู้ในการใช้ sequential model กับ sequential data อื่นๆ

Overall Project

ภาพที่ 1 ภาพรวมโปรเจค

จากภาพที่ 1 เป็นภาพรวมขั้นตอนที่ต้องใช้ในการทำโปรเจคในขั้นตอนเเรกเราจะเก็บ Dataset มาจาก 2 เเหล่งข้อมูล เเหล่งข้อมูลเเรกทำการ Web Scrapping ข้อมูลนักฟุตบอล เช่น ชื่อ สโมสร ค่าพลัง เเละข้อมูลส่วนตัวต่างๆ เเละเซฟเก็บไว้ในรูปเเบบ Excel เเละเเหล่งข้อมูลที่ 2 เราจะทำการดึง API เหตุการณ์ที่เกิดขึ้นภายในการแข่งขัน โดยข้อมูลที่ได้รับจะอยู่ในรูปเเบบ json จากนั้นนำข้อมูลมา intregate เเละทำการ preprocessing เพื่อเก็บเป็น dataset เเละนำเข้าสู่โมเดล LSTM เเละ CNN เพื่อทำการทำนายผลลัพธ์การเเข่งขันฟุตบอลตอนจบการเเข่งขันโดยการใช้เหตุการณ์ที่เกิดขึ้นภายในการเเข่งขันทุกๆ 15 นาที

Data Aquisition

ข้อมูลที่จะนำมาใช้เป็นข้อมูลทางสถิติที่เกี่ยวกับฟุตบอลภายในเกมการแข่งขัน เช่น ผู้เล่นตัวจริง ตัวสำรอง ใบเหลือง ใบแดง เป็นต้น โดยข้อมูลทางสถิติภายในเกมการเเข่งขันนั้นจะรวบรวมข้อมูลจาก 5 ลีคใหญ่ของโลก ได้แก่ อังกฤษ เยอรมัน ฝรั่งเศส อิตาลีและสเปนโดยการดึงข้อมูลผ่าน API จากทางเว็บไซต์ นอกจากข้อมูลทางสถิติแล้วนั้นยังรวบรวมข้อมูลเกี่ยวกับชื่อและรายละเอียดส่วนตัวหรือค่าพลังของนักเตะจากเกมฟีฟ่าในแต่ละปีการแข่งขันจากการทำ Web Scrapping เพื่อใช้ประกอบกับข้อมูล API โดยข้อมูลในการทำ Dataset นั้นมีทั้งหมด 6,197 แมตซ์ แบ่งเป็นข้อมูลที่ใช้สำหรับการ train 4,957 แมตซ์ โดยมีผลการแข่งขันที่ชนะ แพ้และเสมอ เท่ากับ 2,288 1,221 และ 1448 ตามลำดับ และใช้สำหรับการ test ทั้งหมด 1,240 แมตซ์ โดยมีผลการแข่งขันชนะ แพ้และเสมอ เท่ากับ 578 302 และ 360 ตามลำดับ

ภาพที่ 2 หน้าเว็บไซต์ sofifa ที่ใช้ในการทำ web scrapping เพื่อดึงข้อมูลส่วนตัวนักเตะ

ข้อมูลแหล่งเเรกเป็นการทำ Web Scrapping ข้อมูลนักฟุตบอลโดยใช้ Beautiful Soup เช่น ชื่อ สโมสร ค่าพลัง เเละข้อมูลส่วนตัวต่างๆ เป็นต้น โดยค่าพลังหรือข้อมูลส่วนตัวนักฟุตบอลนั้นเราจะอ้างอิงตามเกม fifa เป็นหลักเนื่องจากเกม fifa นั้นเป็นเกมของ FIFA’s official ทำให้ผมคิดว่าเป็นข้อมูลที่จะเเทนความสามารถนักเตะคนนั้นๆได้เเละน่าเชื่อถือในระดับหนึ่ง หลังจากทำการ Web Scrapping เสร็จเราจะเซฟข้อมูลในรูปเเบบไฟล์ excel เเยกตามเเต่ละปีเเละเเต่ละซีซัน โดยจากภาพที่ 2 นั้นจะเป็นภาพหน้าเว็บไซต์ที่เราได้ทำการดึงข้อมูลส่วนตัวนักเตะจากการทำ Web Scrapping

ภาพที่ 3 ตัวอย่างข้อมูล json

ข้อมูลเเหล่งที่ 2 เป็นการดึง API โดยการใช้ Requests โดยข้อมูลที่ทำการดึงนั้นจะเป็นข้อมูลที่เกี่ยวกับเหตุการณ์ภายในการเเข่งขัน เช่น การเปลี่ยนตัว ใบเหลือง ใบเเดง การยิงประตู เป็นต้น รวมถึงรายชื่อผู้เล่นเเละรายชื่อสโมสรที่ทำการแข่งขันในการเเข่งขันต่างๆ โดยข้อมูลที่ได้รับมานั้นจะอยู่ในรูป JSON จึงต้องทำการเปลี่ยนรูปให้อยู่ในรูป dictionary เพื่อให้สามารถนำข้อมูลไปใช้ในกระบวนการถัดไปได้ โดยตัวอย่างข้อมูล json ที่ได้รับจะเป็นไปดังภาพที่ 3

ภาพที่ 4 ภาพ overall การรวมข้อมูลจาก 2 เเหล่งเข้าด้วยกันเพื่อทำ dataset

จากภาพที่ 4 นั้นเป็นภาพรวมในการนำข้อมูลจาก 2 เเหล่งมารวมเข้าด้วยกันโดยอธิบายได้ว่าหลังจากการดึงข้อมูลจาก API และการทำ Web Scraping จะต้องทำการรวบข้อมูลทั้ง 2 ข้อมูลเข้าด้วยกันเพื่อดึงค่าความสามารถนักเตะที่มีรายชื่อตามการแข่งขันและเหตุการณ์ที่เกิดขึ้นไปทำ Database สำหรับการ train เเละ test โมเดล Deep Learning โดยขั้นตอนการทำมีดังนี้

1) ดึงข้อมูลรายชื่อผู้เล่นที่ทำการแข่งขัน

2) นำรายชื่อไปหาในตารางข้อมูล excel เพื่อทำการดึงค่าความสามารถนักเตะ โดย search จากชื่อเเละทีมที่ถูกต้องก่อน หากไม่พบจะทำการใช้ fuzzy logic เพื่อหานักเตะคนที่มีความน่าจะเป็นเป็นไปได้มากที่สุดมาใช้

3) นำค่าความสามารถนักเตะ การ์ดและการทำประตูมาจัดให้เป็นรูปแบบ list โดยแบ่งเป็นรายชื่อผู้เล่น 29 ตำแหน่ง การ์ด 29 ตำแหน่ง และประตู 29 ตำแหน่ง ต่อ 1 ทีม จากนั้นนำข้อมูลไปจัดในรูป Dataframe

4) ทำการอัพเดตชุดข้อมูลทุกครั้งที่มีเหตุการณ์เกิดขึ้นในการแข่งขันตาม timestep ที่กำหนด

5) ทำการจัดบันทึกข้อมูลให้อยู่ในรูป csv file เเละทำการ Normalization ก่อนเข้าโมเดล Machine Learning

ภาพที่ 5 ตัวอย่างการนำค่าพลังของนักเตะมาใช้ในโมเดล LSTM เเละ CNN

จากภาพที่ 5 เป็นตัวอย่างการนำค่าความสามารถนักเตะจาก EA Sport’s FIFA เกมส์มาใช้เพื่อเป็นข้อมูลเกี่ยวกับนักเตะเพื่อให้นักเตะมีความสำคัญต่อรูปแบบของการแข่งขันทำให้มีผลต่อการทำนายผลการแข่งขันทางฟุตบอล โดยค่าพลังนักเตะในเกมการแข่งขันนั้นจะเป็นของ 11 ผู้เล่นตัวจริงในแต่ละทีมโดยเรียงตามตำแหน่งของผู้เล่น และหากมีการเปลี่ยนตัวเกิดขึ้นค่าพลังของนักเตะจะถูกอัพเดตตามตำแหน่งที่ผู้เล่นถูกเปลี่ยนตัวลงไปและผู้เล่นที่ถูกเปลี่ยนตัวออกค่าพลังจะเป็น 0 โดยข้อมูลในส่วนนี้จะทำการ normalization ด้วยการหารด้วย 100 เพื่อทำให้ค่าอยู่ในช่วง 0–1 ก่อนเข้าโมเดล หลักจากจัดการข้อมูลเสร็จเราก็พร้อมที่จะนำข้อมูลเหล่านั้นเข้าโมเดล LSTM เเละ CNN เเล้ว

การ Input ข้อมูลเข้าโมเดล LSTM เเละ CNN

ภาพที่ 6 ตัวอย่างการ input ข้อมูลแบบ Many-To-Many เพื่อเปรียบเทียบ accuracy แต่ละ timestep กับ final result

ขั้นตอนการนำข้อมูลเข้าโมเดล LSTM นั้นจะประกอบไปด้วยการเตรียมความพร้อมของข้อมูลทั้งหมดก่อนเข้าโมเดลหรือการทำ Pre Processing นั่นคือ การทำ Normalization โดยข้อมูลที่จะนำเข้าโมเดลนั้นจะเป็นไปดังภาพที่ 4 จากนั้นข้อมูลที่จะนำเข้าสู่โมเดลได้นั้นต้องเป็นข้อมูลที่มีรูปแบบลักษณะเดียวกันและต้องจัดให้ข้อมูลอยู่ในรูป 3 มิติ นั่นคือ จำนวนแมตซ์ x จำนวน timestep x จำนวนฟีเจอร์ เพื่อให้สามารถเข้าโมเดล LSTM รูปแบบ Many-To-Many ได้ เมื่อข้อมูลได้ผ่านโมเดล LSTM ข้อมูลจะผ่าน Activation function ที่เรียกว่า Softmax classifier โดยผลลัพธ์ที่ออกมานั้นจะเป็นความน่าจะเป็นที่จะเกิดเหตุการณ์ต่างๆ โดยสามารถดูรูปภาพตัวอย่างภาพรวมการทำงานของระบบ LSTM ได้ดังภาพที่ 6

ภาพที่ 7 ตัวอย่างการ Input ข้อมูลแบบ Many-To-One เพื่อเปรียบเทียบ accuracy แต่ละ timestep กับ final result

จากภาพที่ 7 พบว่า input แต่ละส่วนของ CNN นั้นใช้รูปเบบ Many-To-One โดยในแต่ละ timestep ของการ input นั้นจะมีข้อมูล ณ ช่วงเวลา timestep นั้นและข้อมูลที่แทนค่าด้วย 0 ตามจำนวนแถวที่เหลือ เช่น input(0) จะมีการใส่ข้อมูล ณ นาทีที่ 0 หรือข้อมูลก่อนการแข่งขันจำนวน 1 แถวรวมกับข้อมูลที่แทนค่าด้วย 0 จำนวน 6 แถวแทนค่า timestep ที่เหลือ เพื่อให้สามารถ input ข้อมูลเข้าโมเดล CNN ได้ เพื่อทำนายผลการแข่งขันตอนจบการแข่งขันและเทียบกับความเป็นจริงทำให้ได้ Accuracy แต่ละ timestep เพื่อวัดประสิทธิภาพของโมเดล CNN ในแต่ละ timestep

Benchmark

ภาพที่ 8 แผนผังหลักการทำนายผลการแข่งขันของ Benchmark

จากภาพที่ 8 เป็นเกณฑ์การวาดประสิทธิภาพของโมเดล Deep Learning ได้แก่ LSTM และ CNN โดย Benchmark ที่ทำขึ้นมานั้นเป็นเงื่อนไขที่กำหนดขึ้นเองตามหลักความเป็นไปได้ในการทำนายผลการแข่งขันฟุตบอลของมนุษย์ โดยจากภาพสามารถอธิบายได้ว่าหากทีมเหย้านั้นมีค่าความสามารถนักเตะมากกว่าทีมเยือนจะทำนายเป็นผลชนะ ถ้ามีค่าใกล้เคียงกันจะเป็นผลเสมอ และถ้าน้อยกว่าจะเป็นผลแพ้ และหากทีมที่มีผลชนะอยู่โดนทำประตูได้มากกว่าผลการทำนายจะลดลงมา 1 ระดับ เช่น จากชนะจะกลายเป็นเสมอ สุดท้ายเป็นเงื่อนไขของการ์ดหากทีมที่ชนะอยู่ได้รับผลของการ์ดในที่นี้หมายถึงใบแดงจะทำให้ผลการทำนายลดมา 1 ระดับเช่นกัน เช่นจากเสมอจะเป็นแพ้ แต่หากเงื่อนไขทั้ง 3 ไม่มีการเปลี่ยนแปลงหรือเท่ากันจะทำให้ยึดผลการทำนายจากครั้งล่าสุด

Hyper Parameter Tuning

LSTM

โครงสร้าง LSTM เบื้องต้นที่ใช้สำหรับการทำ Hyper Parameter Tuning

ภาพที่ 9 โครงสร้าง LSTM เบื้องต้น
ตารางที่ 1 ตารางการทดลองการปรับค่า Units และ Dropout ของ LSTM

จากตารางที่ 1 เป็นตารางการทดลองการปรับค่า Units และ Dropout พบว่าค่า accuracy เฉลี่ยที่ดีที่สุดของ LSTM นั้นคือมีค่า train ที่ 0.664 และค่า test ที่ 0.587 โดยใช้ค่า LSTM Units เท่ากับ 32 จำนวนเลเยอร์เท่ากับ 1 และใช้ Dropout 0.5 โดยจากการทดลองนั้นพบว่าความซับซ้อนของโมเดลที่มีค่าน้อยนั้นสามารถเข้าได้กับข้อมูลที่มีจำนวนน้อยได้ดีที่สุดนั่นคือ LSTM Units เท่ากับ 32 โดย Dropout 0.5 นั้นสามารถลดการ overfit ของโมเดลได้ดีที่สุดและจากค่า accuracy ในแต่ละ timestep นั้นพบว่ามีค่าที่มากขึ้นทุกๆ timestep เนื่องจากจำนวนข้อมูลจากเหตุการณ์ที่เกิดขึ้นภายในการแข่งขันนั้นมีมากขึ้นตามจำนวน timestep ที่มากขึ้น

ตารางที่ 2 ตารางการทดลองการปรับค่าจำนวน Layers ของ LSTM

หลังจากทำการทดลองปรับค่า Units และ Dropout จะนำโมเดลที่ดีที่สุดหรือที่มีค่า test accuracy เฉลี่ยที่มากที่สุดมาทำการทดลองต่อโดยการหาจำนวนเลเยอร์ที่เหมาะสมที่สุด จากตารางที่ 2 พบว่าค่า accuracy เฉลี่ยที่ดีที่สุดของ LSTM นั้นคือมีค่า train เฉลี่ยที่ 0.641 และค่า test เฉลี่ยที่ 0.599 โดยใช้ค่า LSTM Units เท่ากับ 32 และใช้จำนวน Layer เท่ากับ 2 เนื่องจากเป็น architecture ที่ไม่ซับซ้อนและสามารถเข้ากับจำนวนข้อมูลที่มีอยู่ได้ดีที่สุด จากการดูค่า accuracy ในแต่ละ timestep นั้นพบว่ามีค่าที่มากขึ้นทุกๆ timestep เนื่องจากจำนวนข้อมูลจากเหตุการณ์ที่เกิดขึ้นภายในการแข่งขันนั้นมีมากขึ้นทุกๆ timestep ทำให้มีข้อมูลปริมาณที่สามารถเข้ากับตัวโมเดลได้ดีมากขึ้น

CNN

โครงสร้าง CNN เบื้องต้นที่ใช้สำหรับการทำ Hyper Parameter Tuning

ภาพที่ 10โครงสร้าง CNN เบื้องต้น
ตารางที่ 3 ตารางการทดลองการปรับค่าจำนวน Layers และ Kernel Size ของ CNN

จากตารางที่ 3 เป็นการทดลองโดยการปรับค่าจำนวน Layers และ Kernel Size ของโมเดล CNN โดยพบว่าค่าเฉลี่ย accuracy ที่ดีที่สุดของ CNN นั้นคือมีค่า train เฉลี่ยที่ 0.752 และค่า test เฉลี่ยที่ 0.595 โดยใช้ Layer Convolute จำนวน 1 Layer และใช้ Kernel Size ขนาด 1 จึงสรุปได้ว่าโมเดล CNN นั้นมีค่าดีที่สุดก็ต่อเมื่อฟีเจอร์แต่ละฟีเจอร์นั้นไม่มีความเกี่ยวข้องกันจากขนาดของ Kernel และความซับซ้อนของจำนวนชั้นเลเยอร์นั้นเท่ากับ 1 หรือหมายถึงโมเดลมีความซับซ้อนน้อยสามารถเข้าได้กับจำนวนข้อมูลที่มีได้ดีที่สุดแต่ปัญหาคือโมเดลยังมีการ overfit เกิดขึ้น

ตารางที่ 4 ตารางการทดลองการปรับค่า Number of Filters และ Dropout ของ CNN

จากการทดลองการปรับค่าจำนวน Layers และ Kernel size นั้นพบว่าจำนวน Kernel Size และจำนวน Layer ของโมเดลที่ดีที่สุดมีค่าเท่ากับ 1 ซึ่งดูได้จากค่า test accuracy เฉลี่ย จากนั้นทำการทดลองหา Number of Filters และ Dropout ที่ดีที่สุด โดยจำนวนฟิลเตอร์ที่ใช้นั้นมีค่า 32, 64 และ 128 ตามลำดับ และใช้ Dropout ค่า 0, 0.25 และ 0.5 ตามลำดับจากการทดลองพบว่า Number of Filters ที่มีค่าน้อยสุดหรือทำให้โมเดลมีความซับซ้อนที่น้อยที่สุด ซึ่งเท่ากับ 32 และค่า Dropout เท่ากับ 0.5 นั้นสามารถทำให้โมเดลเรียนรู้และนำมาใช้กับข้อมูลที่มีปริมาณน้อยและลดการ overfit ของโมเดลได้ดีที่สุด โดยค่าเฉลี่ย accuracy ของโมเดลนั้นมีค่า train เท่ากับ 0.686 และค่า test เท่ากับ 0.632 จากค่า accuracy ในแต่ละ timestep นั้นพบว่ามีค่าที่มากขึ้นทุกๆ timestep เนื่องจากจำนวนข้อมูลจากเหตุการณ์ที่เกิดขึ้นภายในการแข่งขันนั้นมีมากขึ้น ทำให้มีปริมาณข้อมูลที่มีมากขึ้นนั้นสามารถเข้ากับตัวโมเดลได้ดีมากยิ่งขึ้น

การเทียบ Confusion Matrix ของ 2 โมเดลในเเต่ละ Timestep ที่สำคัญ

Timestep 0

ภาพที่ 11 Confusion Matrix ของ LSTM เเละ CNN นาทีที่ 0

จากภาพที่ 11 พบว่าในช่วงนาทีที่ 0 นั้น โมเดล LSTM สามารถทำนายผลการแข่งขันได้แค่ผลชนะและไม่สามารถทำนายผลการแข่งขันที่เป็นแพ้กับเสมอได้เลย ส่วนโมเดล CNN สามารถทำนายผลการแข่งขันได้ทั้งผลชนะและแพ้แต่ไม่สามารถทำนายผลการแข่งขันเสมอได้เลย เนื่องจากการแข่งขันยังไม่เริ่มทำให้ยังไม่มีเหตุการณ์หรือข้อมูลที่เข้ามาใช้สำหรับการทำนายนอกจากค่าความสามารถของนักเตะตัวจริงที่ลงแข่งขัน โดยจำนวนชุดข้อมูลที่นำไป train ให้กับโมเดลนั้นเป็นผลชนะที่มากถึง 46% จากผลลัพธ์ทั้งหมดทำให้โมเดลนั้นมีการ bias และทำนายแต่ผลการแข่งขันที่ชนะ

Timestep 45

ภาพที่ 12 Confusion Matrix ของ LSTM เเละ CNN นาทีที่ 45

LSTM

ภาพที่ 13 กราฟเปรียบเทียบเปอร์เซ็นต์เหตุการณ์ที่เกิดขึ้น ณ นาที 45 โมเดล LSTM

จากภาพที่ 12 พบว่าเหตุผลที่นาที 45 นั้นผลการแข่งขันที่แท้จริงเป็นผลเสมอแต่โมเดล LSTM ทำนายผิดเป็นผลชนะมากที่สุด ทำให้จากภาพที่ 13 เป็นการเทียบเปอร์เซ็นต์การเกิดเหตุการณ์ต่างๆโดยนำฟีเจอร์การ์ดฝั่งทีมเหย้าและทีมเยือนกับฟีเจอร์การทำประตูฝั่งทีมเหย้าและทีมเยือน ณ นาที 45 มาหาค่าเฉลี่ยและนำแต่ละฟีเจอร์มาเปรียบเทียบกันทั้งหมด 4 ฟีเจอร์เพื่อหาปัจจัยที่โมเดลทำนายผลออกมาเป็นผลชนะจากฟีเจอร์โดยในแต่ละฟีเจอร์ทางซ้ายสุดแสดงถึงตำแหน่งกองหลัง ตรงกลางแสดงถึงกองกลาง และขวาสุดหมายถึงกองหน้าโดยจากจำนวนของกราฟมีทั้งหมด 3 พบว่าเปอร์เซ็นต์การเกิดผลกระทบจากการ์ดของทีมเหย้านั้นมีค่าน้อยกว่าทีมเยือนและเปอร์เซ็นต์การทำประตูของทีมเหย้านั้นมีอัตราที่มากกว่าทีมเยือนทำให้ฟีเจอร์การ์ดและการทำประตูนั้นเป็นปัจจัยที่สำคัญในการที่โมเดลทำนายผลการแข่งขันและจากกราฟพบว่าการทำฟาวล์ส่วนใหญ่หรือผลกระทบที่เกิดจากฟีเจอร์การ์ดส่วนมากของทีมเหย้าและทีมเยือนจะมาจากกองหลังและกองกลาง การทำประตูของทีมเหย้าและทีมเยือนจะมาจากกองกลางและกองหน้า

CNN

ภาพที่ 14 กราฟเปรียบเทียบเปอร์เซ็นต์เหตุการณ์ที่เกิดขึ้น ณ นาที 45 โมเดล CNN

จากภาพที่ 12 พบว่าเหตุผลที่นาที 45 นั้นผลการแข่งขันที่แท้จริงเป็นผลเสมอแต่โมเดล CNN ทำนายผิดเป็นชนะส่วนมาก ทำให้จากภาพที่ 14 เป็นการเทียบเปอร์เซ็นต์การเกิดเหตุการณ์ต่างๆโดยนำฟีเจอร์การ์ดฝั่งทีมเหย้าและทีมเยือนกับฟีเจอร์การทำประตูฝั่งทีมเหย้าและทีมเยือน ณ นาที 45 มาหาค่าเฉลี่ยและนำแต่ละฟีเจอร์มาเปรียบเทียบกันทั้งหมด 4 ฟีเจอร์ เพื่อหาปัจจัยที่โมเดลทำนายผลออกมาเป็นผลชนะจากฟีเจอร์โดยในแต่ละฟีเจอร์ทางซ้ายสุดแสดงถึงตำแหน่งกองหลัง ตรงกลางแสดงถึงกองกลาง และขวาสุดหมายถึงกองหน้าโดยจากจำนวนของกราฟมีทั้งหมด 3 แท่ง พบว่าเปอร์เซ็นต์การเกิดผลกระทบจากการ์ดของทีมเหย้านั้นมีค่าน้อยกว่าทีมเยือนในทุกตำแหน่ง และเปอร์เซ็นต์การทำประตูของทีมเหย้านั้นมีอัตราที่มากกว่าทีมเยือนทำให้ฟีเจอร์การ์ดและการทำประตูนั้นเป็นปัจจัยที่สำคัญในการที่โมเดลทำนายผลลัพธ์และจากกราฟพบว่าการทำฟาวล์ส่วนใหญ่หรือผลกระทบที่เกิดจากฟีเจอร์การ์ดส่วนมากของทีมเหย้าและทีมเยือนจะมาจากกองหลังและกองกลาง ส่วนการทำประตูของทีมเหย้าและทีมเยือนจะมาจากกองกลางและกองหน้า

Timestep 90

ภาพที่ 15 Confusion Matrix ของ LSTM เเละ CNN นาทีที่ 90

จากภาพที่ 12 เเละ 13 ในนาทีที่ 45 และ 90 พบว่าโมเดล LSTM สามารถทำนายผลการแข่งขันเสมอได้มากขึ้นแต่มีมากถึง 164 แมตซ์และ 87 แมตซ์ที่ทำนายผลเป็นชนะ ส่วน CNN สามารถทำนายผลการแข่งขันเสมอได้มากขึ้นแต่มีมากถึง 156 แมตซ์และ 54 แมตซ์ที่ทำนายผลเป็นชนะ

ภาพที่ 16 กราฟเปรียบเทียบเปอร์เซ็นต์เหตุการณ์ที่เกิดขึ้น ณ นาที 90 โมเดล LSTM

จากภาพที่ 15 พบว่าเหตุผลที่นาที 90 นั้นผลการแข่งขันที่แท้จริงเป็นผลเสมอแต่โมเดล LSTM ทำนายผิดเป็นชนะส่วนมาก ทำให้จากภาพที่ 16 เป็นการเทียบเปอร์เซ็นต์การเกิดเหตุการณ์ต่างๆโดยนำฟีเจอร์การ์ดฝั่งเทีมเหย้าและทีมเยือนกับฟีเจอร์การทำประตูฝั่งทีมเหย้าและทีมเยือน ณ นาที 90 มาหาค่าเฉลี่ยและนำแต่ละฟีเจอร์มาเปรียบเทียบกันทั้งหมด 4 ฟีเจอร์เพื่อหาปัจจัยที่โมเดลทำนายผลออกมาเป็นผลชนะ พบว่าเปอร์เซ็นต์การเกิดผลกระทบจากการ์ดของทีมเหย้านั้นมีค่าน้อยกว่าทีมเยือนและเปอร์เซ็นต์การทำประตูของทีมเหย้านั้นมีอัตราที่มากกว่าทีมเยือนทำให้ฟีเจอร์การ์ดและการทำประตูนั้นเป็นปัจจัยที่สำคัญในการที่โมเดลทำนายผลการแข่งขันและจากกราฟพบว่าการทำฟาวล์ส่วนใหญ่หรือผลกระทบที่เกิดจากฟีเจอร์การ์ดส่วนมากของทีมเหย้าและทีมเยือนจะมาจากกองหลังและกองกลาง (แท่งกราฟแท่งที่ 1 และ 2) ส่วนการทำประตูของทีมเหย้าและทีมเยือนจะมาจากกองกลางและกองหน้า (แท่งกราฟแท่งที่ 2 และ 3)

ภาพที่ 17 กราฟเปรียบเทียบเปอร์เซ็นต์เหตุการณ์ที่เกิดขึ้น ณ นาที 90 โมเดล CNN

จากภาพที่ 15 พบว่าเหตุผลที่นาที 90 นั้นผลการแข่งขันที่แท้จริงเป็นผลเสมอแต่โมเดล CNN ทำนายผิดเป็นชนะส่วนมาก ทำให้จากภาพที่ 17เป็นการเทียบเปอร์เซ็นต์การเกิดเหตุการณ์ต่างๆโดยนำฟีเจอร์การ์ดฝั่งเทีมเหย้าและทีมเยือนกับฟีเจอร์การทำประตูฝั่งทีมเหย้าและทีมเยือน ณ นาที 90 มาหาค่าเฉลี่ยและนำแต่ละฟีเจอร์มาเปรียบเทียบกันทั้งหมด 4 ฟีเจอร์เพื่อหาปัจจัยที่โมเดลทำนายผลออกมาเป็นผลชนะ พบว่าเปอร์เซ็นต์การเกิดผลกระทบจากการ์ดของทีมเหย้านั้นมีค่าใกล้เคียงกันแต่จะน้อยกว่าทีมเยือนในส่วนของกองหน้าและเปอร์เซ็นต์การทำประตูของทีมเหย้านั้นมีอัตราที่มากกว่าทีมเยือนทำให้ฟีเจอร์การ์ดและการทำประตูนั้นเป็นปัจจัยที่สำคัญในการที่โมเดลทำนายผลการแข่งขันและจากกราฟพบว่าการทำฟาวล์ส่วนใหญ่หรือผลกระทบที่เกิดจากฟีเจอร์การ์ดส่วนมากของทีมเหย้าและทีมเยือนจะมาจากกองหลังและกองกลาง (แท่งกราฟแท่งที่ 1 และ 2) ส่วนการทำประตูของทีมเหย้าและทีมเยือนจะมาจากกองกลางและกองหน้า (แท่งกราฟแท่งที่ 2 และ 3)

สรุปการทดลอง

ตารางที่ 5 ตารางการเปรียบเทียบประสิทธิภาพแต่ละโมเดลในการทำนายผลการแข่งขันฟุตบอล

จากตารางที่ 5 พบว่า CNN นั้นมีประสิทธิภาพในการทำนายผลการแข่งขันฟุตบอลดีกว่า LSTM และ Benchmark ในทุก timestep รวมถึงค่า average test ด้วย โดย CNN สามารถมีค่า accuracy ที่ใกล้เคียงกับ accuracy สูงสุดของ Benchmark ณ นาทีที่ 30 และเหตุผลหลักที่ CNN นั้นมีค่า accuracy ที่มากกว่า LSTM เป็นเพราะว่า CNN มีความสามารถในการทำนายผลการแข่งขันที่เป็นผลเสมอได้ดีกว่า LSTM ดัง Confusion Matrix ในหัวข้อก่อนหน้านี้ อาจเป็นผลมาจากการที่ CNN นั้นสามารถทำการอ่านข้อมูลได้ครอบคลุมกว่า LSTM เนื่องจาก LSTM นั้นมี Forget gate อาจทำให้ลืมข้อมูลบางส่วนที่สำคัญไปได้

ข้อแตกต่างระหว่าง LSTM และ CNN คือ CNN นั้นสามารถทำนายผลการแข่งขันที่เป็นผลเสมอได้ดีกว่า LSTM ในทุก timestep ซึ่งสามารถเปรียบเทียบภาพรวมคร่าวๆได้จากภาพที่ 11 12 และ 15 ตามลำดับแต่สิ่งที่เหมือนกันคือทั้ง 2 โมเดลไม่สามารถทำนายผลการแข่งขันที่เป็นผลเสมอได้ดีแต่จะทำนายผลเป็นทีมเหย้าชนะเนื่องจากส่วนแรกชุดข้อมูลที่ใช้สำหรับการ train นั้นมีผลการแข่งขันที่เป็นทีมเหย้าชนะสูงถึง 46 % จากข้อมูลทั้งหมดและการทำนายส่วนมากนั้นจะทำนายเป็นผลชนะ และจากการผลการทำนายใน timestep 0 พบว่า CNN สามารถทำนายผลการแข่งขันที่เป็นผลแพ้ได้ดีกว่า LSTM อาจเป็นปัจจัยจากการที่ LSTM นั้นมี Forget gate ที่ทำให้สามารถลืมข้อมูลบางส่วนได้เป็นเหตุให้ CNN นั้นสามารถวิเคราะห์ข้อมูลได้ทั้งหมดและครอบคลุมมากว่า LSTM และหลังจากทำการศึกษาตัวฟีเจอร์ได้แก่การ์ดและการทำประตูพบว่า 2 ฟีเจอร์นี้เป็นฟีเจอร์สำคัญที่ทำให้ผลการแข่งขันมีการเปลี่ยนแปลงโดยส่วนมากฝ่ายทีมเยือนจะเป็นฝ่ายที่ได้รับผลกระทบจากการ์ดสูงสุดซึ่งหมายความว่าทีมเยือนจะเสียเปรียบในการแข่งขันกับทีมเหย้า แต่ในทางกลับกันทีมเหย้านั้นจะได้รับผลกระทบจากฟีเจอร์การยิงประตูมากกว่าทำให้ผลการแข่งขันที่ออกมานั้นแสดงให้เห็นว่าทีมเหย้ามีโอกาสที่จะชนะมากกว่าทีมเยือนและทำให้โมเดล LSTM และ CNN ส่วนมากนั้นทำนายผลการแข่งขันออกมาเป็นผลชนะทั้งที่จริงๆนั้นเป็นผลเสมอ

--

--