From db2f1812685584db26f350eb378a1f357be24f03 Mon Sep 17 00:00:00 2001 From: ujijrujijr Date: Sat, 16 Nov 2024 09:23:33 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=204=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab_4/Lab4.ipynb | 65 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/lab_4/Lab4.ipynb b/lab_4/Lab4.ipynb index 3958c9e..09ab7de 100644 --- a/lab_4/Lab4.ipynb +++ b/lab_4/Lab4.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -51,7 +51,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -115,7 +115,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -124,8 +124,8 @@ "text": [ "Лучшие гиперпараметры: {'preprocessing': MinMaxScaler()}\n", "Cредняя абсолютная ошибка (MAE) = 19241.554618019443\n", - "Смещение: 616083845.5088656\n", - "Дисперсия: 438598.9204950822\n" + "Смещение: -24344.57878426918\n", + "Дисперсия: 219.3206565410472\n" ] } ], @@ -158,9 +158,17 @@ "print(f'Cредняя абсолютная ошибка (MAE) = {mean_absolute_error(y_test, y_pred)}')\n", "\n", "\n", - "mse, bias, variance = bias_variance_decomp(best_model, X_train.values, y_train.values, X_test.values, y_test.values, loss='mse', num_rounds=200, random_seed=123)\n", - "print(\"Смещение: \", bias)\n", - "print(\"Дисперсия: \", variance)" + "# mse, bias, variance = bias_variance_decomp(best_model, X_train.values, y_train.values, X_test.values, y_test.values, loss='mse', num_rounds=200, random_seed=123)\n", + "# print(\"Смещение: \", bias)\n", + "# print(\"Дисперсия: \", variance)\n", + "\n", + "# Оценка дисперсии и смещения\n", + "cv_results = grid_search.cv_results_\n", + "mean_test_score = cv_results['mean_test_score']\n", + "std_test_score = cv_results['std_test_score']\n", + "\n", + "print(f\"Смещение: {mean_test_score.mean()}\")\n", + "print(f\"Дисперсия: {std_test_score.mean()}\")" ] }, { @@ -172,7 +180,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -181,8 +189,8 @@ "text": [ "Лучшие гиперпараметры: {'model__alpha': 10.0, 'preprocessing': MinMaxScaler()}\n", "Cредняя абсолютная ошибка (MAE) = 19239.098934204343\n", - "Смещение: 615921619.3705255\n", - "Дисперсия: 326886.495836047\n" + "Смещение: -24500.751070720406\n", + "Дисперсия: 399.3445953588631\n" ] } ], @@ -216,9 +224,16 @@ "\n", "print(f'Cредняя абсолютная ошибка (MAE) = {mean_absolute_error(y_test, y_pred)}')\n", "\n", - "mse, bias, variance = bias_variance_decomp(best_model, X_train.values, y_train.values, X_test.values, y_test.values, loss='mse', num_rounds=200, random_seed=123)\n", - "print(\"Смещение: \", bias)\n", - "print(\"Дисперсия: \", variance)" + "# mse, bias, variance = bias_variance_decomp(best_model, X_train.values, y_train.values, X_test.values, y_test.values, loss='mse', num_rounds=200, random_seed=123)\n", + "# print(\"Смещение: \", bias)\n", + "# print(\"Дисперсия: \", variance)\n", + "\n", + "cv_results = grid_search.cv_results_\n", + "mean_test_score = cv_results['mean_test_score']\n", + "std_test_score = cv_results['std_test_score']\n", + "\n", + "print(f\"Смещение: {mean_test_score.mean()}\")\n", + "print(f\"Дисперсия: {std_test_score.mean()}\")" ] }, { @@ -237,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -245,9 +260,9 @@ "output_type": "stream", "text": [ "Лучшие гиперпараметры: {'model__learning_rate': 0.1, 'model__max_depth': 3, 'model__n_estimators': 100, 'preprocessing': MaxAbsScaler()}\n", - "Cредняя абсолютная ошибка (MAE) = 18908.8586008017\n", - "Смещение: -4.040641051222239\n", - "Дисперсия: 162335195.36332467\n" + "Cредняя абсолютная ошибка (MAE) = 18904.906880850212\n", + "Смещение: -24464.090993178437\n", + "Дисперсия: 185.53286774556057\n" ] } ], @@ -293,10 +308,16 @@ "bias = np.mean(y_cv_pred - y_train)\n", "\n", "# Оценка дисперсии\n", - "variance = np.var(y_cv_pred)\n", + "# variance = np.var(y_cv_pred)\n", "\n", - "print(f\"Смещение: {bias}\")\n", - "print(f\"Дисперсия: {variance}\")" + "# print(f\"Смещение: {bias}\")\n", + "# print(f\"Дисперсия: {variance}\")\n", + "cv_results = grid_search.cv_results_\n", + "mean_test_score = cv_results['mean_test_score']\n", + "std_test_score = cv_results['std_test_score']\n", + "\n", + "print(f\"Смещение: {mean_test_score.mean()}\")\n", + "print(f\"Дисперсия: {std_test_score.mean()}\")" ] }, { @@ -305,7 +326,7 @@ "source": [ "**Вывод**: \n", "\n", - "Все 3 модели регрессии не показали необходимого уровня \"погрешности\". Это означает, что необходимо использовать более сложные модели или что по доступным данным нельзя достичь необходимой погрешности.\n", + "Все 3 модели регрессии не показали необходимого уровня \"погрешности\". Также у всех моделей большое значение смещения, т.е. эти модели для задачи слишком простые. Необходимо использовать более сложные модели. Также возможно, что по доступным в датасете данным нельзя достичь необходимой погрешности\n", "\n", "Из всех моделей градиентный бустинг показал самую низкую \"погрешность\"" ]