Задача курса

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, но не оценивает качество модели в целом.

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется