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:
123456import 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
Datasettet har alltså 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.
1234X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
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:
123beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
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 innehåller två element, så innebär
a, b = my_iterator
detsamma som
a = my_iterator[0]
b = my_iterator[1]
Eftersom returvärdet från funktionen polyfit() är en NumPy-array med två värden, kan vi göra så.
Göra förutsägelser
Nu kan vi rita linjen och förutsäga nya variabler med hjälp av parametrarna.
123plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Nu när vi har parametrarna kan vi använda den linjära regressions-ekvationen för att förutsäga nya värden.
123X_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)
Det är alltså ganska enkelt att få fram parametrarna för den linjära regressionen. Men vissa bibliotek kan också ge dig extra information.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain what the parameters beta_0 and beta_1 represent?
How can I interpret the scatterplot and the fitted line?
What extra information can other libraries provide for linear regression?
Fantastiskt!
Completion betyg förbättrat till 5.26
Bygga Linjär Regression Med NumPy
Svep för att visa menyn
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:
123456import 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
Datasettet har alltså 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.
1234X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
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:
123beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
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 innehåller två element, så innebär
a, b = my_iterator
detsamma som
a = my_iterator[0]
b = my_iterator[1]
Eftersom returvärdet från funktionen polyfit() är en NumPy-array med två värden, kan vi göra så.
Göra förutsägelser
Nu kan vi rita linjen och förutsäga nya variabler med hjälp av parametrarna.
123plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
Nu när vi har parametrarna kan vi använda den linjära regressions-ekvationen för att förutsäga nya värden.
123X_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)
Det är alltså ganska enkelt att få fram parametrarna för den linjära regressionen. Men vissa bibliotek kan också ge dig extra information.
Tack för dina kommentarer!