newnew_complete
This commit is contained in:
parent
e6fad14cfa
commit
a1124363af
@ -20,7 +20,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"execution_count": 1,
|
||||
"id": "279cb38d-792f-4e96-9fdd-d1f7e9e38c26",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -38,7 +38,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 18,
|
||||
"execution_count": 2,
|
||||
"id": "8590b5b5-3b27-40ac-9939-ad3a97b63586",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -52,7 +52,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"execution_count": 3,
|
||||
"id": "d2ae71d6-2668-40bf-8bb5-c956636afffe",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -65,7 +65,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 20,
|
||||
"execution_count": 4,
|
||||
"id": "cdfa8de5-e650-48e7-841c-19eb87c0f6bb",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -78,7 +78,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 21,
|
||||
"execution_count": 5,
|
||||
"id": "5bf0bc01-9d83-416c-a3bc-31a4bbd8ec30",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -131,9 +131,34 @@
|
||||
"## Работа с внешним датасетом (OpenML)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "29ca3b05-f3a0-43b0-bfa6-3bcf98177a3a",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Работа с внешним датасетом OpenML\n",
|
||||
"\n",
|
||||
"В качестве внешнего набора данных используется датасет OpenML с идентификатором 40691. \n",
|
||||
"Он применяется для проверки работы модели на данных, которые не были сгенерированы внутри программы.\n",
|
||||
"\n",
|
||||
"Цель данного этапа — загрузить внешний датасет, выполнить предобработку данных, обучить модель логистической регрессии и сравнить вероятностные предсказания до и после калибровки."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "70df55d6-8846-418d-af3e-06e3589e07f7",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Предобработка данных\n",
|
||||
"\n",
|
||||
"Так как внешний датасет может содержать не только числовые, но и категориальные признаки, перед обучением модели необходимо привести данные к числовому виду.\n",
|
||||
"\n",
|
||||
"Для этого используется `pd.get_dummies()`, который преобразует категориальные признаки в набор числовых столбцов."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 6,
|
||||
"id": "0f631ab3-2ee9-42ab-ad33-9cdd39effb08",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -184,7 +209,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": 7,
|
||||
"id": "5a4f1972-227d-440e-a6af-0eaccec4068c",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -204,7 +229,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": 8,
|
||||
"id": "d1005e07-6b9f-4016-996f-c7f393422517",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -241,9 +266,22 @@
|
||||
"print(pd.Series(y_binary).value_counts())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4ff6cc3d-926b-433a-a36b-4f3f21d26d99",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Подготовка целевой переменной\n",
|
||||
"\n",
|
||||
"Исходная целевая переменная внешнего датасета содержит несколько классов. \n",
|
||||
"Для построения калибровочной кривой задача была приведена к бинарной классификации.\n",
|
||||
"\n",
|
||||
"В данной работе один класс рассматривается как положительный, а остальные значения объединяются в отрицательный класс."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": 9,
|
||||
"id": "7337a1b6-c7f7-40e6-a352-9ff28e437bf8",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -278,9 +316,21 @@
|
||||
"print(pd.Series(y_binary).value_counts())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4c844eb0-e95d-4636-8f21-4032a61bad9c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Разделение данных на обучающую и тестовую выборки\n",
|
||||
"\n",
|
||||
"После подготовки признаков и целевой переменной данные разделяются на обучающую и тестовую выборки.\n",
|
||||
"\n",
|
||||
"Обучающая выборка используется для обучения модели, а тестовая — для проверки качества её предсказаний."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": 10,
|
||||
"id": "1033c8a3-4962-4cef-8520-94cbb98e4e55",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -294,9 +344,21 @@
|
||||
")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "87b7a4be-25f1-4726-a92b-ce3e786ff1c7",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Обучение модели без калибровки\n",
|
||||
"\n",
|
||||
"На подготовленных данных обучается модель `LogisticRegression`.\n",
|
||||
"\n",
|
||||
"После обучения получаются вероятностные предсказания с помощью метода `predict_proba()`. Эти вероятности будут использоваться для сравнения с результатами после калибровки."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": 11,
|
||||
"id": "b3873576-69c8-4d05-933a-f1ee5ecb39d4",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -324,9 +386,21 @@
|
||||
"print(probs[:10])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "46313a16-a495-4615-9e83-eb5eafae57e3",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Калибровка вероятностей\n",
|
||||
"\n",
|
||||
"Для калибровки используется `CalibratedClassifierCV` с методом `sigmoid`.\n",
|
||||
"\n",
|
||||
"Калибровка нужна для того, чтобы вероятностные предсказания модели лучше соответствовали реальной частоте событий."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"execution_count": 12,
|
||||
"id": "e453a306-7524-4d92-aea5-f8d04e99ebf1",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -362,7 +436,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"execution_count": 13,
|
||||
"id": "949ce6b5-5f00-4e58-a882-351831923d5c",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -408,9 +482,21 @@
|
||||
"plt.show()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "61dff203-f0d6-4756-94e4-7eeda7cc6d3e",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Построение калибровочной кривой\n",
|
||||
"\n",
|
||||
"Калибровочная кривая показывает, насколько предсказанные моделью вероятности соответствуют реальным значениям.\n",
|
||||
"\n",
|
||||
"Чем ближе линия модели к диагональной идеальной линии, тем лучше откалиброваны вероятности."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"execution_count": 14,
|
||||
"id": "2b772749-d774-4882-9a1a-06f23ed23b1f",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -442,6 +528,14 @@
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "f2af889c-126a-49f7-b2e6-0e051ff08e9c",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user