Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по ОМО 2025 / Baraeva_Elizaveta_lb3.doc
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
571 Кб
Скачать
☆
  1. Для выбранной степени полинома, рассчитайте и проанализируйте полученные коэффициенты. Рассчитай значение метрик коэффициент детерминации, mape, mae.

Сначала задаются полиномиальные характеристики с 5 степенью. Обучающие данные преобразуются с помощью fit_transform, а тестовые данные обрабатываются через transform для обеспечения согласованности преобразований. После подготовки данных инициализируется и обучается модель линейной регрессии на преобразованных полиномиальных признаках. Затем модель используется для предсказания значений как на обучающей, так и на тестовой выборках. Затем в цикле выводятся коэффициенты полинома, а после рассчитываются и выводятся метрики для оценки качества модели. Реализация представлена в Листинге 2.5.1. Результат представлен в Листинге 2.5.2.

Листинг 2.5.1 – Расчет коэффициента детерминации, MAPE и MAE

poly = PolynomialFeatures(degree=5)

X_train_poly = poly.fit_transform(X_train)

X_test_poly = poly.transform(pd.DataFrame(X_test))

model = LinearRegression()

model.fit(X_train_poly, y_train)

y_train_pred = model.predict(X_train_poly)

y_test_pred = model.predict(X_test_poly)

print(f"β0 (свободный член): {model.intercept_}")

for i, coef in enumerate(model.coef_[1:], start=1):

print(f"β{i} (коэффициент при x^{i}): {coef}")

print()

print(f"R² для train: {r2_score(y_train, y_train_pred)}")

print(f"R² для test: {r2_score(y_test, y_test_pred)}")

print(f"MAE для train: {mean_absolute_error(y_train, y_train_pred)}")

print(f"MAE для test: {mean_absolute_error(y_test, y_test_pred)}")

print(f"MAPE для train: {mean_absolute_percentage_error(y_train, y_train_pred)}")

print(f"MAPE для test: {mean_absolute_percentage_error(y_test, y_test_pred)}")

Листинг 2.5.2 – Полученные коэффициенты и метрики

β0 (свободный член): -0.07321765352322251

β1 (коэффициент при x^1): 3.799791152281545

β2 (коэффициент при x^2): 2.1573625305899737

β3 (коэффициент при x^3): -20.187401474200307

β4 (коэффициент при x^4): -0.05466661402971962

β5 (коэффициент при x^5): 6.021059645575535

R² для train: 0.9373908237264515

R² для test: 0.9284536300139977

MAE для train: 1.995908672933214

MAE для test: 2.0984194095739426

MAPE для train: 1.0384201669880722

MAPE для test: 0.6907529769021618

Данная модель показывает высокую точность аппроксимации данных: коэффициент детерминации составляет 0.9374 для обучающей и 0.9285 для тестовой выборки. Это говорит о хорошей способности модели объяснять вариацию и делать точные предсказания. Однако значения ошибок MAE 1.9959 для обучающей и 2.0984 для тестовой, MAPE 103.84% для обучающей и 69.08% для тестовой указывают на наличие небольших, но заметных отклонений, что может свидетельствовать о начальных признаках переобучения. У коэффициентов регрессии наибольший вклад в предсказания вносят признаки с более высокими абсолютными значениями. Важны 3 (-20.1874) и 5 (6.0211) степени. Свободный член (-0.0732) задает базовый уровень модели. Высокие значения коэффициентов при старших степенях могут быть признаком того, что модель начинает подстраиваться под обучающие данные слишком точно. Это усиливает риск переобучения, особенно при дальнейшем увеличении степени полинома.

Соседние файлы в папке Лабы по ОМО 2025