Условие
Требуется реализовать следующие функции на языке Python.
def linear_func(theta, x) # function value
def linear_func_all(theta, X) # 1-d np.array of function values of all rows of the matrix X
def mean_squared_error(theta, X, y) # MSE value of current regression
def grad_mean_squared_error(theta, X, y) # 1-d array of gradient by theta
theta — одномерный np.array
x — одномерный np.array
X — двумерный np.array. Каждая строка соответствует по размерности вектору theta
y — реальные значения предсказываемой величины
Матрица
X
имеет размер
M
×
N
.
M
строк и
N
столбцов.
Используется линейная функция вида:
h
θ
(
x
)
=
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
N
Mean squared error (MSE) как функция от
θ
:
J
(
θ
)
=
1
M
M
∑
i
=
1
(
y
i
−
h
θ
(
x
(
i
)
)
)
2
. Где
x
(
i
)
—
i
-я строка матрицы
X
Градиент функции MSE:
∇
J
(
θ
)
=
{
∂
J
∂
θ
1
,
∂
J
∂
θ
2
,
.
.
.
,
∂
J
∂
θ
N
}
Пример
X = np.array([[1,2],[3,4],[4,5]])
theta = np.array([5, 6])
y = np.array([1, 2, 1])
linear_func_all(theta, X) # --> array([17, 39, 50])
mean_squared_error(theta, X, y) # --> 1342.0
grad_mean_squared_error(theta, X, y) # --> array([215.33333333, 283.33333333])
Формат выходных данных
Код должен содержать только реализацию функций.