Реализуйте линейную регрессию методом нормального уравнения (аналитическое решение).
β = (X^T X)^{-1} X^T y
Принимает матрицу признаков X и вектор y. Добавьте столбец единиц (intercept) самостоятельно.
Верните коэффициенты (intercept первый), каждый округлён до 4 знаков.
def linear_regression(X: list[list[float]], y: list[float]) -> list[float]:
linear_regression([[1.0],[2.0],[3.0],[4.0]], [2.0,4.0,6.0,8.0]) → [0.0, 2.0]
(y = 0 + 2x → intercept = 0, коэффициент при x = 2)
- 2 ≤ n ≤ 1000
- 1 ≤ d ≤ 50
- X^T X гарантированно обратима
X = [[1],[2],[3],[4]]y = [2,4,6,8][0,2]X = [[1],[2],[3]]y = [3,5,7][1,2]X = [[1,1],[1,2],[2,1],[2,2]]y = [6,8,7,9][3,1,2]