lab_4 #4

Merged
Arutunyan-Dmitry merged 5 commits from lab_4 into main 2024-11-16 09:42:26 +04:00
Showing only changes of commit db2f181268 - Show all commits

View File

@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 1, "execution_count": 2,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -51,7 +51,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
@ -115,7 +115,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 3, "execution_count": 5,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -124,8 +124,8 @@
"text": [ "text": [
"Лучшие гиперпараметры: {'preprocessing': MinMaxScaler()}\n", "Лучшие гиперпараметры: {'preprocessing': MinMaxScaler()}\n",
"Cредняя абсолютная ошибка (MAE) = 19241.554618019443\n", "Cредняя абсолютная ошибка (MAE) = 19241.554618019443\n",
"Смещение: 616083845.5088656\n", "Смещение: -24344.57878426918\n",
"Дисперсия: 438598.9204950822\n" "Дисперсия: 219.3206565410472\n"
] ]
} }
], ],
@ -158,9 +158,17 @@
"print(f'Cредняя абсолютная ошибка (MAE) = {mean_absolute_error(y_test, y_pred)}')\n", "print(f'Cредняя абсолютная ошибка (MAE) = {mean_absolute_error(y_test, y_pred)}')\n",
"\n", "\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", "# 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(\"Смещение: \", bias)\n",
"print(\"Дисперсия: \", variance)" "# 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", "cell_type": "code",
"execution_count": 4, "execution_count": 6,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -181,8 +189,8 @@
"text": [ "text": [
"Лучшие гиперпараметры: {'model__alpha': 10.0, 'preprocessing': MinMaxScaler()}\n", "Лучшие гиперпараметры: {'model__alpha': 10.0, 'preprocessing': MinMaxScaler()}\n",
"Cредняя абсолютная ошибка (MAE) = 19239.098934204343\n", "Cредняя абсолютная ошибка (MAE) = 19239.098934204343\n",
"Смещение: 615921619.3705255\n", "Смещение: -24500.751070720406\n",
"Дисперсия: 326886.495836047\n" "Дисперсия: 399.3445953588631\n"
] ]
} }
], ],
@ -216,9 +224,16 @@
"\n", "\n",
"print(f'Cредняя абсолютная ошибка (MAE) = {mean_absolute_error(y_test, y_pred)}')\n", "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", "# 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(\"Смещение: \", bias)\n",
"print(\"Дисперсия: \", variance)" "# 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", "cell_type": "code",
"execution_count": 5, "execution_count": 7,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
@ -245,9 +260,9 @@
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"Лучшие гиперпараметры: {'model__learning_rate': 0.1, 'model__max_depth': 3, 'model__n_estimators': 100, 'preprocessing': MaxAbsScaler()}\n", "Лучшие гиперпараметры: {'model__learning_rate': 0.1, 'model__max_depth': 3, 'model__n_estimators': 100, 'preprocessing': MaxAbsScaler()}\n",
"Cредняя абсолютная ошибка (MAE) = 18908.8586008017\n", "Cредняя абсолютная ошибка (MAE) = 18904.906880850212\n",
"Смещение: -4.040641051222239\n", "Смещение: -24464.090993178437\n",
"Дисперсия: 162335195.36332467\n" "Дисперсия: 185.53286774556057\n"
] ]
} }
], ],
@ -293,10 +308,16 @@
"bias = np.mean(y_cv_pred - y_train)\n", "bias = np.mean(y_cv_pred - y_train)\n",
"\n", "\n",
"# Оценка дисперсии\n", "# Оценка дисперсии\n",
"variance = np.var(y_cv_pred)\n", "# variance = np.var(y_cv_pred)\n",
"\n", "\n",
"print(f\"Смещение: {bias}\")\n", "# print(f\"Смещение: {bias}\")\n",
"print(f\"Дисперсия: {variance}\")" "# 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": [ "source": [
"**Вывод**: \n", "**Вывод**: \n",
"\n", "\n",
"Все 3 модели регрессии не показали необходимого уровня \"погрешности\". Это означает, что необходимо использовать более сложные модели или что по доступным данным нельзя достичь необходимой погрешности.\n", "Все 3 модели регрессии не показали необходимого уровня \"погрешности\". Также у всех моделей большое значение смещения, т.е. эти модели для задачи слишком простые. Необходимо использовать более сложные модели. Также возможно, что по доступным в датасете данным нельзя достичь необходимой погрешности\n",
"\n", "\n",
"Из всех моделей градиентный бустинг показал самую низкую \"погрешность\"" "Из всех моделей градиентный бустинг показал самую низкую \"погрешность\""
] ]