วิธีการคำนวณ mape ใน python
ค่าความคลาดเคลื่อนเปอร์เซ็นต์สัมบูรณ์เฉลี่ย (MAPE) มักใช้ในการวัดความแม่นยำในการทำนายของแบบจำลอง มีการคำนวณดังนี้:
MAPE = (1/n) * Σ(|จริง – การทำนาย| / |จริง|) * 100
ทอง:
- Σ – สัญลักษณ์ที่หมายถึง “ผลรวม”
- n – ขนาดตัวอย่าง
- real – มูลค่าที่แท้จริงของข้อมูล
- การทำนาย – มูลค่าของข้อมูลที่คาดการณ์
MAPE มักใช้เพราะง่ายต่อการตีความและอธิบาย ตัวอย่างเช่น ค่า MAPE 11.5% หมายความว่าความแตกต่างโดยเฉลี่ยระหว่างค่าที่คาดการณ์กับค่าจริงคือ 11.5%
ยิ่งค่า MAPE ต่ำ โมเดลก็ยิ่งสามารถทำนายค่าได้ดีขึ้นเท่านั้น ตัวอย่างเช่น โมเดลที่มี MAPE 5% จะมีความแม่นยำมากกว่าโมเดลที่มี MAPE 10%
วิธีการคำนวณ MAPE ใน Python
ไม่มีฟังก์ชัน Python ในตัวสำหรับคำนวณ MAPE แต่เราสามารถสร้างฟังก์ชันง่ายๆ เพื่อทำการคำนวณได้:
import numpy as np def mape( actual , pred ): actual, pred = np.array(actual), np.array(pred) return np.mean(np.abs((actual - pred) / actual)) * 100
จากนั้นเราสามารถใช้ฟังก์ชันนี้เพื่อคำนวณ MAPE สำหรับสองตาราง: ตารางที่มีค่าข้อมูลจริงและตารางที่มีค่าข้อมูลที่คาดการณ์ไว้
actual = [12, 13, 14, 15, 15,22, 27] pred = [11, 13, 14, 14, 15, 16, 18] map(actual, pred) 10.8009
จากผลลัพธ์ เราจะเห็นว่าค่าความคลาดเคลื่อนเปอร์เซ็นต์สัมบูรณ์โดยเฉลี่ยสำหรับโมเดลนี้คือ 10.8009% กล่าวอีกนัยหนึ่ง ความแตกต่างโดยเฉลี่ยระหว่างค่าที่คาดการณ์กับมูลค่าจริงคือ 10.8009%
ข้อควรระวังในการใช้ MAPE
แม้ว่า MAPE จะคำนวณและตีความได้ง่าย แต่การใช้งานก็มีข้อเสียอยู่ 2 ประการ:
1. เนื่องจากสูตรในการคำนวณเปอร์เซ็นต์ความคลาดเคลื่อนสัมบูรณ์คือ |การทำนายจริง| / |จริง| ซึ่งหมายความว่า MAPE จะไม่ถูกกำหนดหากค่าจริงใด ๆ ที่เป็นศูนย์
2. ไม่ควรใช้ MAPE กับข้อมูลที่มีปริมาณน้อย ตัวอย่างเช่น หากความต้องการจริงสำหรับสินค้าคือ 2 และการคาดการณ์คือ 1 ค่าความผิดพลาดเปอร์เซ็นต์สัมบูรณ์จะเป็น |2-1| / |2| = 50% ซึ่งทำให้การคาดการณ์คลาดเคลื่อนค่อนข้างสูง แม้ว่าการคาดการณ์จะปิดไปเพียง 1 หน่วยเท่านั้น