Линейная регрессия на NumPy: прогноз и остатки
Рассчитайте прогноз линейной модели y_pred = X @ w + b и остатки y − y_pred. Задача проверяет не только числа, но и формы массивов: ошибка размерности не должна тихо превратиться в broadcasting.
Программа курса «Классическое машинное обучение: алгоритмы и практика на Python».
Матричный прогноз и вектор остатков
Что уже дано
Проверяющая система запускает решение в среде Python 3.12 с библиотекой numpy. Никаких вспомогательных глобальных переменных или скрытых файлов в окружении не создаётся. Проверяющие тесты напрямую вызывают функцию compute_predictions_and_residuals(X, w, b, y).
Что нужно сделать
Реализуйте функцию compute_predictions_and_residuals(X, w, b, y).
Функция принимает матрицу признаков X, вектор весов w, свободный член b и вектор истинных целевых меток y.
Требования к контракту:
- Функция должна возвращать кортеж из двух одномерных массивов NumPy типа
float64:(predictions, residuals). - Вектор
predictionsсодержит точечные предсказания линейной модели для каждого объекта выборки. - Вектор
residualsсодержит остатки модели, вычисленные согласно определению из урока как отклонение истинных меток от предсказаний, с сохранением исходного порядка объектов выборки. - Возвращаемые массивы должны иметь тип
np.float64независимо от того, переданы ли на вход целочисленные структуры или массивы вещественных чисел другой точности. - Входные данные должны соответствовать линейной спецификации с одним целевым выходом:
Xявляется строго двумерным массивом формы(n, p)с и ;w— строго одномерным массивом длиныp;y— строго одномерным массивом длиныn. - Если размерности аргументов не согласованы (число признаков в
Xне равно длинеw, число строкXне равно длинеy, или ), либо если ранг любого из аргументовX,w,yотличается от требуемого (например, скаляр вместо вектора или многомерный тензор), функция обязана возбуждать исключениеValueError.
Ввод и вывод
stdin не используется. Печатать через print в stdout ничего не нужно.
Проверяющая система вызывает функцию compute_predictions_and_residuals(X, w, b, y).
Параметры функции:
X:np.ndarrayформы(n, p)или вложенный числовой список;w:np.ndarrayформы(p,)или одномерный числовой список длиныp;b: скалярное число (intилиfloat);y:np.ndarrayформы(n,)или одномерный числовой список длиныn.
Возвращаемое значение: кортеж (predictions, residuals) из двух объектов np.ndarray формы (n,) и типа np.float64.
Пример использования
import numpy as np
X = [[1.0, 2.0], [3.0, 0.0]]
w = [2.0, -1.0]
b = 4.0
y = [5.0, 8.0]
preds, resids = compute_predictions_and_residuals(X, w, b, y)
print("preds:", preds.tolist())
print("resids:", resids.tolist())
Результат:
preds: [4.0, 10.0]
resids: [1.0, -2.0]
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
