คำถามสัมภาษณ์วิทยาศาสตร์ข้อมูลเกี่ยวกับเมตริกการประเมินแบบจำลอง

การตรวจสอบความถูกต้องและการประเมินแบบจำลองวิทยาศาสตร์ข้อมูลช่วยเพิ่มสีสันให้กับสมมติฐานของเรา และช่วยประเมินแบบจำลองต่างๆ ที่จะให้ผลลัพธ์ที่ดีกว่ากับข้อมูลของเรา สิ่งเหล่านี้คือตัวชี้วัดที่ช่วยให้เราประเมินแบบจำลองของเรา

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 วินาที เป็นคาร์ดิโอที่ดีเยี่ยมสำหรับนิ้วของคุณและจะช่วยให้ผู้อื่นเห็นเรื่องราว