Алгоритм линейной регрессии
Чтобы по-настоящему понять линейную регрессию, полезно разобраться в том, как работает её алгоритм. Код функции ols() занимает сотни строк, поскольку она должна работать с любой формулой и любым набором данных. Однако в случае простой линейной регрессии для конкретного набора данных алгоритм можно реализовать всего в нескольких строках кода.
Порядок действий:
- Сначала напишите функцию для вычисления суммы квадратов, используя следующий синтаксис:
def function_name(args):
# some calculations with the args
return outcome
- Затем с помощью функции
minimize()из библиотекиscipyнайдите коэффициенты, при которых эта функция принимает минимальное значение.
Значения объясняющей переменной (столбец n_convenience набора данных taiwan_real_estate) доступны как x_actual.
Значения целевой переменной (столбец price_twd_msq набора данных taiwan_real_estate) доступны как y_actual.
Функция minimize() уже загружена.
Это упражнение является частью курса
Промежуточная регрессия со statsmodels в Python
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Complete the function
def calc_sum_of_squares(coeffs):
# Unpack coeffs
____, ____ = ____
# Calculate predicted y-values
y_pred = ____ + ____ * ____
# Calculate differences between y_pred and y_actual
y_diff = ____ - ____
# Calculate sum of squares
sum_sq = ____
# Return sum of squares
return sum_sq
# Test the function with intercept 10 and slope 1
print(calc_sum_of_squares([10, 1]))