Математика, лежащая в основе построения плоскости вместо линии
Делиться

В этой записи блога мы обсуждаем множественную линейную регрессию .
Мы все знаем, что это один из первых алгоритмов, который мы изучаем на нашем пути машинного обучения, поскольку он является расширением простой линейной регрессии.
Мы знаем, что в простой линейной регрессии у нас есть одна независимая переменная и одна целевая переменная, а в множественной линейной регрессии у нас есть две или более независимых переменных и одна целевая переменная.
Вместо того чтобы просто применить алгоритм с помощью Python, в этой статье мы рассмотрим математические основы алгоритма множественной линейной регрессии.
Давайте рассмотрим набор данных Fish Market, чтобы понять математику множественной линейной регрессии.
Этот набор данных включает в себя физические характеристики каждой рыбы, такие как:
- Вид – тип рыбы (например, лещ, плотва, щука)
- Вес – вес рыбы в граммах (это будет наша целевая переменная)
- Длина1, Длина2, Длина3 – различные измерения длины (в см)
- Высота – высота рыбы (в см)
- Ширина – диагональная ширина тела рыбы (в см).
Чтобы понять множественную линейную регрессию, мы будем использовать две независимые переменные, чтобы упростить и облегчить визуализацию.
Мы рассмотрим выборку из 20 точек из этого набора данных.

Мы рассмотрели 20-точечную выборку из набора данных Fish Market, которая включает измерения 20 отдельных рыб, а именно их высоту и ширину, а также соответствующий вес. Эти три значения помогут нам понять, как работает множественная линейная регрессия на практике.
Сначала давайте используем Python для построения модели множественной линейной регрессии на основе нашей выборки из 20 точек.
Код:
import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression # 20-точечная выборка данных из набора данных Fish Market data = [ [11.52, 4.02, 242.0], [12.48, 4.31, 290.0], [12.38, 4.70, 340.0], [12.73, 4.46, 363.0], [12.44, 5.13, 430.0], [13.60, 4.93, 450.0], [14.18, 5.28, 500.0], [12.67, 4.69, 390.0], [14.00, 4.84, 450.0], [14.23, 4.96, 500.0], [14.26, 5.10, 475.0], [14.37, 4.81, 500.0], [13.76, 4.37, 500.0], [13.91, 5.07, 340.0], [14.95, 5.17, 600.0], [15.44, 5.58, 600.0], [14.86, 5.29, 700.0], [14.94, 5.20, 700.0], [15.63, 5.13, 610.0], [14.47, 5.73, 650.0] ] # Создать DataFrame df = pd.DataFrame(data, columns=[«Height», «Width», «Вес»]) # Независимые переменные (Рост и Ширина) X = df[[«Рост», «Ширина»]] # Целевая переменная (Вес) y = df[«Вес»] # Подгонка модели model = LinearRegression().fit(X, y) # Извлечение коэффициентов b0 = model.intercept_ # β₀ b1, b2 = model.coef_ # β₁ (Рост), β₂ (Ширина) # Печать результатов print(f»Intercept (β₀): {b0:.4f}») print(f»Height slope (β₁): {b1:.4f}») print(f»Width slope (β₂): {b2:.4f}»)
Результаты:
Перехват (β₀): -1005,2810
Высота наклона (β₁): 78,1404
Наклон ширины (β₂): 82,0572
Здесь мы не делали разделения на обучающую и тестовую выборки, поскольку набор данных небольшой, и мы пытаемся понять математику, лежащую в основе модели, а не построить ее.
Источник: towardsdatascience.com


























