ประเมินผลลัพธ์ของโมเดล
เมื่อได้ฟิตเส้นตรงและสร้างการพยากรณ์แล้ว ขั้นตอนต่อไปคือการตรวจสอบว่าผลการพยากรณ์ดีแค่ไหน เพื่อประเมินว่าโมเดลของเราใช้งานได้จริงหรือไม่ วิธีที่เหมาะสมที่สุดคือการทำ back-test กับกลยุทธ์การเทรด แต่กระบวนการนี้มีความซับซ้อนและใช้เวลามาก
วิธีที่รวดเร็วกว่าในการทำความเข้าใจประสิทธิภาพของโมเดลคือการใช้เมทริกซ์ประเมินผลการถดถอย เช่น R\(^2\) และการพล็อตกราฟเปรียบเทียบค่าพยากรณ์กับค่าจริงของตัวแปรเป้าหมาย หากการพยากรณ์สมบูรณ์แบบ จุดทั้งหมดจะเรียงตัวเป็นเส้นทแยงมุมตรง ทำให้เห็นได้ชัดเจนว่าโมเดลพยากรณ์ได้ดีแค่ไหนในแต่ละช่วงของการเปลี่ยนแปลงราคา เราสามารถใช้ฟังก์ชัน .scatter() ของ matplotlib เพื่อสร้าง scatter plot เปรียบเทียบค่าพยากรณ์กับค่าจริงได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- แสดง
test_predictionsเทียบกับtest_targetsใน scatter plot โดยกำหนดความทึบของจุดที่ 20% (ใช้พารามิเตอร์alphaเพื่อตั้งค่าความทึบ) - พล็อตเส้นการพยากรณ์สมบูรณ์แบบโดยใช้
np.arange()พร้อมค่าต่ำสุดและสูงสุดจากแกน x (xmin,xmax) - แสดง legend บนกราฟด้วย
plt.legend()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Scatter the predictions vs the targets with 20% opacity
plt.scatter(train_predictions, train_targets, alpha=0.2, color='b', label='train')
plt.scatter(____, ____, ____, color='r', label='test')
# Plot the perfect prediction line
xmin, xmax = plt.xlim()
plt.plot(np.arange(xmin, xmax, 0.01), np.arange(____, ____, 0.01), c='k')
# Set the axis labels and show the plot
plt.xlabel('predictions')
plt.ylabel('actual')
____ # show the legend
plt.show()