Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Opbygning af Lineær Regression ved Hjælp af Statsmodels | Simpel Lineær Regression
Lineær Regression med Python
course content

Kursusindhold

Lineær Regression med Python

Lineær Regression med Python

1. Simpel Lineær Regression
2. Multipel Lineær Regression
3. Polynomiel Regression
4. Valg af den Bedste Model

book
Opbygning af Lineær Regression ved Hjælp af Statsmodels

I det foregående kapitel brugte vi en funktion fra NumPy til at beregne parametrene.
Nu vil vi bruge klasseobjektet i stedet for funktionen til at repræsentere lineær regression. Denne tilgang kræver flere linjer kode for at finde parametrene, men den gemmer en masse nyttig information i objektet og gør forudsigelsen mere ligetil.

Opbygning af en lineær regressionsmodel

I statsmodels kan OLS-klassen bruges til at oprette en lineær regressionsmodel.

Vi skal først initialisere et OLS-klasseobjekt ved hjælp af sm.OLS(y, X_tilde). Derefter trænes det med metoden fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Hvilket svarer til:

model = sm.OLS(y, X_tilde).fit()
Note
Bemærk

Konstruktøren for OLS-klassen forventer et specifikt array X_tilde som input, hvilket vi så i Normal Ligning. Derfor skal du konvertere dit X-array til X_tilde. Dette kan opnås ved at bruge funktionen sm.add_constant().

Parametre

Når modellen er trænet, kan du nemt tilgå parametrene ved at bruge attributten params.

12345678910111213141516
import 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)
copy

At foretage forudsigelser

Nye observationer kan nemt forudsiges ved hjælp af predict()-metoden, men inputtet skal også forbehandles for disse:

1234567891011121314151617
import 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)
copy

Hentning af oversigt

Som du sikkert har bemærket, er brugen af OLS-klassen ikke lige så enkel som funktionen polyfit(). Men brugen af OLS har sine fordele. Under træningen beregnes der mange statistiske oplysninger. Du kan få adgang til disse oplysninger ved hjælp af summary()-metoden.

123456789101112
import 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())
copy

Det er mange statistiske oplysninger. Vi vil gennemgå de vigtigste dele af tabellen i senere afsnit.

question mark

Vælg den FORKERTE påstand.

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

course content

Kursusindhold

Lineær Regression med Python

Lineær Regression med Python

1. Simpel Lineær Regression
2. Multipel Lineær Regression
3. Polynomiel Regression
4. Valg af den Bedste Model

book
Opbygning af Lineær Regression ved Hjælp af Statsmodels

I det foregående kapitel brugte vi en funktion fra NumPy til at beregne parametrene.
Nu vil vi bruge klasseobjektet i stedet for funktionen til at repræsentere lineær regression. Denne tilgang kræver flere linjer kode for at finde parametrene, men den gemmer en masse nyttig information i objektet og gør forudsigelsen mere ligetil.

Opbygning af en lineær regressionsmodel

I statsmodels kan OLS-klassen bruges til at oprette en lineær regressionsmodel.

Vi skal først initialisere et OLS-klasseobjekt ved hjælp af sm.OLS(y, X_tilde). Derefter trænes det med metoden fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Hvilket svarer til:

model = sm.OLS(y, X_tilde).fit()
Note
Bemærk

Konstruktøren for OLS-klassen forventer et specifikt array X_tilde som input, hvilket vi så i Normal Ligning. Derfor skal du konvertere dit X-array til X_tilde. Dette kan opnås ved at bruge funktionen sm.add_constant().

Parametre

Når modellen er trænet, kan du nemt tilgå parametrene ved at bruge attributten params.

12345678910111213141516
import 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)
copy

At foretage forudsigelser

Nye observationer kan nemt forudsiges ved hjælp af predict()-metoden, men inputtet skal også forbehandles for disse:

1234567891011121314151617
import 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)
copy

Hentning af oversigt

Som du sikkert har bemærket, er brugen af OLS-klassen ikke lige så enkel som funktionen polyfit(). Men brugen af OLS har sine fordele. Under træningen beregnes der mange statistiske oplysninger. Du kan få adgang til disse oplysninger ved hjælp af summary()-metoden.

123456789101112
import 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())
copy

Det er mange statistiske oplysninger. Vi vil gennemgå de vigtigste dele af tabellen i senere afsnit.

question mark

Vælg den FORKERTE påstand.

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 4
some-alt