Aan de slagBegin gratis

Lineair model in de antropologie

Stel dat je een deel van een skelet vindt van een volwassen mens die duizenden jaren geleden leefde. Hoe kun je dan de lengte van die persoon schatten? Deze oefening is deels geïnspireerd op het werk van forensisch antropoloog Mildred Trotter, die een regressiemodel opstelde om de lichaamslengte te schatten op basis van menselijke "lange botten" of dijbenen (femurs), een methode die vandaag de dag veel wordt gebruikt.

In deze oefening gebruik je gegevens van veel levende mensen en de Python-bibliotheek scikit-learn om een lineair model te bouwen dat de lengte van het dijbeen (thigh bone) relateert aan de "statuur" (totale lichaamslengte) van de persoon. Daarna pas je je model toe om een voorspelling te doen over de lengte van je oeroude voorouder.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Importeer LinearRegression uit sklearn.linear_model en initialiseer het model met fit_intercept=False.
  • Vorm de vooraf ingeladen arrays legs en heights om van "1-bij-N" naar "N-bij-1"-arrays.
  • Geef de omgevormde arrays legs en heights door aan model.fit().
  • Gebruik model.predict() om de waarde fossil_height te voorspellen voor het nieuw gevonden fossiel fossil_leg = 50.7.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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]))
Code bewerken en uitvoeren