Lineaire Regressie Bouwen Met Behulp Van Statsmodels
In het vorige hoofdstuk gebruikten we een functie van NumPy om de parameters te berekenen.
Nu gebruiken we het klasse-object in plaats van de functie om de lineaire regressie te representeren. Deze benadering vereist meer regels code om de parameters te vinden, maar slaat veel nuttige informatie op in het object en maakt het voorspellen eenvoudiger.
Een lineair regressiemodel bouwen
In statsmodels kan de OLS
-klasse worden gebruikt om een lineair regressiemodel te maken.
We moeten eerst een OLS
-klasse-object initialiseren met
sm.OLS(y, X_tilde)
.
Vervolgens trainen we het met de fit()
-methode.
model = sm.OLS(y, X_tilde)
model = model.fit()
Dit is gelijk aan:
model = sm.OLS(y, X_tilde).fit()
De constructor van de OLS
-klasse verwacht een specifieke array X_tilde
als invoer, zoals gezien in de Normale Vergelijking. Daarom moet je jouw X
-array omzetten naar X_tilde
. Dit kan worden bereikt met de functie sm.add_constant()
.
Parameters bepalen
Wanneer het model is getraind, zijn de parameters eenvoudig toegankelijk via het attribuut params
.
12345678910111213141516import statsmodels.api as sm # import statsmodels import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
Voorspellingen maken
Nieuwe gevallen kunnen eenvoudig worden voorspeld met de methode predict()
, maar ook hiervoor moet je de invoer preprocessen:
1234567891011121314151617import statsmodels.api as sm import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print(y_pred)
De samenvatting opvragen
Zoals je waarschijnlijk hebt gemerkt, is het gebruik van de OLS
-klasse minder eenvoudig dan de functie polyfit()
. Maar het gebruik van OLS
heeft voordelen. Tijdens het trainen worden veel statistische gegevens berekend. Deze informatie is toegankelijk via de methode summary()
.
123456789101112import statsmodels.api as sm import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
Dat zijn veel statistieken. We bespreken de belangrijkste onderdelen van de tabel in latere secties.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain what the `add_constant` function does?
What information can I find in the `summary()` output?
How do I interpret the values of `beta_0` and `beta_1`?
Awesome!
Completion rate improved to 5.26
Lineaire Regressie Bouwen Met Behulp Van Statsmodels
Veeg om het menu te tonen
In het vorige hoofdstuk gebruikten we een functie van NumPy om de parameters te berekenen.
Nu gebruiken we het klasse-object in plaats van de functie om de lineaire regressie te representeren. Deze benadering vereist meer regels code om de parameters te vinden, maar slaat veel nuttige informatie op in het object en maakt het voorspellen eenvoudiger.
Een lineair regressiemodel bouwen
In statsmodels kan de OLS
-klasse worden gebruikt om een lineair regressiemodel te maken.
We moeten eerst een OLS
-klasse-object initialiseren met
sm.OLS(y, X_tilde)
.
Vervolgens trainen we het met de fit()
-methode.
model = sm.OLS(y, X_tilde)
model = model.fit()
Dit is gelijk aan:
model = sm.OLS(y, X_tilde).fit()
De constructor van de OLS
-klasse verwacht een specifieke array X_tilde
als invoer, zoals gezien in de Normale Vergelijking. Daarom moet je jouw X
-array omzetten naar X_tilde
. Dit kan worden bereikt met de functie sm.add_constant()
.
Parameters bepalen
Wanneer het model is getraind, zijn de parameters eenvoudig toegankelijk via het attribuut params
.
12345678910111213141516import statsmodels.api as sm # import statsmodels import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
Voorspellingen maken
Nieuwe gevallen kunnen eenvoudig worden voorspeld met de methode predict()
, maar ook hiervoor moet je de invoer preprocessen:
1234567891011121314151617import statsmodels.api as sm import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print(y_pred)
De samenvatting opvragen
Zoals je waarschijnlijk hebt gemerkt, is het gebruik van de OLS
-klasse minder eenvoudig dan de functie polyfit()
. Maar het gebruik van OLS
heeft voordelen. Tijdens het trainen worden veel statistische gegevens berekend. Deze informatie is toegankelijk via de methode summary()
.
123456789101112import statsmodels.api as sm import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
Dat zijn veel statistieken. We bespreken de belangrijkste onderdelen van de tabel in latere secties.
Bedankt voor je feedback!