การทำนายตารางการจัดแข่งขันเบสบอล ด้วย แผนภูมิต้นไม้ (Decision tree)

ในประเทศสหรัฐอเมริกา การจัดการแข่งขัน เบสบอล จะ ขึ้นปัจจัยสภาพอากาศเป็นอย่างมาก ไม่ว่าจะเป็น Wind, temperature หรือ Humidity ของแต่ละวัน สถิติย้อนหลังไปในอดีต มนุษย์สามารถเอาสถิติย้อนหลังมาเรียนรู้และนำมาทำนายได้อย่างแม่นยำ

http://www.theweatherprediction.com/

วันนี้ขอนำเสนอ การใช้ python ในการทำนาย โจทย์ Classification Problem บ้าง ซึ่งถือได้ว่าเป็นปัญหา ที่ไม่มีโครงสร้าง หรือ สมการใดๆ ที่สามารถคำนวณขึ้นมาได้ ทำให้ปัญหาแบบนี้ จะต้องใช้ อัลกอริทึม รุ่นใหม่ๆ เช่น KNN หรือ ID3/C4.5 มาเริ่มกันเลย

จากตารางที่ 7–1 จะเห็นได้ว่า Outlook, Temperature, Humidity, Windy เป็นตัวแปร (feature) และ คอลัมน์ Play/Not Play จะเป็นส่งที่ต้องการทำนาย หรือ Label

ชั้นตอนที่ 1: จากเว็ปไชต์ http://www.theweatherprediction.com/habyhints/285/ เป็นข้อมูลที่เก็บสภาพอากาศย้อนหลัง 14 วัน เพื่อดูว่าในแต่ละวัน จะมีการจัดแข่งขันเบสบอลขึ้นได้หรือไม่

ชั้นตอนที่ 2: เริ่มจากการสร้าง ชุดอาเรย์ เก็บข้อมูล Outlook, Temperature, Humidity, Windy ดังต่อไปนี้

ต่อมาทำการสร้าง Data frame หรือ ตาราง โดยการนำเอาแต่ละคอลัมน์มาร่วมกันดังต่อไปนี้

ผลการรัน

ชั้นตอนที่ 3: ทำการแปลงข้อมูล ให้อยู่ในสภาพที่เหมาะสมในการวิเคราะห์

จากนั้น ทำการแปลง ตัวแปรทุกตัวให้เป็นตัวเลข และ รวมทุกตัวแปรให้เป็นตัวแปร เดียวกัน ชื่อ features

เปรียบเทียบ ก่อนและหลังการแปลงข้อมูล

ชั้นตอนที่ 4: สร้างแผนภูมิต้นไม้ (Decision tree)

ผลการรัน

ชั้นตอนที่ 5: ทำนายค่า โดยใช้ KNeighborsClassifier ดังต่อไปนี้

จะเห็นได้ว่า ผลการทำนายเป็น จริง (1) ซึ่งก็ตรงกับ ค่าความจริงด้วย

--

--

รศ. ดร. เชฏฐเนติ ศรีสอ้าน
รศ. ดร. เชฏฐเนติ ศรีสอ้าน

Written by รศ. ดร. เชฏฐเนติ ศรีสอ้าน

รองอธิการบดีฝ่ายเทคโนโลยี มหาวิทยาลัยรังสิต

No responses yet