การประเมินค่าความผิดพลาดบนชุดข้อมูลทดสอบ
เมื่อได้ posterior_predictive แล้ว (ซึ่งมีอยู่ใน workspace ของคุณแล้ว) ขั้นตอนต่อไปคือการประเมินประสิทธิภาพของโมเดลบนข้อมูลใหม่ โดยจะต้องวนลูปผ่านการสังเกตการณ์ในชุดทดสอบ และสำหรับแต่ละรายการ ให้คำนวณค่าความผิดพลาดของการพยากรณ์ว่าเป็นผลต่างระหว่างการแจกแจงเชิงพยากรณ์กับค่าจริง จากนั้นนำการแจกแจงของค่าความผิดพลาดของโมเดลมาแสดงเป็นภาพ
โดยต้องใช้ pymc3 และ numpy ซึ่งถูก import ไว้ให้แล้วในชื่อ pm และ np ตามลำดับ ข้อมูลทดสอบ bikes_test ก็มีอยู่ใน workspace เช่นกัน ไปเริ่มกันเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลแบบเบย์เซียนด้วย Python
คำแนะนำการฝึกหัด
- กำหนดให้
errorsเป็น list ว่าง - สำหรับแต่ละแถวใน
bikes_testให้คำนวณค่าความผิดพลาดของการพยากรณ์โดยนำค่าพยากรณ์ของแถวนั้นจากposterior_predictiveลบด้วยค่าจริงของnum_bikesจากแถวนั้น - แปลง
errorsให้เป็นnumpyarray แล้วใช้เมธอด.reshape()กับผลลัพธ์ที่ได้ จากนั้นกำหนดผลลัพธ์สุดท้ายให้กับerror_distribution - พล็อตการแจกแจงค่าความผิดพลาดของชุดทดสอบโดยใช้ฟังก์ชัน
plot_posterior()ของpymc3
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Initialize errors
errors = ____
# Iterate over rows of bikes_test to compute error per row
for index, test_example in bikes_test.iterrows():
error = ____[____][:, ____] - ____[____]
errors.append(error)
# Reshape errors
error_distribution = ____(____).____()
# Plot the error distribution
____
plt.show()