Коэффициент детерминации прогнозов задержки
Условие
Служба доставки еды хранит фактические задержки заказов и результаты модели, предсказывающей задержку в минутах. Данные поступают двумя таблицами: первая содержит все доставленные заказы, вторая — только заказы, для которых модель успела построить прогноз.
Строки необходимо сопоставить по идентификатору заказа. Заказы из первой таблицы, отсутствующие во второй, не участвуют в вычислении. Каждый идентификатор в пределах одной таблицы встречается не более одного раза, а каждый идентификатор второй таблицы имеется в первой.
Требуется вычислить коэффициент детерминации R² для заказов с прогнозом. Пусть y_i — фактическая задержка, p_i — прогноз, а среднее фактических задержек равно \(\bar y\). Если \(SST=\sum_i(y_i-\bar y)^2>0\), то
\[ R^2=1-\frac{SSE}{SST},\qquad SSE=\sum_i(y_i-p_i)^2. \]
Если SST равно нулю, то выводится 1.000 при SSE, равном нулю, и 0.000 в противном случае. При равенстве всех фактических задержек применяется именно это правило.
Формат ввода
В первой строке даны два целых числа n и m: число строк в таблице доставленных заказов и число строк в таблице прогнозов.
В следующих n строках даны идентификатор заказа order_id и фактическая задержка actual_delay.
В следующих m строках даны идентификатор заказа order_id и прогноз задержки predicted_delay.
Формат вывода
Выведите одно число — значение R² с тремя знаками после десятичной точки.
Значение округляется до ближайшего числа с тремя знаками после десятичной точки. Если число находится ровно посередине, округление выполняется от нуля.
Ограничения
\(1\le n\le 3999\), \(1\le m\le n\), \(n+m\le 4000\).
\(1\le order\_id\le 10^9\).
\(0\le actual\_delay\le 360\), \(0\le predicted\_delay\le 360\).
Идентификаторы внутри каждой таблицы различны. Все идентификаторы из таблицы прогнозов присутствуют в таблице доставленных заказов. Входные строки не содержат пропусков. Длина текстового представления каждого числового поля не превышает 10 символов.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается