Ошибка отзывов до и после шага градиента
Условие
Для отзывов мобильного приложения известны число отметок «полезно» и оценка пользователя от 1 до 5. Часть пользователей не указала оценку. Такие отзывы остаются во входных данных, но не участвуют в обучении и вычислении ошибки.
Модель предсказывает оценку отзыва по формуле p_i = w * x_i + b, где x_i — число отметок «полезно», w — вес, b — свободный коэффициент. Для отзывов с известной оценкой используется среднеквадратичная ошибка
L(w, b) = (1 / m) * Σ(p_i - y_i)^2,
где сумма берётся по m отзывам с известной оценкой y_i.
Нужно вычислить значение функции потерь до одного шага градиентного спуска и после него. Производные функции потерь равны
dL/dw = (2 / m) * Σ((p_i - y_i) * x_i),
dL/db = (2 / m) * Σ(p_i - y_i).
Шаг выполняется одновременно для обоих параметров: w_new = w - eta * dL/dw, b_new = b - eta * dL/db. Если значения функции потерь до и после шага точно равны, всё равно следует вывести оба значения в указанном порядке.
Формат ввода
В первой строке дано целое число n — число отзывов.
Во второй строке через пробел даны вещественные числа w, b и eta — начальные параметры модели и скорость обучения.
В следующих n строках даны x_i и y_i через пробел. x_i — целое число отметок «полезно». Значение y_i является целой оценкой от 1 до 5 либо символом -, если оценка отсутствует.
Формат вывода
Выведите через пробел два числа: значение функции потерь до шага и значение функции потерь после шага.
Каждое число необходимо округлить до четырёх знаков после десятичной точки. Если пятый знак после точки равен 5 или больше, четвёртый знак увеличивается на 1.
Ограничения
1 ≤ n ≤ 2000.
0 ≤ x_i ≤ 100.
Для известной оценки 1 ≤ y_i ≤ 5.
Хотя бы у одного отзыва оценка известна, поэтому m ≥ 1 и деления на ноль не возникает.
-1.0000 ≤ w, b ≤ 1.0000.
0.0000 ≤ eta ≤ 0.0100.
Длина записи оценки не превосходит 1 символа.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- БВИ и льготы при поступлении — какой диплом что даёт и сколько лет он действует
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому