คำถามสัมภาษณ์วิทยาศาสตร์ข้อมูลเกี่ยวกับเมตริกการประเมินแบบจำลอง
การตรวจสอบความถูกต้องและการประเมินแบบจำลองวิทยาศาสตร์ข้อมูลช่วยเพิ่มสีสันให้กับสมมติฐานของเรา และช่วยประเมินแบบจำลองต่างๆ ที่จะให้ผลลัพธ์ที่ดีกว่ากับข้อมูลของเรา สิ่งเหล่านี้คือตัวชี้วัดที่ช่วยให้เราประเมินแบบจำลองของเรา
Big-O คืออะไรในการเขียนโค้ด การตรวจสอบความถูกต้อง และการประเมินผลคือโมเดลวิทยาศาสตร์ข้อมูล
มีข้อผิดพลาดหลักสามประการ (หน่วยเมตริก) ที่ใช้ในการประเมินแบบจำลอง ได้แก่ ข้อผิดพลาดเฉลี่ยสัมบูรณ์ ข้อผิดพลาดค่าเฉลี่ยกำลังสอง และคะแนน R2
ค่าเฉลี่ยข้อผิดพลาดสัมบูรณ์ (MAE)
ให้เรายกตัวอย่างที่เรามีบางประเด็น เรามีเส้นที่เหมาะกับจุดเหล่านั้น เมื่อเราทำการบวกระยะทางของค่าสัมบูรณ์จากจุดหนึ่งไปยังอีกเส้นหนึ่ง เราจะได้ค่าคลาดเคลื่อนเฉลี่ยแบบสัมบูรณ์ ปัญหาของเมตริกนี้คือไม่สามารถหาอนุพันธ์ได้ ให้เราแปลสิ่งนี้เป็นวิธีการใช้ Scikit Learn เพื่อคำนวณเมตริกนี้
>>> from sklearn.metrics import mean_absolute_error >>> y_true = [3, -0.5, 2, 7] >>> y_pred = [2.5, 0.0, 2, 8] >>> mean_absolute_error(y_true, y_pred) 0.5 >>> y_true = [[0.5, 1], [-1, 1], [7, -6]] >>> y_pred = [[0, 2], [-1, 2], [8, -5]] >>> mean_absolute_error(y_true, y_pred) 0.75 >>> mean_absolute_error(y_true, y_pred, multioutput='raw_values') array([0.5, 1. ]) >>> mean_absolute_error(y_true, y_pred, multioutput=[0.3, 0.7]) ... 0.85...
ข้อผิดพลาดกำลังสองเฉลี่ย (MSE)
Mean Squared Error แก้ปัญหาความแตกต่างของ MAE พิจารณาแผนภาพเดียวกันด้านบน เรามีเส้นที่เหมาะกับจุดเหล่านั้น เมื่อเราบวกระยะทางกำลังสองจากจุดหนึ่งไปยังเส้นตรง เราจะได้ค่าคลาดเคลื่อนกำลังสองเฉลี่ย ใน Scikit เรียนรู้ดูเหมือนว่า:
>>> from sklearn.metrics import mean_squared_error >>> y_true = [3, -0.5, 2, 7] >>> y_pred = [2.5, 0.0, 2, 8] >>> mean_squared_error(y_true, y_pred) 0.375 >>> y_true = [[0.5, 1],[-1, 1],[7, -6]] >>> y_pred = [[0, 2],[-1, 2],[8, -5]] >>> mean_squared_error(y_true, y_pred) 0.708... >>> mean_squared_error(y_true, y_pred, multioutput='raw_values') ... array([0.41666667, 1. ]) >>> mean_squared_error(y_true, y_pred, multioutput=[0.3, 0.7]) ... 0.825..
การแทนค่าทางคณิตศาสตร์ของ MAE และ MSE มีดังต่อไปนี้:
คะแนน R2
ให้เราใช้วิธีการแบบไร้เดียงสาโดยหาค่าเฉลี่ยของจุดทั้งหมดโดยคิดถึงเส้นแนวนอนที่ตัดผ่านจุดเหล่านั้น จากนั้นเราสามารถคำนวณ MSE สำหรับโมเดลอย่างง่ายนี้ได้
คะแนน R2 ตอบคำถามที่ว่า หากแบบจำลองอย่างง่ายนี้มีข้อผิดพลาดมากกว่าแบบจำลองการถดถอยเชิงเส้น อย่างไรก็ตาม ในแง่ของเมตริก คำตอบที่เราต้องการคือใหญ่กว่านี้มากน้อยเพียงใด คะแนน R2 ตอบคำถามนี้ คะแนน R2 คือ 1 — (ข้อผิดพลาดจากแบบจำลองการถดถอยเชิงเส้น/แบบจำลองค่าเฉลี่ยอย่างง่าย)
คะแนนที่ดีที่สุดที่เป็นไปได้คือ 1.0 และอาจเป็นลบได้ (เนื่องจากแบบจำลองอาจแย่กว่านั้นโดยพลการ) แบบจำลองคงที่ที่คาดการณ์ค่าที่คาดหวังของ y เสมอ โดยไม่คำนึงถึงคุณลักษณะอินพุต จะได้รับคะแนน R² เป็น 0.0 ใน Scikit Learn ดูเหมือนว่า:
>>> from sklearn.metrics import r2_score >>> y_true = [3, -0.5, 2, 7] >>> y_pred = [2.5, 0.0, 2, 8] >>> r2_score(y_true, y_pred) 0.948... >>> y_true = [[0.5, 1], [-1, 1], [7, -6]] >>> y_pred = [[0, 2], [-1, 2], [8, -5]] >>> r2_score(y_true, y_pred, multioutput='variance_weighted') ... 0.938... >>> y_true = [1,2,3] >>> y_pred = [1,2,3] >>> r2_score(y_true, y_pred) 1.0 >>> y_true = [1,2,3] >>> y_pred = [2,2,2] >>> r2_score(y_true, y_pred) 0.0 >>> y_true = [1,2,3] >>> y_pred = [3,2,1] >>> r2_score(y_true, y_pred) -3.0
บทสรุป
การประเมินแบบจำลองนำ Data Scientist ไปในทิศทางที่ถูกต้องเพื่อเลือกหรือปรับแต่งแบบจำลองที่เหมาะสม ในการสัมภาษณ์วิทยาศาสตร์ข้อมูล จะเป็นการทดสอบพื้นฐานของผู้สมัครในลักษณะเดียวกัน ในการสัมภาษณ์ การทราบถึงคุณค่าและคำศัพท์เหล่านี้สำหรับปัญหาที่กำลังพูดคุยกันถือเป็นเดิมพัน
หากต้องการคำตอบเพิ่มเติมสำหรับคำถามสำคัญด้านวิทยาศาสตร์ข้อมูล โปรดไปที่ "Acing AI"
สมัครรับจดหมายข่าว Acing AI ของเรา ฉันสัญญาว่าจะไม่สแปมและฟรี!
เราได้สร้างหลักสูตรใหม่เพื่อช่วยผู้คนในการสัมภาษณ์ด้านวิทยาศาสตร์ข้อมูล ลงทะเบียนด้านล่าง!
ขอบคุณที่อ่าน! 😊ถ้าคุณชอบมัน ทดสอบว่าคุณจะตีได้กี่ครั้ง👏 ใน 5 วินาที เป็นคาร์ดิโอที่ดีเยี่ยมสำหรับนิ้วของคุณและจะช่วยให้ผู้อื่นเห็นเรื่องราว