Задание включает изучение полиномиальной регрессии и реализацию методов оценки моделей в Python. Темы: функции потерь, оптимизация, визуализация остатков, создание класса полиномиального оценивателя, генерация синтетических данных и оценка смещения с дисперсией. Подробные инструкции и данные уже есть
В задании запрещено использование AI-моделей для генерации кода, и необходимо строго следовать инструкциям по оформлению.
Что нужно сделать в этом задании?- Реализовать три функции:
- polynomial(p: np.ndarray, x: np.ndarray) -> np.ndarray
- Вычисляет значение полинома в заданных точках.
- Использует только базовые операции NumPy (умножение, сложение, возведение в степень).
- Нельзя использовать готовые функции для полиномов.
- generate_polynomial_data(n_samples, polynomial_coeffs, x_range, pos_noise_std, neg_noise_std, poly_func, random_seed)
- Генерирует синтетические данные для одномерной полиномиальной регрессии.
- Берет равномерно распределенные значения x в заданном диапазоне.
- Добавляет шум, который случайно может быть положительным или отрицательным с разными стандартными отклонениями.
- Использует функцию polynomial для вычисления истинного значения полинома.
- plot_regression_data(x, y, polynomial_coeffs, poly_func, title, fig_size)
- Строит график сгенерированных данных.
- Отображает точки (с шумом) и истинную функцию (без шума).
- Использует matplotlib для визуализации.
- Следовать строгим требованиям к оформлению кода:
- Нельзя менять название ноутбука.
- Нельзя добавлять или удалять ячейки.
- Запрещены print() и любые отладочные конструкции в финальной версии.
- Все вычисления должны выполняться в отведенных ячейках.
- Используемые библиотеки:
- Только NumPy, Matplotlib, SciPy.
- Нельзя использовать библиотеки машинного обучения (sklearn, TensorFlow и др.).
- scipy можно использовать только в части задания, где это явно разрешено.
- Как тестируется задание?
- В ноутбуке есть скрытые тесты, которые проверяют правильность функций.
- Все функции должны работать независимо друг от друга (тесты могут запускаться на случайных данных).
- Оценка идет по принципу "всё или ничего" — если функция не проходит тест, баллы не начисляются.