Олимпиадный тренинг

Задача . Ищем лучшие k и b. Задача 1. Метод 1. Полный перебор


Задача

Темы:
Напишите программу, которая методом перебора найдет лучшие параметры k и b для линейной регрессии.

У нас есть данные о зависимости оценки за экзамен от времени подготовки:

  • Время подготовки (часы): [1, 2, 3, 4, 5]

  • Оценка за экзамен: [2, 4, 5, 4, 6]

Мы хотим найти такие k и b в формуле y = k*x + b, чтобы наша прямая максимально точно описывала эти данные.

Вам дана функция для расчета ошибки, которую вы писали на предыдущем шаге (здесь вам ее писать не нужно, она уже написана, но ее реализация скрыта от вас).

 

Ваша задача:

  1. Ввести исходный набор данных и преобразовать его в массив numpy. 
    • в первой строке вводится значения времени подготовки
    • во второй - полученную оценку за экзамен (время подготови и оценка связаны индексами, то есть нулевой элемент в первой строке (время) соответствует нулевому элементу второй строке (оценке))
  2. Создать диапазоны для перебора параметров:
    • k от -1 до 2 (10 значений)
    • b от 0 до 3 (10 значений)
  3. Написать перебор всех комбинаций k и b.
  4. Для каждой комбинации посчитать ошибку с помощью функции calculate_error().
  5. Найти комбинацию с минимальной ошибкой.
  6. Вывести найденные k и b через пробел (значения k и b должны быть выведены с точностью до трех знаков после точки).

Примеры
Входные данныеВыходные данные
1 111 179 425 205 289 138 255 366 134 129
266 429 1020 492 693 331 612 878 321 309
2 3

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя