Напишите программу, которая методом перебора найдет лучшие параметры
k
и
b
для линейной регрессии.
У нас есть данные о зависимости оценки за экзамен от времени подготовки:
-
Время подготовки (часы): [1, 2, 3, 4, 5]
-
Оценка за экзамен: [2, 4, 5, 4, 6]
Мы хотим найти такие k
и b
в формуле y = k*x + b
, чтобы наша прямая максимально точно описывала эти данные.
Вам дана функция для расчета ошибки, которую вы писали на предыдущем шаге (здесь вам ее писать не нужно, она уже написана, но ее реализация скрыта от вас).
Ваша задача:
- Ввести исходный набор данных и преобразовать его в массив numpy.
- в первой строке вводится значения времени подготовки
- во второй - полученную оценку за экзамен (время подготови и оценка связаны индексами, то есть нулевой элемент в первой строке (время) соответствует нулевому элементу второй строке (оценке))
- Создать диапазоны для перебора параметров:
k
от -1 до 2 (10 значений)
b
от 0 до 3 (10 значений)
- Написать перебор всех комбинаций
k
и b.
- Для каждой комбинации посчитать ошибку с помощью функции
calculate_error().
- Найти комбинацию с минимальной ошибкой.
- Вывести найденные
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
|