Mô hình tuyến tính trong Nhân học
Nếu bạn tìm thấy một phần bộ xương của một người trưởng thành sống cách đây hàng nghìn năm, làm sao bạn có thể ước tính chiều cao của người đó? Bài tập này phần nào lấy cảm hứng từ công trình của nhà nhân chủng học pháp y Mildred Trotter, người đã xây dựng một mô hình hồi quy để ước tính tầm vóc từ các "xương dài" của người, cụ thể là xương đùi, và đến nay vẫn được dùng rộng rãi.
Trong bài này, bạn sẽ dùng dữ liệu từ nhiều người còn sống và thư viện scikit-learn của Python để xây dựng một mô hình tuyến tính liên hệ giữa chiều dài xương đùi (xương bắp đùi) và "tầm vóc" (chiều cao tổng thể) của một người. Sau đó, bạn sẽ áp dụng mô hình để dự đoán chiều cao của tổ tiên xa xưa.

Bài tập này là một phần của khóa học
Nhập môn Mô hình tuyến tính với Python
Hướng dẫn bài tập
- import
LinearRegressiontừsklearn.linear_modelvà khởi tạo mô hình vớifit_intercept=False. - Reshape các mảng dữ liệu đã nạp sẵn
legsvàheightstừ dạng "1-by-N" sang mảng "N-by-1". - Truyền các mảng đã reshape
legsvàheightsvàomodel.fit(). - dùng
model.predict()để dự đoán giá trịfossil_heightcho mẫu hóa thạch vừa tìm thấyfossil_leg = 50.7.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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]))