Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Побудова Лінійної Регресії за Допомогою NumPy | Проста Лінійна Регресія
Лінійна Регресія з Python

bookПобудова Лінійної Регресії за Допомогою NumPy

Ви вже знаєте, що таке проста лінійна регресія і як знайти пряму, яка найкраще підходить до даних. Тепер ви пройдете всі етапи побудови лінійної регресії для реального набору даних.

Завантаження даних

Маємо файл simple_height_data.csv з даними з наших прикладів. Завантажимо файл і переглянемо його:

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

Отже, набір даних має два стовпці: перший — це 'Father', який є вхідною ознакою, а другий — 'Height', що є нашою цільовою змінною.

Ми призначимо цільові значення змінній y, а значення ознаки — X та побудуємо діаграму розсіювання.

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

Знаходження параметрів

NumPy має зручну функцію для знаходження параметрів лінійної регресії.

Лінійна регресія — це поліноміальна регресія першого ступеня (про поліноміальну регресію ми поговоримо в наступних розділах). Саме тому потрібно встановити deg=1, щоб отримати параметри для лінійної регресії.
Ось приклад:

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
Примітка

Якщо ви не знайомі з синтаксисом beta_1, beta_0 = np.polyfit(X,y,1), це називається розпаковуванням. Якщо у вас є ітератор (наприклад, список, масив NumPy або серія pandas), який містить два елементи, запис

a, b = my_iterator

еквівалентний

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

Оскільки результат функції polyfit() — це масив NumPy з двома значеннями, ми можемо так робити.

Створення прогнозів

Тепер ми можемо побудувати лінію та передбачити нові змінні, використовуючи отримані параметри.

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

Тепер, коли ми маємо параметри, можемо використати рівняння лінійної регресії для прогнозування нових значень.

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

Отримати параметри лінійної регресії досить просто. Однак деякі бібліотеки також можуть надати додаткову інформацію.

question mark

Параметри простої лінійної регресії можна знайти за допомогою функції NumPy:

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookПобудова Лінійної Регресії за Допомогою NumPy

Ви вже знаєте, що таке проста лінійна регресія і як знайти пряму, яка найкраще підходить до даних. Тепер ви пройдете всі етапи побудови лінійної регресії для реального набору даних.

Завантаження даних

Маємо файл simple_height_data.csv з даними з наших прикладів. Завантажимо файл і переглянемо його:

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

Отже, набір даних має два стовпці: перший — це 'Father', який є вхідною ознакою, а другий — 'Height', що є нашою цільовою змінною.

Ми призначимо цільові значення змінній y, а значення ознаки — X та побудуємо діаграму розсіювання.

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

Знаходження параметрів

NumPy має зручну функцію для знаходження параметрів лінійної регресії.

Лінійна регресія — це поліноміальна регресія першого ступеня (про поліноміальну регресію ми поговоримо в наступних розділах). Саме тому потрібно встановити deg=1, щоб отримати параметри для лінійної регресії.
Ось приклад:

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
Примітка

Якщо ви не знайомі з синтаксисом beta_1, beta_0 = np.polyfit(X,y,1), це називається розпаковуванням. Якщо у вас є ітератор (наприклад, список, масив NumPy або серія pandas), який містить два елементи, запис

a, b = my_iterator

еквівалентний

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

Оскільки результат функції polyfit() — це масив NumPy з двома значеннями, ми можемо так робити.

Створення прогнозів

Тепер ми можемо побудувати лінію та передбачити нові змінні, використовуючи отримані параметри.

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

Тепер, коли ми маємо параметри, можемо використати рівняння лінійної регресії для прогнозування нових значень.

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

Отримати параметри лінійної регресії досить просто. Однак деякі бібліотеки також можуть надати додаткову інформацію.

question mark

Параметри простої лінійної регресії можна знайти за допомогою функції NumPy:

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 3
some-alt