การทำนายตารางการจัดแข่งขันเบสบอล ด้วย แผนภูมิต้นไม้ (Decision tree)
ในประเทศสหรัฐอเมริกา การจัดการแข่งขัน เบสบอล จะ ขึ้นปัจจัยสภาพอากาศเป็นอย่างมาก ไม่ว่าจะเป็น Wind, temperature หรือ Humidity ของแต่ละวัน สถิติย้อนหลังไปในอดีต มนุษย์สามารถเอาสถิติย้อนหลังมาเรียนรู้และนำมาทำนายได้อย่างแม่นยำ
วันนี้ขอนำเสนอ การใช้ 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) ซึ่งก็ตรงกับ ค่าความจริงด้วย