Побудова Лінійної Регресії за Допомогою NumPy
Ви вже знаєте, що таке проста лінійна регресія і як знайти пряму, яка найкраще підходить до даних. Тепер ви пройдете всі етапи побудови лінійної регресії для реального набору даних.
Завантаження даних
Маємо файл simple_height_data.csv
з даними з наших прикладів. Завантажимо файл і переглянемо його:
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
Отже, набір даних має два стовпці: перший — це 'Father'
, який є вхідною ознакою, а другий — 'Height'
, що є нашою цільовою змінною.
Ми призначимо цільові значення змінній y
, а значення ознаки — X
та побудуємо діаграму розсіювання.
12345678910import 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()
Знаходження параметрів
NumPy має зручну функцію для знаходження параметрів лінійної регресії.
Лінійна регресія — це поліноміальна регресія першого ступеня (про поліноміальну регресію ми поговоримо в наступних розділах). Саме тому потрібно встановити deg=1
, щоб отримати параметри для лінійної регресії.
Ось приклад:
12345678910import 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)
Якщо ви не знайомі з синтаксисом 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 з двома значеннями, ми можемо так робити.
Створення прогнозів
Тепер ми можемо побудувати лінію та передбачити нові змінні, використовуючи отримані параметри.
123456789101112import 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()
Тепер, коли ми маємо параметри, можемо використати рівняння лінійної регресії для прогнозування нових значень.
1234567891011import 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)
Отримати параметри лінійної регресії досить просто. Однак деякі бібліотеки також можуть надати додаткову інформацію.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 5.26
Побудова Лінійної Регресії за Допомогою NumPy
Свайпніть щоб показати меню
Ви вже знаєте, що таке проста лінійна регресія і як знайти пряму, яка найкраще підходить до даних. Тепер ви пройдете всі етапи побудови лінійної регресії для реального набору даних.
Завантаження даних
Маємо файл simple_height_data.csv
з даними з наших прикладів. Завантажимо файл і переглянемо його:
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
Отже, набір даних має два стовпці: перший — це 'Father'
, який є вхідною ознакою, а другий — 'Height'
, що є нашою цільовою змінною.
Ми призначимо цільові значення змінній y
, а значення ознаки — X
та побудуємо діаграму розсіювання.
12345678910import 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()
Знаходження параметрів
NumPy має зручну функцію для знаходження параметрів лінійної регресії.
Лінійна регресія — це поліноміальна регресія першого ступеня (про поліноміальну регресію ми поговоримо в наступних розділах). Саме тому потрібно встановити deg=1
, щоб отримати параметри для лінійної регресії.
Ось приклад:
12345678910import 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)
Якщо ви не знайомі з синтаксисом 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 з двома значеннями, ми можемо так робити.
Створення прогнозів
Тепер ми можемо побудувати лінію та передбачити нові змінні, використовуючи отримані параметри.
123456789101112import 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()
Тепер, коли ми маємо параметри, можемо використати рівняння лінійної регресії для прогнозування нових значень.
1234567891011import 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)
Отримати параметри лінійної регресії досить просто. Однак деякі бібліотеки також можуть надати додаткову інформацію.
Дякуємо за ваш відгук!