This commit is contained in:
ujijrujijr 2024-11-16 09:40:09 +04:00
parent db2f181268
commit 312f5ddda3

View File

@ -115,7 +115,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 8,
"metadata": {},
"outputs": [
{
@ -125,7 +125,8 @@
"Лучшие гиперпараметры: {'preprocessing': MinMaxScaler()}\n",
"Cредняя абсолютная ошибка (MAE) = 19241.554618019443\n",
"Смещение: -24344.57878426918\n",
"Дисперсия: 219.3206565410472\n"
"Дисперсия: 219.3206565410472\n",
"R^2 = 0.18832948575910047\n"
]
}
],
@ -168,7 +169,11 @@
"std_test_score = cv_results['std_test_score']\n",
"\n",
"print(f\"Смещение: {mean_test_score.mean()}\")\n",
"print(f\"Дисперсия: {std_test_score.mean()}\")"
"print(f\"Дисперсия: {std_test_score.mean()}\")\n",
"\n",
"from sklearn.metrics import r2_score\n",
"\n",
"print(f'R^2 = {r2_score(y_test, y_pred)}')"
]
},
{
@ -180,7 +185,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 9,
"metadata": {},
"outputs": [
{
@ -190,7 +195,8 @@
"Лучшие гиперпараметры: {'model__alpha': 10.0, 'preprocessing': MinMaxScaler()}\n",
"Cредняя абсолютная ошибка (MAE) = 19239.098934204343\n",
"Смещение: -24500.751070720406\n",
"Дисперсия: 399.3445953588631\n"
"Дисперсия: 399.3445953588631\n",
"R^2 = 0.18843191913477164\n"
]
}
],
@ -233,7 +239,9 @@
"std_test_score = cv_results['std_test_score']\n",
"\n",
"print(f\"Смещение: {mean_test_score.mean()}\")\n",
"print(f\"Дисперсия: {std_test_score.mean()}\")"
"print(f\"Дисперсия: {std_test_score.mean()}\")\n",
"\n",
"print(f'R^2 = {r2_score(y_test, y_pred)}')"
]
},
{
@ -252,17 +260,18 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Лучшие гиперпараметры: {'model__learning_rate': 0.1, 'model__max_depth': 3, 'model__n_estimators': 100, 'preprocessing': MaxAbsScaler()}\n",
"Cредняя абсолютная ошибка (MAE) = 18904.906880850212\n",
"Смещение: -24464.090993178437\n",
"Дисперсия: 185.53286774556057\n"
"Лучшие гиперпараметры: {'model__learning_rate': 0.1, 'model__max_depth': 3, 'model__n_estimators': 100, 'preprocessing': None}\n",
"Cредняя абсолютная ошибка (MAE) = 18906.41250012098\n",
"Смещение: -24465.30968285963\n",
"Дисперсия: 186.25822491864383\n",
"R^2 = 0.21038509874388833\n"
]
}
],
@ -304,20 +313,14 @@
"# Получение предсказаний на кросс-валидации\n",
"y_cv_pred = cross_val_predict(best_model, X_train, y_train, cv=3)\n",
"\n",
"# Оценка смещения\n",
"bias = np.mean(y_cv_pred - y_train)\n",
"\n",
"# Оценка дисперсии\n",
"# variance = np.var(y_cv_pred)\n",
"\n",
"# 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()}\")"
"print(f\"Дисперсия: {std_test_score.mean()}\")\n",
"\n",
"print(f'R^2 = {r2_score(y_test, y_pred)}')"
]
},
{
@ -326,7 +329,9 @@
"source": [
"**Вывод**: \n",
"\n",
"Все 3 модели регрессии не показали необходимого уровня \"погрешности\". Также у всех моделей большое значение смещения, т.е. эти модели для задачи слишком простые. Необходимо использовать более сложные модели. Также возможно, что по доступным в датасете данным нельзя достичь необходимой погрешности\n",
"Все 3 модели регрессии не показали необходимого уровня \"погрешности\". Также у всех моделей большое значение смещения, т.е. эти модели для задачи слишком простые. Необходимо использовать более сложные модели. Также возможно, что по доступным в датасете данным нельзя достичь необходимой погрешности.\n",
"\n",
"Также низкое значение метрики R^2 у всех моделей показывает, что эти модели плохо объясняют вариацию целевой переменной.\n",
"\n",
"Из всех моделей градиентный бустинг показал самую низкую \"погрешность\""
]
@ -529,7 +534,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": null,
"metadata": {},
"outputs": [
{
@ -579,6 +584,7 @@
}
],
"source": [
"\n",
"# Конвейер для случайного леса\n",
"pipeline_ranfor = Pipeline([\n",
" ('preprocessing', preprocessing),\n",
@ -640,7 +646,7 @@
"std_test_score = cv_results['std_test_score']\n",
"\n",
"print(f\"Смещение: {mean_test_score.mean()}\")\n",
"print(f\"Дисперсия: {std_test_score.mean()}\")"
"print(f\"Дисперсия: {std_test_score.mean()}\")\n"
]
},
{