โมเดลเชิงเส้นในมานุษยวิทยา
หากพบชิ้นส่วนกระดูกของมนุษย์ผู้ใหญ่ที่มีชีวิตอยู่เมื่อหลายพันปีก่อน เราจะประมาณความสูงของเจ้าของกระดูกนั้นได้อย่างไร? แบบฝึกหัดนี้ได้รับแรงบันดาลใจจากงานของ Mildred Trotter นักมานุษยวิทยาทางนิติเวช ซึ่งสร้างโมเดลถดถอยสำหรับคำนวณประมาณความสูงจาก "กระดูกยาว" หรือกระดูกต้นขาของมนุษย์ และโมเดลนี้ยังคงถูกใช้งานอย่างแพร่หลายในปัจจุบัน
ในแบบฝึกหัดนี้ จะใช้ข้อมูลจากผู้คนจำนวนมากและไลบรารี scikit-learn ของ Python เพื่อสร้างโมเดลเชิงเส้นที่เชื่อมโยงความยาวของกระดูกต้นขากับความสูงโดยรวมของบุคคล จากนั้นนำโมเดลที่ได้ไปใช้ทำนายความสูงของบรรพบุรุษโบราณ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Linear Modeling in Python
คำแนะนำการฝึกหัด
- import
LinearRegressionจากsklearn.linear_modelและกำหนดค่าเริ่มต้นของโมเดลด้วยfit_intercept=False - ปรับรูปร่างอาร์เรย์ข้อมูล
legsและheightsที่โหลดไว้แล้ว จาก "1-by-N" เป็นอาร์เรย์ "N-by-1" - ส่งอาร์เรย์ที่ปรับรูปร่างแล้ว
legsและheightsเข้าไปในmodel.fit() - ใช้
model.predict()เพื่อทำนายค่าfossil_heightจากฟอสซิลที่พึ่งค้นพบ โดยกำหนดfossil_leg = 50.7
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# import the sklearn class LinearRegression and initialize the model
from sklearn.____ import ____
model = LinearRegression(fit_intercept=False)
# Prepare the measured data arrays and fit the model to them
legs = legs.reshape(len(____),1)
heights = heights.reshape(len(____),1)
model.fit(____, heights)
# Use the fitted model to make a prediction for the found femur
fossil_leg = np.array(50.7).reshape(1, -1)
fossil_height = model.predict(____)
print("Predicted fossil height = {:0.2f} cm".format(fossil_height[0,0]))