Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Bygga Linjär Regression med NumPy | Enkel Linjär Regression
Linjär Regression med Python
course content

Kursinnehåll

Linjär Regression med Python

Linjär Regression med Python

1. Enkel Linjär Regression
2. Multipel Linjär Regression
3. Polynomregression
4. Välja Den Bästa Modellen

book
Bygga Linjär Regression med NumPy

Du känner redan till vad enkel linjär regression är och hur man hittar den linje som bäst passar data. Nu kommer du att gå igenom alla steg för att bygga en linjär regression för en verklig datamängd.

Laddar data

Vi har en fil, simple_height_data.csv, med data från våra exempel. Vi laddar filen och tittar på den:

123456
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 print(df.head()) # Print the first 5 instances from a dataset
copy

Datasettet har två kolumner: den första är 'Father', vilket är inmatningsfunktionen, och den andra är 'Height', vilket är vår målvariabel.

Vi tilldelar våra målvariabler till variabeln y och funktionsvärden till X och skapar ett spridningsdiagram.

12345678910
import pandas as pd import matplotlib.pyplot as plt 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 = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Hitta parametrar

NumPy har en praktisk funktion för att hitta parametrarna för linjär regression.

Linjär regression är en polynomregression av grad 1 (vi kommer att diskutera polynomregression i senare avsnitt). Därför behöver vi ange deg=1 för att få parametrarna för den linjära regressionen.
Här är ett exempel:

12345678910
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) # Read the files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Notering

Om du inte är bekant med syntaxen beta_1, beta_0 = np.polyfit(X,y,1), så kallas det för uppackning. Om du har en iterator (t.ex. lista, NumPy-array eller pandas-serie) som har två element, så innebär

a, b = my_iterator

detsamma som

a = my_iterator[0]
b = my_iterator[1]

Och eftersom returvärdet från funktionen polyfit() är en NumPy-array med två värden, kan vi göra så här.

Göra förutsägelser

Nu kan vi rita linjen och förutsäga nya variabler med hjälp av parametrarna.

123456789101112
import pandas as pd import numpy as np import matplotlib.pyplot as plt 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'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
copy

Nu när vi har parametrarna kan vi använda linjär regressions-ekvationen för att förutsäga nya värden.

1234567891011
import pandas as pd import numpy as np import matplotlib.pyplot as plt 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'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
copy

Det är alltså ganska enkelt att få parametrarna för den linjära regressionen. Men vissa bibliotek kan också ge dig extra information.

question mark

Du kan hitta parametrarna för enkel linjär regression med hjälp av NumPys funktion:

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

course content

Kursinnehåll

Linjär Regression med Python

Linjär Regression med Python

1. Enkel Linjär Regression
2. Multipel Linjär Regression
3. Polynomregression
4. Välja Den Bästa Modellen

book
Bygga Linjär Regression med NumPy

Du känner redan till vad enkel linjär regression är och hur man hittar den linje som bäst passar data. Nu kommer du att gå igenom alla steg för att bygga en linjär regression för en verklig datamängd.

Laddar data

Vi har en fil, simple_height_data.csv, med data från våra exempel. Vi laddar filen och tittar på den:

123456
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 print(df.head()) # Print the first 5 instances from a dataset
copy

Datasettet har två kolumner: den första är 'Father', vilket är inmatningsfunktionen, och den andra är 'Height', vilket är vår målvariabel.

Vi tilldelar våra målvariabler till variabeln y och funktionsvärden till X och skapar ett spridningsdiagram.

12345678910
import pandas as pd import matplotlib.pyplot as plt 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 = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Hitta parametrar

NumPy har en praktisk funktion för att hitta parametrarna för linjär regression.

Linjär regression är en polynomregression av grad 1 (vi kommer att diskutera polynomregression i senare avsnitt). Därför behöver vi ange deg=1 för att få parametrarna för den linjära regressionen.
Här är ett exempel:

12345678910
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) # Read the files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Notering

Om du inte är bekant med syntaxen beta_1, beta_0 = np.polyfit(X,y,1), så kallas det för uppackning. Om du har en iterator (t.ex. lista, NumPy-array eller pandas-serie) som har två element, så innebär

a, b = my_iterator

detsamma som

a = my_iterator[0]
b = my_iterator[1]

Och eftersom returvärdet från funktionen polyfit() är en NumPy-array med två värden, kan vi göra så här.

Göra förutsägelser

Nu kan vi rita linjen och förutsäga nya variabler med hjälp av parametrarna.

123456789101112
import pandas as pd import numpy as np import matplotlib.pyplot as plt 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'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
copy

Nu när vi har parametrarna kan vi använda linjär regressions-ekvationen för att förutsäga nya värden.

1234567891011
import pandas as pd import numpy as np import matplotlib.pyplot as plt 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'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
copy

Det är alltså ganska enkelt att få parametrarna för den linjära regressionen. Men vissa bibliotek kan också ge dig extra information.

question mark

Du kan hitta parametrarna för enkel linjär regression med hjälp av NumPys funktion:

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 3
some-alt