Линейная модель в антропологии
Представьте, что вы обнаружили фрагмент скелета взрослого человека, жившего тысячи лет назад. Как можно оценить рост этого человека? Это упражнение отчасти вдохновлено работой судебного антрополога Милдред Троттер, которая разработала регрессионную модель для оценки роста человека по «длинным костям» — в частности, по бедренной кости. Эта модель широко применяется и по сей день.
В этом упражнении вы воспользуетесь данными о живых людях и библиотекой Python scikit-learn, чтобы построить линейную модель, связывающую длину бедренной кости с ростом человека. Затем вы применяете построенную модель, чтобы предсказать рост вашего древнего предка.

Это упражнение является частью курса
Введение в линейное моделирование на Python
Инструкции к упражнению
- Импортируйте
LinearRegressionизsklearn.linear_modelи инициализируйте модель с параметромfit_intercept=False. - Преобразуйте предварительно загруженные массивы
legsиheightsиз формата «1 на N» в формат «N на 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]))