Задача курса
loaddiabetes и LinearRegression: прогноз на отложенных строках
Курс «Машинное обучение с нуля на Python: первая модель» · урок «Встроенный датасет scikit-learn»
Условие
Предсказания для отложенных строк diabetes
Датасет diabetes из scikit-learn давно стал удобным полигоном для тех, кто хочет быстро убедиться, что линейная регрессия работает именно так, как описано в учебнике. В нём 442 наблюдения, десять уже преобразованных числовых признаков и отдельная числовая цель. Это позволяет сосредоточиться на механике обучения и предсказания.
Исследователь решает обучить простую линейную модель на первых четырёхстах строках, оставив несколько последних в стороне намеренно. Эти отложенные строки модель ни разу не видела в процессе подбора коэффициентов, и именно это делает их удобными кандидатами для того, чтобы продемонстрировать шаг предсказания в чистом виде: признаки подаются в уже обученную модель, которая возвращает числовой ответ, опираясь исключительно на усвоенные зависимости.
Для двух строк, следующих сразу после обучающей выборки, интересно поставить предсказание и реальную целевую величину рядом — не для того, чтобы делать выводы о том, насколько хороша модель в целом, а просто чтобы увидеть, насколько близко линейное уравнение подходит к известному ответу в конкретных случаях. Именно такое сравнение двух пар чисел и должна вернуть программа.
Что уже дано
В редакторе есть импорты load_diabetes и LinearRegression и имена переменных для результата. Скрытая подготовка не создаёт данные. Встроенный датасет доступен офлайн через load_diabetes(as_frame=True); его data — DataFrame признаков, а target — отдельная Series цели.
Что нужно сделать
Загрузите датасет в bunch, сохраните признаки в X, цель в y. В X_train и y_train возьмите первые 400 строк, обучите на них model типа LinearRegression. В X_new возьмите следующие две строки признаков, а в y_new — соответствующие известные цели. Получите predictions для X_new без передачи цели в predict. Составьте comparison — DataFrame с индексами исходных строк 400 и 401 и столбцами prediction, actual в этом порядке. Целевые значения нужны только для столбца actual; сохраняйте исходный порядок всех десяти признаков.
Ввод и вывод
stdin не используется. Печатать через print в stdout ничего не нужно. После выполнения кода проверяются верхнеуровневые bunch, X, y, X_train, y_train, X_new, y_new, model, predictions и comparison. predictions — NumPy-массив из двух чисел; comparison содержит эти прогнозы рядом с двумя фактическими значениями цели. Сравнение двух строк показывает работу вызова predict, но не оценивает качество модели в целом.
