Zacznij terazZacznij za darmo

Model liniowy w antropologii

Wyobraź sobie, że podczas wykopalisk odnaleziono fragment szkieletu dorosłego człowieka sprzed tysięcy lat. Jak można oszacować wzrost tej osoby? To ćwiczenie jest częściowo inspirowane pracą antropolożki sądowej Mildred Trotter, która opracowała model regresji do szacowania wzrostu na podstawie ludzkich kości długich – kości udowych (femur). Model ten jest powszechnie stosowany do dziś.

W tym ćwiczeniu użyjesz danych zebranych od wielu żyjących osób oraz biblioteki scikit-learn, aby zbudować model liniowy opisujący zależność między długością kości udowej a wzrostem człowieka. Następnie zastosujesz ten model, by oszacować wzrost starożytnego przodka.

To ćwiczenie jest częścią kursu

Wprowadzenie do modelowania liniowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj LinearRegression z sklearn.linear_model i zainicjalizuj model z parametrem fit_intercept=False.
  • Przekształć wczytane tablice danych legs i heights z postaci "1-na-N" do postaci "N-na-1".
  • Przekaż przekształcone tablice legs i heights do metody model.fit().
  • Użyj metody model.predict(), aby przewidzieć wartość fossil_height dla nowo znalezionej skamieniałości fossil_leg = 50.7.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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]))
Edytuj i uruchom kod