Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Побудова Лінійної Регресії | Секція
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
Основи Контрольованого Навчання

bookПобудова Лінійної Регресії

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

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

Маємо файл 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 та побудуємо діаграму розсіювання.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Пошук параметрів

Для реалізації лінійної регресії у Scikit-learn використовується клас LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Параметри

Клас LinearRegression має кілька параметрів, які визначають, як буде навчатися модель.

  • fit_intercept (за замовчуванням=True): Визначає, чи обчислювати вільний член (зміщення) для цієї моделі. Якщо встановлено False, вільний член не використовується у розрахунках (тобто дані мають бути центровані).
  • copy_X (за замовчуванням=True): Якщо True, X буде скопійовано; інакше може бути перезаписано.
  • n_jobs (за замовчуванням=None): Кількість потоків для обчислень. Це дає приріст швидкості лише для n_targets > 1 та достатньо великих задач. None означає 1, якщо не використовується контекст joblib.parallel_backend. -1 означає використання всіх процесорів.
  • positive (за замовчуванням=False): Якщо встановлено True, коефіцієнти будуть лише додатними. Ця опція підтримується лише для щільних масивів.

Основні методи

  • fit(X, y): Навчання лінійної моделі.
  • predict(X): Прогнозування за допомогою лінійної моделі.
  • score(X, y): Повертає коефіцієнт детермінації для прогнозу.

Атрибути

  • coef_: Оцінені коефіцієнти для задачі лінійної регресії.
  • intercept_: Незалежний член у лінійній моделі.

У Scikit-learn використовується клас LinearRegression з модуля linear_model. На відміну від NumPy, тут не потрібно визначати ступінь; цей клас спеціально призначений для лінійних моделей. Для обчислення параметрів використовується метод .fit().

Ось приклад:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Примітка

Якщо ви не знайомі з синтаксисом model.intercept_ та model.coef_, це конвенція Scikit-learn. Атрибути, які обчислюються (навчаються) під час процесу тренування, завжди закінчуються на підкреслення _ (наприклад, intercept_, coef_). Атрибут intercept_ містить одне значення, а coef_ — масив коефіцієнтів для кожної ознаки (у простій лінійній регресії містить лише один елемент).

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

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

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Тепер, коли модель навчена, можна використовувати метод .predict() для прогнозування нових значень.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

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

question mark

Який клас використовується для реалізації лінійної регресії у Scikit-learn?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

bookПобудова Лінійної Регресії

Свайпніть щоб показати меню

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

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

Маємо файл 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 та побудуємо діаграму розсіювання.

123456
import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Пошук параметрів

Для реалізації лінійної регресії у Scikit-learn використовується клас LinearRegression.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Параметри

Клас LinearRegression має кілька параметрів, які визначають, як буде навчатися модель.

  • fit_intercept (за замовчуванням=True): Визначає, чи обчислювати вільний член (зміщення) для цієї моделі. Якщо встановлено False, вільний член не використовується у розрахунках (тобто дані мають бути центровані).
  • copy_X (за замовчуванням=True): Якщо True, X буде скопійовано; інакше може бути перезаписано.
  • n_jobs (за замовчуванням=None): Кількість потоків для обчислень. Це дає приріст швидкості лише для n_targets > 1 та достатньо великих задач. None означає 1, якщо не використовується контекст joblib.parallel_backend. -1 означає використання всіх процесорів.
  • positive (за замовчуванням=False): Якщо встановлено True, коефіцієнти будуть лише додатними. Ця опція підтримується лише для щільних масивів.

Основні методи

  • fit(X, y): Навчання лінійної моделі.
  • predict(X): Прогнозування за допомогою лінійної моделі.
  • score(X, y): Повертає коефіцієнт детермінації для прогнозу.

Атрибути

  • coef_: Оцінені коефіцієнти для задачі лінійної регресії.
  • intercept_: Незалежний член у лінійній моделі.

У Scikit-learn використовується клас LinearRegression з модуля linear_model. На відміну від NumPy, тут не потрібно визначати ступінь; цей клас спеціально призначений для лінійних моделей. Для обчислення параметрів використовується метод .fit().

Ось приклад:

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Примітка

Якщо ви не знайомі з синтаксисом model.intercept_ та model.coef_, це конвенція Scikit-learn. Атрибути, які обчислюються (навчаються) під час процесу тренування, завжди закінчуються на підкреслення _ (наприклад, intercept_, coef_). Атрибут intercept_ містить одне значення, а coef_ — масив коефіцієнтів для кожної ознаки (у простій лінійній регресії містить лише один елемент).

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

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

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Тепер, коли модель навчена, можна використовувати метод .predict() для прогнозування нових значень.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(X_new) # Predict the target print('Predicted y: ', y_pred)
copy

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

question mark

Який клас використовується для реалізації лінійної регресії у Scikit-learn?

Select the correct answer

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

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

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

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