{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#### Загрузка набора данных" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
503Allen, Mr. William Henrymale35.0003734508.0500NaNS
....................................
88702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
89011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
89103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", "

891 rows × 11 columns

\n", "
" ], "text/plain": [ " Survived Pclass \\\n", "PassengerId \n", "1 0 3 \n", "2 1 1 \n", "3 1 3 \n", "4 1 1 \n", "5 0 3 \n", "... ... ... \n", "887 0 2 \n", "888 1 1 \n", "889 0 3 \n", "890 1 1 \n", "891 0 3 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "1 Braund, Mr. Owen Harris male 22.0 \n", "2 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 \n", "3 Heikkinen, Miss. Laina female 26.0 \n", "4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 \n", "5 Allen, Mr. William Henry male 35.0 \n", "... ... ... ... \n", "887 Montvila, Rev. Juozas male 27.0 \n", "888 Graham, Miss. Margaret Edith female 19.0 \n", "889 Johnston, Miss. Catherine Helen \"Carrie\" female NaN \n", "890 Behr, Mr. Karl Howell male 26.0 \n", "891 Dooley, Mr. Patrick male 32.0 \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "1 1 0 A/5 21171 7.2500 NaN S \n", "2 1 0 PC 17599 71.2833 C85 C \n", "3 0 0 STON/O2. 3101282 7.9250 NaN S \n", "4 1 0 113803 53.1000 C123 S \n", "5 0 0 373450 8.0500 NaN S \n", "... ... ... ... ... ... ... \n", "887 0 0 211536 13.0000 NaN S \n", "888 0 0 112053 30.0000 B42 S \n", "889 1 2 W./C. 6607 23.4500 NaN S \n", "890 0 0 111369 30.0000 C148 C \n", "891 0 0 370376 7.7500 NaN Q \n", "\n", "[891 rows x 11 columns]" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "from sklearn import set_config\n", "\n", "set_config(transform_output=\"pandas\")\n", "\n", "random_state=9\n", "\n", "df = pd.read_csv(\"data/titanic.csv\", index_col=\"PassengerId\")\n", "\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Разделение набора данных на обучающую и тестовые выборки (80/20) для задачи классификации\n", "\n", "Целевой признак -- Survived" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'X_train'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
14502Andrew, Mr. Edgardo Samuelmale18.000023194511.5000NaNS
20603Strom, Miss. Telma Matildafemale2.000134705410.4625G6S
34913Coutts, Master. William Loch \"William\"male3.0011C.A. 3767115.9000NaNS
32913Goldsmith, Mrs. Frank John (Emily Alice Brown)female31.001136329120.5250NaNS
28912Hosono, Mr. Masabumimale42.000023779813.0000NaNS
....................................
75612Hamalainen, Master. Viljomale0.671125064914.5000NaNS
81601Fry, Mr. RichardmaleNaN001120580.0000B102S
89011Behr, Mr. Karl Howellmale26.000011136930.0000C148C
73811Lesurer, Mr. Gustave Jmale35.0000PC 17755512.3292B101C
6103Sirayanian, Mr. Orsenmale22.000026697.2292NaNC
\n", "

712 rows × 11 columns

\n", "
" ], "text/plain": [ " Survived Pclass Name \\\n", "PassengerId \n", "145 0 2 Andrew, Mr. Edgardo Samuel \n", "206 0 3 Strom, Miss. Telma Matilda \n", "349 1 3 Coutts, Master. William Loch \"William\" \n", "329 1 3 Goldsmith, Mrs. Frank John (Emily Alice Brown) \n", "289 1 2 Hosono, Mr. Masabumi \n", "... ... ... ... \n", "756 1 2 Hamalainen, Master. Viljo \n", "816 0 1 Fry, Mr. Richard \n", "890 1 1 Behr, Mr. Karl Howell \n", "738 1 1 Lesurer, Mr. Gustave J \n", "61 0 3 Sirayanian, Mr. Orsen \n", "\n", " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "145 male 18.00 0 0 231945 11.5000 NaN S \n", "206 female 2.00 0 1 347054 10.4625 G6 S \n", "349 male 3.00 1 1 C.A. 37671 15.9000 NaN S \n", "329 female 31.00 1 1 363291 20.5250 NaN S \n", "289 male 42.00 0 0 237798 13.0000 NaN S \n", "... ... ... ... ... ... ... ... ... \n", "756 male 0.67 1 1 250649 14.5000 NaN S \n", "816 male NaN 0 0 112058 0.0000 B102 S \n", "890 male 26.00 0 0 111369 30.0000 C148 C \n", "738 male 35.00 0 0 PC 17755 512.3292 B101 C \n", "61 male 22.00 0 0 2669 7.2292 NaN C \n", "\n", "[712 rows x 11 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'y_train'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Survived
PassengerId
1450
2060
3491
3291
2891
......
7561
8160
8901
7381
610
\n", "

712 rows × 1 columns

\n", "
" ], "text/plain": [ " Survived\n", "PassengerId \n", "145 0\n", "206 0\n", "349 1\n", "329 1\n", "289 1\n", "... ...\n", "756 1\n", "816 0\n", "890 1\n", "738 1\n", "61 0\n", "\n", "[712 rows x 1 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'X_test'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
84311Serepeca, Miss. Augustafemale30.00011379831.0000NaNC
79103Keane, Mr. Andrew \"Andy\"maleNaN00124607.7500NaNQ
50903Olsen, Mr. Henry Margidomale28.000C 400122.5250NaNS
82812Mallet, Master. Andremale1.002S.C./PARIS 207937.0042NaNC
41402Cunningham, Mr. Alfred FlemingmaleNaN002398530.0000NaNS
....................................
82413Moor, Mrs. (Beila)female27.00139209612.4750E121S
35303Elias, Mr. Tannousmale15.01126957.2292NaNC
67412Wilhelms, Mr. Charlesmale31.00024427013.0000NaNS
10002Kantor, Mr. Sinaimale34.01024436726.0000NaNS
54203Andersson, Miss. Ingeborg Constanziafemale9.04234708231.2750NaNS
\n", "

179 rows × 11 columns

\n", "
" ], "text/plain": [ " Survived Pclass Name Sex \\\n", "PassengerId \n", "843 1 1 Serepeca, Miss. Augusta female \n", "791 0 3 Keane, Mr. Andrew \"Andy\" male \n", "509 0 3 Olsen, Mr. Henry Margido male \n", "828 1 2 Mallet, Master. Andre male \n", "414 0 2 Cunningham, Mr. Alfred Fleming male \n", "... ... ... ... ... \n", "824 1 3 Moor, Mrs. (Beila) female \n", "353 0 3 Elias, Mr. Tannous male \n", "674 1 2 Wilhelms, Mr. Charles male \n", "100 0 2 Kantor, Mr. Sinai male \n", "542 0 3 Andersson, Miss. Ingeborg Constanzia female \n", "\n", " Age SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "843 30.0 0 0 113798 31.0000 NaN C \n", "791 NaN 0 0 12460 7.7500 NaN Q \n", "509 28.0 0 0 C 4001 22.5250 NaN S \n", "828 1.0 0 2 S.C./PARIS 2079 37.0042 NaN C \n", "414 NaN 0 0 239853 0.0000 NaN S \n", "... ... ... ... ... ... ... ... \n", "824 27.0 0 1 392096 12.4750 E121 S \n", "353 15.0 1 1 2695 7.2292 NaN C \n", "674 31.0 0 0 244270 13.0000 NaN S \n", "100 34.0 1 0 244367 26.0000 NaN S \n", "542 9.0 4 2 347082 31.2750 NaN S \n", "\n", "[179 rows x 11 columns]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'y_test'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Survived
PassengerId
8431
7910
5090
8281
4140
......
8241
3530
6741
1000
5420
\n", "

179 rows × 1 columns

\n", "
" ], "text/plain": [ " Survived\n", "PassengerId \n", "843 1\n", "791 0\n", "509 0\n", "828 1\n", "414 0\n", "... ...\n", "824 1\n", "353 0\n", "674 1\n", "100 0\n", "542 0\n", "\n", "[179 rows x 1 columns]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from utils import split_stratified_into_train_val_test\n", "\n", "X_train, X_val, X_test, y_train, y_val, y_test = split_stratified_into_train_val_test(\n", " df, stratify_colname=\"Survived\", frac_train=0.80, frac_val=0, frac_test=0.20, random_state=random_state\n", ")\n", "\n", "display(\"X_train\", X_train)\n", "display(\"y_train\", y_train)\n", "\n", "display(\"X_test\", X_test)\n", "display(\"y_test\", y_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование конвейера для классификации данных\n", "\n", "preprocessing_num -- конвейер для обработки числовых данных: заполнение пропущенных значений и стандартизация\n", "\n", "preprocessing_cat -- конвейер для обработки категориальных данных: заполнение пропущенных данных и унитарное кодирование\n", "\n", "features_preprocessing -- трансформер для предобработки признаков\n", "\n", "features_engineering -- трансформер для конструирования признаков\n", "\n", "drop_columns -- трансформер для удаления колонок\n", "\n", "features_postprocessing -- трансформер для унитарного кодирования новых признаков\n", "\n", "pipeline_end -- основной конвейер предобработки данных и конструирования признаков\n", "\n", "Конвейер выполняется последовательно.\n", "\n", "Трансформер выполняет параллельно для указанного набора колонок.\n", "\n", "Документация: \n", "\n", "https://scikit-learn.org/1.5/api/sklearn.pipeline.html\n", "\n", "https://scikit-learn.org/1.5/modules/generated/sklearn.compose.ColumnTransformer.html#sklearn.compose.ColumnTransformer" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "from sklearn.compose import ColumnTransformer\n", "from sklearn.discriminant_analysis import StandardScaler\n", "from sklearn.impute import SimpleImputer\n", "from sklearn.pipeline import Pipeline\n", "from sklearn.preprocessing import OneHotEncoder\n", "\n", "from transformers import TitanicFeatures\n", "\n", "\n", "columns_to_drop = [\"Survived\", \"Name\", \"Cabin\", \"Ticket\", \"Embarked\", \"Parch\", \"Fare\"]\n", "num_columns = [\n", " column\n", " for column in df.columns\n", " if column not in columns_to_drop and df[column].dtype != \"object\"\n", "]\n", "cat_columns = [\n", " column\n", " for column in df.columns\n", " if column not in columns_to_drop and df[column].dtype == \"object\"\n", "]\n", "\n", "num_imputer = SimpleImputer(strategy=\"median\")\n", "num_scaler = StandardScaler()\n", "preprocessing_num = Pipeline(\n", " [\n", " (\"imputer\", num_imputer),\n", " (\"scaler\", num_scaler),\n", " ]\n", ")\n", "\n", "cat_imputer = SimpleImputer(strategy=\"constant\", fill_value=\"unknown\")\n", "cat_encoder = OneHotEncoder(handle_unknown=\"ignore\", sparse_output=False, drop=\"first\")\n", "preprocessing_cat = Pipeline(\n", " [\n", " (\"imputer\", cat_imputer),\n", " (\"encoder\", cat_encoder),\n", " ]\n", ")\n", "\n", "features_preprocessing = ColumnTransformer(\n", " verbose_feature_names_out=False,\n", " transformers=[\n", " (\"prepocessing_num\", preprocessing_num, num_columns),\n", " (\"prepocessing_cat\", preprocessing_cat, cat_columns),\n", " (\"prepocessing_features\", cat_imputer, [\"Name\", \"Cabin\"]),\n", " ],\n", " remainder=\"passthrough\"\n", ")\n", "\n", "features_engineering = ColumnTransformer(\n", " verbose_feature_names_out=False,\n", " transformers=[\n", " (\"add_features\", TitanicFeatures(), [\"Name\", \"Cabin\"]),\n", " ],\n", " remainder=\"passthrough\",\n", ")\n", "\n", "drop_columns = ColumnTransformer(\n", " verbose_feature_names_out=False,\n", " transformers=[\n", " (\"drop_columns\", \"drop\", columns_to_drop),\n", " ],\n", " remainder=\"passthrough\",\n", ")\n", "\n", "features_postprocessing = ColumnTransformer(\n", " verbose_feature_names_out=False,\n", " transformers=[\n", " (\"prepocessing_cat\", preprocessing_cat, [\"Cabin_type\"]),\n", " ],\n", " remainder=\"passthrough\",\n", ")\n", "\n", "pipeline_end = Pipeline(\n", " [\n", " (\"features_preprocessing\", features_preprocessing),\n", " (\"features_engineering\", features_engineering),\n", " (\"drop_columns\", drop_columns),\n", " (\"features_postprocessing\", features_postprocessing),\n", " ]\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Демонстрация работы конвейера для предобработки данных при классификации" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Cabin_type_BCabin_type_CCabin_type_DCabin_type_ECabin_type_FCabin_type_GCabin_type_TCabin_type_uIs_marriedPclassAgeSibSpSex_male
PassengerId
1450.00.00.00.00.00.00.01.00-0.379423-0.869506-0.4734651.0
2060.00.00.00.00.01.00.00.000.821241-2.102186-0.4734650.0
3490.00.00.00.00.00.00.01.000.821241-2.0251430.4376351.0
3290.00.00.00.00.00.00.01.010.8212410.1320470.4376350.0
2890.00.00.00.00.00.00.01.00-0.3794230.979514-0.4734651.0
..........................................
7560.00.00.00.00.00.00.01.00-0.379423-2.2046520.4376351.0
8161.00.00.00.00.00.00.00.00-1.580088-0.099081-0.4734651.0
8900.01.00.00.00.00.00.00.00-1.580088-0.253166-0.4734651.0
7381.00.00.00.00.00.00.00.00-1.5800880.440217-0.4734651.0
610.00.00.00.00.00.00.01.000.821241-0.561336-0.4734651.0
\n", "

712 rows × 13 columns

\n", "
" ], "text/plain": [ " Cabin_type_B Cabin_type_C Cabin_type_D Cabin_type_E \\\n", "PassengerId \n", "145 0.0 0.0 0.0 0.0 \n", "206 0.0 0.0 0.0 0.0 \n", "349 0.0 0.0 0.0 0.0 \n", "329 0.0 0.0 0.0 0.0 \n", "289 0.0 0.0 0.0 0.0 \n", "... ... ... ... ... \n", "756 0.0 0.0 0.0 0.0 \n", "816 1.0 0.0 0.0 0.0 \n", "890 0.0 1.0 0.0 0.0 \n", "738 1.0 0.0 0.0 0.0 \n", "61 0.0 0.0 0.0 0.0 \n", "\n", " Cabin_type_F Cabin_type_G Cabin_type_T Cabin_type_u \\\n", "PassengerId \n", "145 0.0 0.0 0.0 1.0 \n", "206 0.0 1.0 0.0 0.0 \n", "349 0.0 0.0 0.0 1.0 \n", "329 0.0 0.0 0.0 1.0 \n", "289 0.0 0.0 0.0 1.0 \n", "... ... ... ... ... \n", "756 0.0 0.0 0.0 1.0 \n", "816 0.0 0.0 0.0 0.0 \n", "890 0.0 0.0 0.0 0.0 \n", "738 0.0 0.0 0.0 0.0 \n", "61 0.0 0.0 0.0 1.0 \n", "\n", " Is_married Pclass Age SibSp Sex_male \n", "PassengerId \n", "145 0 -0.379423 -0.869506 -0.473465 1.0 \n", "206 0 0.821241 -2.102186 -0.473465 0.0 \n", "349 0 0.821241 -2.025143 0.437635 1.0 \n", "329 1 0.821241 0.132047 0.437635 0.0 \n", "289 0 -0.379423 0.979514 -0.473465 1.0 \n", "... ... ... ... ... ... \n", "756 0 -0.379423 -2.204652 0.437635 1.0 \n", "816 0 -1.580088 -0.099081 -0.473465 1.0 \n", "890 0 -1.580088 -0.253166 -0.473465 1.0 \n", "738 0 -1.580088 0.440217 -0.473465 1.0 \n", "61 0 0.821241 -0.561336 -0.473465 1.0 \n", "\n", "[712 rows x 13 columns]" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "preprocessing_result = pipeline_end.fit_transform(X_train)\n", "preprocessed_df = pd.DataFrame(\n", " preprocessing_result,\n", " columns=pipeline_end.get_feature_names_out(),\n", ")\n", "\n", "preprocessed_df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Формирование набора моделей для классификации\n", "\n", "logistic -- логистическая регрессия\n", "\n", "ridge -- гребневая регрессия\n", "\n", "decision_tree -- дерево решений\n", "\n", "knn -- k-ближайших соседей\n", "\n", "naive_bayes -- наивный Байесовский классификатор\n", "\n", "gradient_boosting -- метод градиентного бустинга (набор деревьев решений)\n", "\n", "random_forest -- метод случайного леса (набор деревьев решений)\n", "\n", "mlp -- многослойный персептрон (нейронная сеть)\n", "\n", "Документация: https://scikit-learn.org/1.5/supervised_learning.html" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "from sklearn import ensemble, linear_model, naive_bayes, neighbors, neural_network, tree\n", "\n", "class_models = {\n", " \"logistic\": {\"model\": linear_model.LogisticRegression()},\n", " # \"ridge\": {\"model\": linear_model.RidgeClassifierCV(cv=5, class_weight=\"balanced\")},\n", " \"ridge\": {\"model\": linear_model.LogisticRegression(penalty=\"l2\", class_weight=\"balanced\")},\n", " \"decision_tree\": {\n", " \"model\": tree.DecisionTreeClassifier(max_depth=7, random_state=random_state)\n", " },\n", " \"knn\": {\"model\": neighbors.KNeighborsClassifier(n_neighbors=7)},\n", " \"naive_bayes\": {\"model\": naive_bayes.GaussianNB()},\n", " \"gradient_boosting\": {\n", " \"model\": ensemble.GradientBoostingClassifier(n_estimators=210)\n", " },\n", " \"random_forest\": {\n", " \"model\": ensemble.RandomForestClassifier(\n", " max_depth=11, class_weight=\"balanced\", random_state=random_state\n", " )\n", " },\n", " \"mlp\": {\n", " \"model\": neural_network.MLPClassifier(\n", " hidden_layer_sizes=(7,),\n", " max_iter=500,\n", " early_stopping=True,\n", " random_state=random_state,\n", " )\n", " },\n", "}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Обучение моделей на обучающем наборе данных и оценка на тестовом" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: logistic\n", "Model: ridge\n", "Model: decision_tree\n", "Model: knn\n", "Model: naive_bayes\n", "Model: gradient_boosting\n", "Model: random_forest\n", "Model: mlp\n" ] } ], "source": [ "import numpy as np\n", "from sklearn import metrics\n", "\n", "for model_name in class_models.keys():\n", " print(f\"Model: {model_name}\")\n", " model = class_models[model_name][\"model\"]\n", "\n", " model_pipeline = Pipeline([(\"pipeline\", pipeline_end), (\"model\", model)])\n", " model_pipeline = model_pipeline.fit(X_train, y_train.values.ravel())\n", "\n", " y_train_predict = model_pipeline.predict(X_train)\n", " y_test_probs = model_pipeline.predict_proba(X_test)[:, 1]\n", " y_test_predict = np.where(y_test_probs > 0.5, 1, 0)\n", "\n", " class_models[model_name][\"pipeline\"] = model_pipeline\n", " class_models[model_name][\"probs\"] = y_test_probs\n", " class_models[model_name][\"preds\"] = y_test_predict\n", "\n", " class_models[model_name][\"Precision_train\"] = metrics.precision_score(\n", " y_train, y_train_predict\n", " )\n", " class_models[model_name][\"Precision_test\"] = metrics.precision_score(\n", " y_test, y_test_predict\n", " )\n", " class_models[model_name][\"Recall_train\"] = metrics.recall_score(\n", " y_train, y_train_predict\n", " )\n", " class_models[model_name][\"Recall_test\"] = metrics.recall_score(\n", " y_test, y_test_predict\n", " )\n", " class_models[model_name][\"Accuracy_train\"] = metrics.accuracy_score(\n", " y_train, y_train_predict\n", " )\n", " class_models[model_name][\"Accuracy_test\"] = metrics.accuracy_score(\n", " y_test, y_test_predict\n", " )\n", " class_models[model_name][\"ROC_AUC_test\"] = metrics.roc_auc_score(\n", " y_test, y_test_probs\n", " )\n", " class_models[model_name][\"F1_train\"] = metrics.f1_score(y_train, y_train_predict)\n", " class_models[model_name][\"F1_test\"] = metrics.f1_score(y_test, y_test_predict)\n", " class_models[model_name][\"MCC_test\"] = metrics.matthews_corrcoef(\n", " y_test, y_test_predict\n", " )\n", " class_models[model_name][\"Cohen_kappa_test\"] = metrics.cohen_kappa_score(\n", " y_test, y_test_predict\n", " )\n", " class_models[model_name][\"Confusion_matrix\"] = metrics.confusion_matrix(\n", " y_test, y_test_predict\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Сводная таблица оценок качества для использованных моделей классификации\n", "\n", "Документация: https://scikit-learn.org/1.5/modules/model_evaluation.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Матрица неточностей" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "image/png": "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cHBwEI6OjmL8+PFi4MCBWh98FUKIJ0+eiHHjxglPT08hlUqFn5+fWLFihbp+5syZwsPDQ0gkEhERESGEyH9Yd+HChaJevXrC2tpauLq6iuDgYHHgwAH1flu3bhV+fn5CJpOJtm3bihUrVuj94OuHH34oXFxchJ2dnejTp49YsGCBUCgU6vpp06aJJk2aiCVLlggvLy8hl8vFm2++KR48eKBx3NWrV4umTZsKqVQqnJycRLt27cTGjRuFEHzwlYiI8jE3F425mcqDRAgtTxUSERERERGRThzyR0REREREVErsUBEREREREZUSO1RERERERESlxA4VERERERFRKbFDRUREREREVErsUBEREREREZUSO1RERERERESlxA4VERERERFRKbFDRUREREREVErsUBEREREREZUSO1RERERERESlxA4VERERERFRKbFDRUREREREVErsUBEREREREZUSO1RkdB06dECHDh2MHkOjRo2MGgMREVF5kEgkmD59uvr1ypUrIZFIcO3aNaPFpMv+/fshkUiwYcMGY4eil2vXrkEikWDlypXGDoXKGDtURERERFSmHj9+jOnTp2P//v3GDsXgYmJisHDhQmOHQUZkZewAiH799Vdjh0BERFRpvfXWW+jbty9kMlmZvcfjx48xY8YMADD6qBRDi4mJwfnz5zF27FiNch8fHzx58gTW1tbGCYzKDTtUZHRSqdTYIRAREVVoKpUKOTk5kMvlBj+2paUlLC0tDX7cyk4ikZTJz4sqHg75I71Nnz4dEokEV65cQWRkJBwdHaFQKDBo0CA8fvxY3S46OhqBgYFwc3ODTCZDgwYNEBUVVeh4Tz9DlZKSAisrK/VVrKfFx8dDIpHg66+/VpelpqZi7Nix8Pb2hkwmg5+fH+bOnQuVSlWqc4uLi0OrVq1gY2MDX19fLF26VKM+JycHU6dORfPmzaFQKGBra4u2bdti37596jZCCNSsWRMhISGFjp+VlQWFQoF3331XXZadnY1p06bBz88PMpkM3t7emDBhArKzszX23b17N9q0aQNHR0fY2dmhXr16mDx5cqnOk4iIjGf//v1o0aIF5HI5ateujWXLlqlzawGJRIKRI0di9erVaNiwIWQyGWJjYwEA//vf/9CqVSu4uLjAxsYGzZs3L/L5ouzsbIwbNw6urq6wt7dHjx49cOvWrULttD1D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MBo0aIDMzEy99gkPD0dsbCwuXLiAvXv3Ijw8XGf7/v374/z584iLi8OGDRs02jdr1gzJycmwsrIq9POqWrUqAMDf31/j5wUAx48f1ytmIiIqW8zNhsX8TIbADhUBALKzs5GcnIzbt2/j1KlTmDVrFkJCQtC9e3cMHDiwUPvw8HBUrVoVISEhOHToEBITE7F//36MHj0at27dAgCMGTMGc+bMwebNm/H3339j+PDhSE1NLeczK1/3799HYGAgfvzxR/z5559ITEzE+vXrMW/ePISEhOh1rHbt2sHDwwPh4eHw9fUtdLv/WTVr1kSrVq0wePBgKJVK9axFABAUFISAgACEhobi119/xbVr13D06FF8/PHHOHnyJID8n9eKFSsQHR2NS5cuYdq0abhw4YL+HwIRERkEc7PhMD9TWeKQPwIAxMbGwtPTE1ZWVnByckKTJk2waNEiREREwMKicL+7SpUqOHjwID766CP07NkTjx49QrVq1dCpUyc4ODgAAN5//30kJSWpj/H222/jjTfeQFpaWnmfXrmxs7NDy5YtsWDBAiQkJCA3Nxfe3t4YOnQoJk+erNexJBIJ+vXrh3nz5mHq1Kkl2ic8PBzDhw/HwIEDYWNjo3GsHTt24OOPP8agQYNw7949eHh4oF27dnB3dwcA9OnTBwkJCZgwYQKysrIQFhaGYcOGYdeuXXrFTUREhsHcbDjMz1SWJEJUgsUHiIiIiIiIygCH/BEREREREZUSO1RERERERESlxA4VERERERFRKbFDRUREREREVErsUBEREREREZUSO1RERERERESlxA4VERERERFRKbFDRRVaZGQkQkND1a87dOiAsWPHlnsc+/fvh0Qi0bmavEQiwebNm0t8zOnTp6Np06bPFde1a9cgkUhw5syZ5zoOERFRSTE368bcXPmwQ0V6i4yMhEQigUQigVQqhZ+fH2bOnIm8vLwyf++NGzfik08+KVHbknzREhERmQPmZiLjsTJ2AGSaunTpgujoaGRnZ2PHjh0YMWIErK2tMWnSpEJtc3JyIJVKDfK+zs7OBjkOERGRuWFuJjIO3qGiUpHJZPDw8ICPjw+GDRuGoKAgbNmyBcB/QwE+++wzeHl5oV69egCAmzdvonfv3nB0dISzszNCQkJw7do12TRHKgAAXKpJREFU9TGVSiXGjx8PR0dHuLi4YMKECRBCaLzvs8MKsrOz8dFHH8Hb2xsymQx+fn5Yvnw5rl27ho4dOwIAnJycIJFIEBkZCQBQqVSYPXs2fH19YWNjgyZNmmDDhg0a77Njxw7UrVsXNjY26Nixo0acJfXRRx+hbt26qFKlCmrVqoUpU6YgNze3ULtly5bB29sbVapUQe/evZGWlqZR/91338Hf3x9yuRz169fHkiVL9I6FiIjMH3Nz8ZibqSywQ0UGYWNjg5ycHPXrPXv2ID4+Hrt378a2bduQm5uL4OBg2Nvb49ChQzhy5Ajs7OzQpUsX9X7z58/HypUrsWLFChw+fBgPHjzApk2bdL7vwIED8dNPP2HRokW4ePEili1bBjs7O3h7e+Pnn38GAMTHxyMpKQlffvklAGD27NlYtWoVli5digsXLmDcuHEYMGAADhw4ACA/ufTs2ROvv/46zpw5gyFDhmDixIl6fyb29vZYuXIl/vrrL3z55Zf49ttvsWDBAo02V65cwbp167B161bExsbi9OnTGD58uLp+9erVmDp1Kj777DNcvHgRs2bNwpQpU/D999/rHQ8REVUuzM2FMTdTmRBEeoqIiBAhISFCCCFUKpXYvXu3kMlk4oMPPlDXu7u7i+zsbPU+P/zwg6hXr55QqVTqsuzsbGFjYyN27dolhBDC09NTzJs3T12fm5srqlevrn4vIYRo3769GDNmjBBCiPj4eAFA7N69u8g49+3bJwCIhw8fqsuysrJElSpVxNGjRzXaDh48WPTr108IIcSkSZNEgwYNNOo/+uijQsd6FgCxadMmrfWff/65aN68ufr1tGnThKWlpbh165a6bOfOncLCwkIkJSUJIYSoXbu2iImJ0TjOJ598IgICAoQQQiQmJgoA4vTp01rfl4iIzB9zc9GYm6k88BkqKpVt27bBzs4Oubm5UKlU6N+/P6ZPn66uf+GFFzTGZp89exZXrlyBvb29xnGysrKQkJCAtLQ0JCUloWXLluo6KysrtGjRotDQggJnzpyBpaUl2rdvX+K4r1y5gsePH6Nz584a5Tk5OXjxxRcBABcvXtSIAwACAgJK/B4F1q5di0WLFiEhIQEZGRnIy8uDg4ODRpsaNWqgWrVqGu+jUqkQHx8Pe3t7JCQkYPDgwRg6dKi6TV5eHhQKhd7xEBGReWNuLh5zM5UFdqioVDp27IioqChIpVJ4eXnBykrzv5Ktra3G64yMDDRv3hyrV68udCxXV9dSxWBjY6P3PhkZGQCA7du3a3xZAvljzw3l2LFjCA8Px4wZMxAcHAyFQoE1a9Zg/vz5esf67bffFkoilpaWBouViIjMA3OzbszNVFbYoaJSsbW1hZ+fX4nbN2vWDGvXroWbm1uhK0EFPD09ceLECbRr1w5A/tWeuLg4NGvWrMj2L7zwAlQqFQ4cOICgoKBC9QVX4ZRKpbqsQYMGkMlkuHHjhtarZ/7+/uqHeAscP368+JN8ytGjR+Hj44OPP/5YXXb9+vVC7W7cuIE7d+7Ay8tL/T4WFhaoV68e3N3d4eXlhatXryI8PFyv9yciosqHuVk35mYqK5yUgspFeHg4qlatipCQEBw6dAiJiYnYv38/Ro8ejVu3bgEAxowZgzlz5mDz5s34+++/MXz4cJ3rVNSsWRMRERF4++23sXnzZvUx161bBwDw8fGBRCLBtm3bcO/ePWRkZMDe3h4ffPABxo0bh++//x4JCQk4deoUvvrqK/XDpO+99x4uX76MDz/8EPHx8YiJicHKlSv1Ot86dergxo0bWLNmDRISErBo0aIiH+KVy+WIiIjA2bNncejQIYwePRq9e/eGh4cHAGDGjBmYPXs2Fi1ahEuXLuHcuXOIjo7GF198oVc8REREz2JuZm4mAzH2Q1xkep5+8FWf+qSkJDFw4EBRtWpVIZPJRK1atcTQoUNFWlqaECL/QdcxY8YIBwcH4ejoKMaPHy8GDhyo9cFXIYR48uSJGDdunPD09BRSqVT4+fmJFStWqOtnzpwpPDw8hEQiEREREUKI/Id1Fy5cKOrVqyesra2Fq6urCA4OFgcOHFDvt3XrVuHn5ydkMplo27atWLFihd4Pvn744YfCxcVF2NnZiT59+ogFCxYIhUKhrp82bZpo0qSJWLJkifDy8hJyuVy8+eab4sGDBxrHXb16tWjatKmQSqXCyclJtGvXTmzcuFEIwQdfiYgoH3Nz0ZibqTxIhNDyVCERERERERHpxCF/REREREREpcQOFRERERERUSmxQ0VERERERFRK7FARERERERGVEjtUREREREREpcQOFRERERERUSmxQ0VERERERFRK7FARERERERGVEjtUREREREREpcQOFRERERERUSmxQ0VERERERFRK7FARERERERGVEjtUREREREREpcQOFRERERERUSmxQ0UVkkQiwfTp040dhlY//PAD6tevD2trazg6Oho7HCIiIrNy7do1SCQSrFy50tihEBWLHSoiPf3999+IjIxE7dq18e233+Kbb74xdkiF3LlzB9OnT8eZM2eMHQoRERGRWbMydgBEpmb//v1QqVT48ssv4efnZ+xwinTnzh3MmDEDNWvWRNOmTY0dDhEREZHZ4h0qKpHMzExjh1Bh3L17FwAMOtTv8ePHBjsWEREREZUfdqiokOnTp0MikeCvv/5C//794eTkhDZt2uDPP/9EZGQkatWqBblcDg8PD7z99tu4f/9+kftfuXIFkZGRcHR0hEKhwKBBgwp1HLKzszFu3Di4urrC3t4ePXr0wK1bt4qM6/Tp0+jatSscHBxgZ2eHTp064fjx4xptVq5cCYlEgsOHD2P06NFwdXWFo6Mj3n33XeTk5CA1NRUDBw6Ek5MTnJycMGHCBAghSvzZ1KxZE9OmTQMAuLq6FnrWa8mSJWjYsCFkMhm8vLwwYsQIpKamahyjQ4cOaNSoEeLi4tCuXTtUqVIFkydPVn8e06ZNg5+fH2QyGby9vTFhwgRkZ2drHGP37t1o06YNHB0dYWdnh3r16qmPsX//frz00ksAgEGDBkEikXAcOhERlbuCvwcuXbqEAQMGQKFQwNXVFVOmTIEQAjdv3kRISAgcHBzg4eGB+fPn6zxeZGQk7OzscPXqVQQHB8PW1hZeXl6YOXOmXrmcyNA45I+06tWrF+rUqYNZs2ZBCIHdu3fj6tWrGDRoEDw8PHDhwgV88803uHDhAo4fPw6JRKKxf+/eveHr64vZs2fj1KlT+O677+Dm5oa5c+eq2wwZMgQ//vgj+vfvj1atWmHv3r3o1q1boVguXLiAtm3bwsHBARMmTIC1tTWWLVuGDh064MCBA2jZsqVG+1GjRsHDwwMzZszA8ePH8c0338DR0RFHjx5FjRo1MGvWLOzYsQOff/45GjVqhIEDB5boM1m4cCFWrVqFTZs2ISoqCnZ2dmjcuDGA/MQxY8YMBAUFYdiwYYiPj0dUVBT++OMPHDlyBNbW1urj3L9/H127dkXfvn0xYMAAuLu7Q6VSoUePHjh8+DDeeecd+Pv749y5c1iwYAEuXbqEzZs3qz+L7t27o3Hjxpg5cyZkMhmuXLmCI0eOAAD8/f0xc+ZMTJ06Fe+88w7atm0LAGjVqlWJzpGIiMiQ+vTpA39/f8yZMwfbt2/Hp59+CmdnZyxbtgyBgYGYO3cuVq9ejQ8++AAvvfQS2rVrp/VYSqUSXbp0wSuvvIJ58+YhNjYW06ZNQ15eHmbOnFmOZ0X0FEH0jGnTpgkAol+/fhrljx8/LtT2p59+EgDEwYMHC+3/9ttva7R94403hIuLi/r1mTNnBAAxfPhwjXb9+/cXAMS0adPUZaGhoUIqlYqEhAR12Z07d4S9vb1o166duiw6OloAEMHBwUKlUqnLAwIChEQiEe+99566LC8vT1SvXl20b9++mE9EU8H53bt3T1129+5dIZVKxauvviqUSqW6/OuvvxYAxIoVK9Rl7du3FwDE0qVLNY77ww8/CAsLC3Ho0CGN8qVLlwoA4siRI0IIIRYsWFDo/Z/1xx9/CAAiOjpar3MjIiIylIJ8+c4776jLCnKvRCIRc+bMUZc/fPhQ2NjYiIiICCGEEImJiYXyWEREhAAgRo0apS5TqVSiW7duQiqV6syLRGWJQ/5Iq/fee0/jtY2NjfrfWVlZ+Oeff/DKK68AAE6dOlXs/m3btsX9+/eRnp4OANixYwcAYPTo0Rrtxo4dq/FaqVTi119/RWhoKGrVqqUu9/T0RP/+/XH48GH1MQsMHjxY445Zy5YtIYTA4MGD1WWWlpZo0aIFrl69WvQHoIfffvsNOTk5GDt2LCws/vu1Gjp0KBwcHLB9+3aN9jKZDIMGDdIoW79+Pfz9/VG/fn38888/6i0wMBAAsG/fPgD/Pbv1yy+/QKVSPXfsREREZWnIkCHqfxfk3mdzsqOjI+rVq1einDxy5Ej1vyUSCUaOHImcnBz89ttvhg2cqITYoSKtfH19NV4/ePAAY8aMgbu7O2xsbODq6qpuk5aWVmj/GjVqaLx2cnICADx8+BAAcP36dVhYWKB27doa7erVq6fx+t69e3j8+HGhciB/eJtKpcLNmzd1vrdCoQAAeHt7FyoviOd5XL9+vcjYpVIpatWqpa4vUK1aNUilUo2yy5cv48KFC3B1ddXY6tatC+C/yTD69OmD1q1bY8iQIXB3d0ffvn2xbt06dq6IiKhCKiony+VyVK1atVB5cTnZwsJC4+IqAHWevHbt2vMHS1QKfIaKtHr6jhSQ/0zU0aNH8eGHH6Jp06aws7ODSqVCly5divxj3tLSssjjinJ4cFTbexdVXh7xPOvZzxYAVCoVXnjhBXzxxRdF7lPQGbSxscHBgwexb98+bN++HbGxsVi7di0CAwPx66+/aj13IiIiYygqLxnzbwQiQ2OHikrk4cOH2LNnD2bMmIGpU6eqyy9fvlzqY/r4+EClUiEhIUHjzk58fLxGO1dXV1SpUqVQOZC/yK6FhUWhO0/lzcfHB0B+7E9fOcvJyUFiYiKCgoKKPUbt2rVx9uxZdOrUqdAEH8+ysLBAp06d0KlTJ3zxxReYNWsWPv74Y+zbtw9BQUHF7k9ERGSKVCoVrl69qr4rBQCXLl0CkD8TL5ExcMgflUjBlaRnrxwtXLiw1Mfs2rUrAGDRokU6j2lpaYlXX30Vv/zyi8bt/JSUFMTExKBNmzZwcHAodRyGEBQUBKlUikWLFml8RsuXL0daWlqRMxc+q3fv3rh9+za+/fbbQnVPnjxRrwX24MGDQvUFi/cWTK9ua2sLAIWmbCciIjJ1X3/9tfrfQgh8/fXXsLa2RqdOnYwYFVVmvENFJeLg4IB27dph3rx5yM3NRbVq1fDrr78iMTGx1Mds2rQp+vXrhyVLliAtLQ2tWrXCnj17cOXKlUJtP/30U/XaS8OHD4eVlRWWLVuG7OxszJs373lOzSBcXV0xadIkzJgxA126dEGPHj0QHx+PJUuW4KWXXsKAAQOKPcZbb72FdevW4b333sO+ffvQunVrKJVK/P3331i3bh127dqFFi1aYObMmTh48CC6desGHx8f3L17F0uWLEH16tXRpk0bAPl3uxwdHbF06VLY29vD1tYWLVu2LPRcHBERkSmRy+WIjY1FREQEWrZsiZ07d2L79u2YPHkyXF1djR0eVVLsUFGJxcTEYNSoUVi8eDGEEHj11Vexc+dOeHl5lfqYK1asgKurK1avXo3NmzcjMDDw/9u787ioqv9/4K/LjjIDgsqAomJuuKShfQgtTcWwsiDJ1Ogn5vbNJVErlxI1N9QW/VgubaL2kdIsSS0tw8SdEpWsyC1UlEWTAMGAYeb8/iCmRpiBwYGZO7yej8d9PD7cc+fOufBxXr3nnnsOvvrqq0pD+Lp06YJDhw5hzpw5iI2NhVarRVBQEP73v/9VWoPKUhYsWIBmzZrh3XffxfTp0+Hp6YkJEyZg6dKlemtQGWJnZ4eEhASsXLlSt9ZVo0aN0LZtW0RHR+uGNzz55JO4dOkSNmzYgD/++ANNmzZFv3798Prrr+sm33B0dMSmTZswZ84cvPDCCygrK0NcXBwLKiIikjV7e3vs3bsXEydOxCuvvAKFQoH58+frPY5AVN8kwaf/iIiIiMjKjR49Gtu3b0dhYaGlu0Kkh89QERERERER1RKH/BH9LTc3F6WlpQbb7e3tOT6biIiIiPSwoCL629ChQ5GUlGSwvXXr1lw0kIiIiIj08Bkqor+lpKQYXaHd1dUVffr0qcceEREREZG1Y0FFRERERERUSxzyZyFarRaZmZlQKBSQJMnS3SGqd0II3Lp1C76+vrCzM+/8OMXFxUafhwMAJycnuLi4mPV9iUj+mM/UkFk6mwF55jMLKgvJzMystNYSUUOUkZGBli1bmu18xcXF8G/thuzrGqPHqVQqpKeny+5Dm4jqFvOZyHLZDMgzn1lQWYhCoQAAXD7ZBko3zl5vCU916GbpLjRoZVDjML7W/Vswl9LSUmRf1yA9pTWUiqr/bRXc0sK/52WUlpbK6gObiOoe89nymM+WY8lsBuSbzyyoLKRiGIHSzc7o/7Go7jhIjpbuQsP299ObdTWkprFb+VYVDZ8cJSIDmM+Wx3y2IAtmMyDffGZBRUQ2qQwalKHqT+YyaOu5N0RERGQsm8vb5ZnPLKiIyCZphIDGwCSmhvYTERFR3TGWzRXtcsSCiohskhYCWgPfghnaT0RERHXHWDZXtMsRCyoiskll0EJtpI2IiIjql7FsrmiXIxZURGSTOOSPiIjIunDIHxGRjGj/3gy1ERERUf0yls2ops2acT5QIrJJpUIY3YiIiKh+VZfNpubzwYMH8cQTT8DX1xeSJCEhIUGvXQiBefPmwcfHB66urggJCcH58+f1jsnNzUVkZCSUSiU8PDwwduxYFBYWmtQPFlREZJO01WxERERUv6rLZlPzuaioCN27d8eaNWuqbF+xYgVWr16N9evXIzk5GY0bN0ZoaCiKi4t1x0RGRuKXX37Bvn37sHv3bhw8eBATJkwwqR8c8kdENkkLCRpUvTCh1sB+IiIiqjvGsrmi3RSPPvooHn300SrbhBBYtWoV5s6di7CwMADA5s2b4e3tjYSEBIwYMQJpaWnYu3cvfvzxR/Tq1QsA8M477+Cxxx7Dm2++CV9f3xr1g3eoiMgmqYVkdCMiIqL6VV02V+RzQUGB3lZSUmLye6WnpyM7OxshISG6fe7u7ggKCsKxY8cAAMeOHYOHh4eumAKAkJAQ2NnZITk5ucbvxYKKiGyS5u9vwQxtREREVL+qy+aKfPbz84O7u7tui42NNfm9srOzAQDe3t56+729vXVt2dnZaN68uV67g4MDPD09dcfUBIf8EZFN0goJWgN3ogztJyIiorpjLJsr2gEgIyMDSqVSt9/Z2bnO+3Y3WFARkU0qhT1KDdyEL+UdKiIionpnLJvL28vzWalU6hVUtaFSqQAAOTk58PHx0e3PyclBjx49dMdcv35d73VlZWXIzc3Vvb4mOOSPiGyS+PtbsKo2wTtURERE9c5YNps7n/39/aFSqZCYmKjbV1BQgOTkZAQHBwMAgoODkZeXh5SUFN0x+/fvh1arRVBQUI3fi3eoiMgmGXtWis9QERER1b/qnmM2NZ8LCwtx4cIF3c/p6ek4ffo0PD090apVK0ybNg2LFy9G+/bt4e/vj5iYGPj6+iI8PBwAEBAQgMGDB2P8+PFYv3491Go1pkyZghEjRtR4hj+ABRUR2Si1sIda2Bto09Rzb4iIiMhYNpe3m5bPJ06cQP/+/XU/z5gxAwAQFRWFjRs3YubMmSgqKsKECROQl5eHBx98EHv37oWLi4vuNVu2bMGUKVMwcOBA2NnZISIiAqtXrzapHyyoiMgm8Q4VERGRdTH3HaqHH34YQgiD7ZIkYeHChVi4cKHBYzw9PREfH2/S+96JBRUR2SSNsINGVP2YqMbIhy8RERHVDWPZXN4uz3xmQUVENqkM9lCj6mEFZfXcFyIiIjKezeXt8sSCiohsEu9QERERWRfeoSIikhEt7KA1sDKEFvL8wCYiIpIzY9lc3i7PfGZBRUQ2qVTYw8HATEKl8vy8JiIikjVj2VzeXo+dMSMWVERkk7TCDloDwwq0Mh1SQEREJGfGsrm8XZ75zIKKiGySBnbQGBhWoJHpkAIiIiI5M5bN5e3yzGcWVERkk8pgZ3DxwDKZfmATERHJmbFsLm+XZz6zoCIim2R8lj/D344RERFR3ah+lj955jMLKiKySVpI0BpYcd3QfiIiIqo7xrK5ol2OWFARkU0qFQ6wF1V/xMl1FiEiIiI5M5bN5e312BkzYkFFRDZJKyRohYE7VAb2ExERUd0xls0V7XLEgoqIbJLWyExCxhYVJCIiorphLJsr2uWIBRUR2SS1sIe9gZmE1DJd54KIiEjOjGVzebs881meZSARUTUqFg80tJlCo9EgJiYG/v7+cHV1xT333INFixZB/OuDXwiBefPmwcfHB66urggJCcH58+fNfVlERESyVV02m5rP1kKevSYiqoYGgAaSgc00y5cvx7p16/Duu+8iLS0Ny5cvx4oVK/DOO+/ojlmxYgVWr16N9evXIzk5GY0bN0ZoaCiKi4vNel1ERERyZTybTc9na8Ehf0Rkk9RaB9hrq/6IU2tNG1Jw9OhRhIWF4fHHHwcAtGnTBp988gl++OEHAOV3p1atWoW5c+ciLCwMALB582Z4e3sjISEBI0aMuIsrISIisg3Gsrm8nUP+iIishvh7rYuqNvH3OhcFBQV6W0lJSZXn6t27NxITE3Hu3DkAQGpqKg4fPoxHH30UAJCeno7s7GyEhIToXuPu7o6goCAcO3asjq+UiIhIHoxl87/zWW54h4qIbJKx1dgr9vv5+entnz9/PhYsWFDp+NmzZ6OgoACdOnWCvb09NBoNlixZgsjISABAdnY2AMDb21vvdd7e3ro2IiKihs5YNle0yxELKiKySWphDzuDs/xpAQAZGRlQKpW6/c7OzlUev23bNmzZsgXx8fHo0qULTp8+jWnTpsHX1xdRUVHm7zwREZENMpbN5e3aeuyN+bCgIiKbVJOFfZVKpV5BZcgrr7yC2bNn656F6tatGy5fvozY2FhERUVBpVIBAHJycuDj46N7XU5ODnr06HGXV0JERGQbbHVhX3neVyMiqoYWdkY3U9y+fRt2dvqvsbe3h1Zb/k2av78/VCoVEhMTde0FBQVITk5GcHDw3V8MERGRDagum7mwLxGRFVFr7WCnrfqDWW1gvyFPPPEElixZglatWqFLly44deoU3n77bYwZMwYAIEkSpk2bhsWLF6N9+/bw9/dHTEwMfH19ER4efreXQkREZBOMZXNFuxyxoCKjbhfaYdMKHxzd4468mw64p8tfmLjoKjr2+Et3zJXzzvhosS9+Ou4GTRnQukMJYj5IR/OWagv23DZ0DSrEsEk30L7bbXipyrBgTBsc2+te5bFTl13F46NuYv08X+z4sFk999T6CCMLBAoTH3p95513EBMTg0mTJuH69evw9fXF//3f/2HevHm6Y2bOnImioiJMmDABeXl5ePDBB7F37164uLjc1XUQEZ053hifrW2O82caITfHEfM/SkfvR/N17UIAm99Q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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.metrics import ConfusionMatrixDisplay\n", "import matplotlib.pyplot as plt\n", "\n", "_, ax = plt.subplots(int(len(class_models) / 2), 2, figsize=(12, 10), sharex=False, sharey=False)\n", "for index, key in enumerate(class_models.keys()):\n", " c_matrix = class_models[key][\"Confusion_matrix\"]\n", " disp = ConfusionMatrixDisplay(\n", " confusion_matrix=c_matrix, display_labels=[\"Died\", \"Sirvived\"]\n", " ).plot(ax=ax.flat[index])\n", " disp.ax_.set_title(key)\n", "\n", "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.1)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Точность, полнота, верность (аккуратность), F-мера" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 Precision_trainPrecision_testRecall_trainRecall_testAccuracy_trainAccuracy_testF1_trainF1_test
random_forest0.8943400.7941180.8681320.7826090.9101120.8379890.8810410.788321
gradient_boosting0.8897640.8000000.8278390.7536230.8946630.8324020.8576850.776119
logistic0.7518800.8064520.7326010.7246380.8047750.8268160.7421150.763359
decision_tree0.8524590.8392860.7619050.6811590.8581460.8268160.8046420.752000
knn0.8291670.8275860.7289380.6956520.8384830.8268160.7758280.755906
ridge0.7203950.6883120.8021980.7681160.8047750.7765360.7590990.726027
naive_bayes0.5545240.5754720.8754580.8840580.6825840.7039110.6789770.697143
mlp0.9000000.8333330.1978020.2173910.6839890.6815640.3243240.344828
\n" ], "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class_metrics = pd.DataFrame.from_dict(class_models, \"index\")[\n", " [\n", " \"Precision_train\",\n", " \"Precision_test\",\n", " \"Recall_train\",\n", " \"Recall_test\",\n", " \"Accuracy_train\",\n", " \"Accuracy_test\",\n", " \"F1_train\",\n", " \"F1_test\",\n", " ]\n", "]\n", "class_metrics.sort_values(\n", " by=\"Accuracy_test\", ascending=False\n", ").style.background_gradient(\n", " cmap=\"plasma\",\n", " low=0.3,\n", " high=1,\n", " subset=[\"Accuracy_train\", \"Accuracy_test\", \"F1_train\", \"F1_test\"],\n", ").background_gradient(\n", " cmap=\"viridis\",\n", " low=1,\n", " high=0.3,\n", " subset=[\n", " \"Precision_train\",\n", " \"Precision_test\",\n", " \"Recall_train\",\n", " \"Recall_test\",\n", " ],\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ROC-кривая, каппа Коэна, коэффициент корреляции Мэтьюса" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 Accuracy_testF1_testROC_AUC_testCohen_kappa_testMCC_test
random_forest0.8379890.7883210.8588930.6571110.657157
logistic0.8268160.7633590.8540840.6274090.629641
ridge0.7765360.7260270.8510540.5383030.540613
gradient_boosting0.8324020.7761190.8509220.6423810.643113
knn0.8268160.7559060.8387350.6232600.628905
decision_tree0.8268160.7520000.7941370.6211510.629142
naive_bayes0.7039110.6971430.7859030.4318140.470403
mlp0.6815640.3448280.7127140.2204900.307678
\n" ], "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class_metrics = pd.DataFrame.from_dict(class_models, \"index\")[\n", " [\n", " \"Accuracy_test\",\n", " \"F1_test\",\n", " \"ROC_AUC_test\",\n", " \"Cohen_kappa_test\",\n", " \"MCC_test\",\n", " ]\n", "]\n", "class_metrics.sort_values(by=\"ROC_AUC_test\", ascending=False).style.background_gradient(\n", " cmap=\"plasma\",\n", " low=0.3,\n", " high=1,\n", " subset=[\n", " \"ROC_AUC_test\",\n", " \"MCC_test\",\n", " \"Cohen_kappa_test\",\n", " ],\n", ").background_gradient(\n", " cmap=\"viridis\",\n", " low=1,\n", " high=0.3,\n", " subset=[\n", " \"Accuracy_test\",\n", " \"F1_test\",\n", " ],\n", ")" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'random_forest'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "best_model = str(class_metrics.sort_values(by=\"MCC_test\", ascending=False).iloc[0].name)\n", "\n", "display(best_model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Вывод данных с ошибкой предсказания для оценки" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Error items count: 29'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SurvivedPredictedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
PassengerId
26103Asplund, Mrs. Carl Oscar (Selma Augusta Emilia...female38.01534707731.3875NaNS
72013Goodwin, Miss. Lillian Amyfemale16.052CA 214446.9000NaNS
103011White, Mr. Richard Frasarmale21.0013528177.2875D26S
108103Moss, Mr. Albert JohanmaleNaN003129917.7750NaNS
128103Madsen, Mr. Fridtjof Arnemale24.000C 173697.1417NaNS
193103Andersen-Jensen, Miss. Carla Christine Nielsinefemale19.0103500467.8542NaNS
241013Zabour, Miss. ThaminefemaleNaN10266514.4542NaNC
272103Tornquist, Mr. William Henrymale25.000LINE0.0000NaNS
293012Levy, Mr. Rene Jacquesmale36.000SC/Paris 216312.8750DC
352011Williams-Lambert, Mr. Fletcher FellowsmaleNaN0011351035.0000C128S
358012Funk, Miss. Annie Clemmerfemale38.00023767113.0000NaNS
378011Widener, Mr. Harry Elkinsmale27.002113503211.5000C82C
445103Johannesen-Bratthammer, Mr. BerntmaleNaN00653068.1125NaNS
450101Peuchen, Major. Arthur Godfreymale52.00011378630.5000C104S
508101Bradley, Mr. George (\"George Arthur Brayton\")maleNaN0011142726.5500NaNS
511103Daly, Mr. Eugene Patrickmale29.0003826517.7500NaNQ
570103Jonsson, Mr. Carlmale32.0003504177.8542NaNS
579013Caram, Mrs. Joseph (Maria Elias)femaleNaN10268914.4583NaNC
584011Ross, Mr. John Hugomale36.0001304940.1250A10C
588101Frolicher-Stehli, Mr. Maxmillianmale60.0111356779.2000B41C
618013Lobb, Mrs. William Arthur (Cordelia K Stanlick)female26.010A/5. 333616.1000NaNS
658013Bourke, Mrs. John (Catherine)female32.01136484915.5000NaNQ
661101Frauenthal, Dr. Henry Williammale50.020PC 17611133.6500NaNS
674102Wilhelms, Mr. Charlesmale31.00024427013.0000NaNS
745103Stranden, Mr. Juhomale31.000STON/O 2. 31012887.9250NaNS
773012Mack, Mrs. (Mary)female57.000S.O./P.P. 310.5000E77S
807011Andrews, Mr. Thomas Jrmale39.0001120500.0000A36S
814013Andersson, Miss. Ebba Iris Alfridafemale6.04234708231.2750NaNS
829103McCormack, Mr. Thomas JosephmaleNaN003672287.7500NaNQ
\n", "
" ], "text/plain": [ " Survived Predicted Pclass \\\n", "PassengerId \n", "26 1 0 3 \n", "72 0 1 3 \n", "103 0 1 1 \n", "108 1 0 3 \n", "128 1 0 3 \n", "193 1 0 3 \n", "241 0 1 3 \n", "272 1 0 3 \n", "293 0 1 2 \n", "352 0 1 1 \n", "358 0 1 2 \n", "378 0 1 1 \n", "445 1 0 3 \n", "450 1 0 1 \n", "508 1 0 1 \n", "511 1 0 3 \n", "570 1 0 3 \n", "579 0 1 3 \n", "584 0 1 1 \n", "588 1 0 1 \n", "618 0 1 3 \n", "658 0 1 3 \n", "661 1 0 1 \n", "674 1 0 2 \n", "745 1 0 3 \n", "773 0 1 2 \n", "807 0 1 1 \n", "814 0 1 3 \n", "829 1 0 3 \n", "\n", " Name Sex Age \\\n", "PassengerId \n", "26 Asplund, Mrs. Carl Oscar (Selma Augusta Emilia... female 38.0 \n", "72 Goodwin, Miss. Lillian Amy female 16.0 \n", "103 White, Mr. Richard Frasar male 21.0 \n", "108 Moss, Mr. Albert Johan male NaN \n", "128 Madsen, Mr. Fridtjof Arne male 24.0 \n", "193 Andersen-Jensen, Miss. Carla Christine Nielsine female 19.0 \n", "241 Zabour, Miss. Thamine female NaN \n", "272 Tornquist, Mr. William Henry male 25.0 \n", "293 Levy, Mr. Rene Jacques male 36.0 \n", "352 Williams-Lambert, Mr. Fletcher Fellows male NaN \n", "358 Funk, Miss. Annie Clemmer female 38.0 \n", "378 Widener, Mr. Harry Elkins male 27.0 \n", "445 Johannesen-Bratthammer, Mr. Bernt male NaN \n", "450 Peuchen, Major. Arthur Godfrey male 52.0 \n", "508 Bradley, Mr. George (\"George Arthur Brayton\") male NaN \n", "511 Daly, Mr. Eugene Patrick male 29.0 \n", "570 Jonsson, Mr. Carl male 32.0 \n", "579 Caram, Mrs. Joseph (Maria Elias) female NaN \n", "584 Ross, Mr. John Hugo male 36.0 \n", "588 Frolicher-Stehli, Mr. Maxmillian male 60.0 \n", "618 Lobb, Mrs. William Arthur (Cordelia K Stanlick) female 26.0 \n", "658 Bourke, Mrs. John (Catherine) female 32.0 \n", "661 Frauenthal, Dr. Henry William male 50.0 \n", "674 Wilhelms, Mr. Charles male 31.0 \n", "745 Stranden, Mr. Juho male 31.0 \n", "773 Mack, Mrs. (Mary) female 57.0 \n", "807 Andrews, Mr. Thomas Jr male 39.0 \n", "814 Andersson, Miss. Ebba Iris Alfrida female 6.0 \n", "829 McCormack, Mr. Thomas Joseph male NaN \n", "\n", " SibSp Parch Ticket Fare Cabin Embarked \n", "PassengerId \n", "26 1 5 347077 31.3875 NaN S \n", "72 5 2 CA 2144 46.9000 NaN S \n", "103 0 1 35281 77.2875 D26 S \n", "108 0 0 312991 7.7750 NaN S \n", "128 0 0 C 17369 7.1417 NaN S \n", "193 1 0 350046 7.8542 NaN S \n", "241 1 0 2665 14.4542 NaN C \n", "272 0 0 LINE 0.0000 NaN S \n", "293 0 0 SC/Paris 2163 12.8750 D C \n", "352 0 0 113510 35.0000 C128 S \n", "358 0 0 237671 13.0000 NaN S \n", "378 0 2 113503 211.5000 C82 C \n", "445 0 0 65306 8.1125 NaN S \n", "450 0 0 113786 30.5000 C104 S \n", "508 0 0 111427 26.5500 NaN S \n", "511 0 0 382651 7.7500 NaN Q \n", "570 0 0 350417 7.8542 NaN S \n", "579 1 0 2689 14.4583 NaN C \n", "584 0 0 13049 40.1250 A10 C \n", "588 1 1 13567 79.2000 B41 C \n", "618 1 0 A/5. 3336 16.1000 NaN S \n", "658 1 1 364849 15.5000 NaN Q \n", "661 2 0 PC 17611 133.6500 NaN S \n", "674 0 0 244270 13.0000 NaN S \n", "745 0 0 STON/O 2. 3101288 7.9250 NaN S \n", "773 0 0 S.O./P.P. 3 10.5000 E77 S \n", "807 0 0 112050 0.0000 A36 S \n", "814 4 2 347082 31.2750 NaN S \n", "829 0 0 367228 7.7500 NaN Q " ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "preprocessing_result = pipeline_end.transform(X_test)\n", "preprocessed_df = pd.DataFrame(\n", " preprocessing_result,\n", " columns=pipeline_end.get_feature_names_out(),\n", ")\n", "\n", "y_pred = class_models[best_model][\"preds\"]\n", "\n", "error_index = y_test[y_test[\"Survived\"] != y_pred].index.tolist()\n", "display(f\"Error items count: {len(error_index)}\")\n", "\n", "error_predicted = pd.Series(y_pred, index=y_test.index).loc[error_index]\n", "error_df = X_test.loc[error_index].copy()\n", "error_df.insert(loc=1, column=\"Predicted\", value=error_predicted)\n", "error_df.sort_index()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример использования обученной модели (конвейера) для предсказания" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
45011Peuchen, Major. Arthur Godfreymale52.00011378630.5C104S
\n", "
" ], "text/plain": [ " Survived Pclass Name Sex Age SibSp Parch \\\n", "450 1 1 Peuchen, Major. Arthur Godfrey male 52.0 0 0 \n", "\n", " Ticket Fare Cabin Embarked \n", "450 113786 30.5 C104 S " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Cabin_type_BCabin_type_CCabin_type_DCabin_type_ECabin_type_FCabin_type_GCabin_type_TCabin_type_uIs_marriedPclassAgeSibSpSex_male
4500.01.00.00.00.00.00.00.00.0-1.5800881.749939-0.4734651.0
\n", "
" ], "text/plain": [ " Cabin_type_B Cabin_type_C Cabin_type_D Cabin_type_E Cabin_type_F \\\n", "450 0.0 1.0 0.0 0.0 0.0 \n", "\n", " Cabin_type_G Cabin_type_T Cabin_type_u Is_married Pclass Age \\\n", "450 0.0 0.0 0.0 0.0 -1.580088 1.749939 \n", "\n", " SibSp Sex_male \n", "450 -0.473465 1.0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'predicted: 0 (proba: [0.91145747 0.08854253])'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'real: 1'" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model = class_models[best_model][\"pipeline\"]\n", "\n", "example_id = 450\n", "test = pd.DataFrame(X_test.loc[example_id, :]).T\n", "test_preprocessed = pd.DataFrame(preprocessed_df.loc[example_id, :]).T\n", "display(test)\n", "display(test_preprocessed)\n", "result_proba = model.predict_proba(test)[0]\n", "result = model.predict(test)[0]\n", "real = int(y_test.loc[example_id].values[0])\n", "display(f\"predicted: {result} (proba: {result_proba})\")\n", "display(f\"real: {real}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Подбор гиперпараметров методом поиска по сетке\n", "\n", "https://www.kaggle.com/code/sociopath00/random-forest-using-gridsearchcv\n", "\n", "https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'model__criterion': 'gini',\n", " 'model__max_depth': 7,\n", " 'model__max_features': 'sqrt',\n", " 'model__n_estimators': 30}" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import GridSearchCV\n", "\n", "optimized_model_type = \"random_forest\"\n", "\n", "random_forest_model = class_models[optimized_model_type][\"pipeline\"]\n", "\n", "param_grid = {\n", " \"model__n_estimators\": [10, 20, 30, 40, 50, 100, 150, 200, 250, 500],\n", " \"model__max_features\": [\"sqrt\", \"log2\", 2],\n", " \"model__max_depth\": [2, 3, 4, 5, 6, 7, 8, 9 ,10],\n", " \"model__criterion\": [\"gini\", \"entropy\", \"log_loss\"],\n", "}\n", "\n", "gs_optomizer = GridSearchCV(\n", " estimator=random_forest_model, param_grid=param_grid, n_jobs=-1\n", ")\n", "gs_optomizer.fit(X_train, y_train.values.ravel())\n", "gs_optomizer.best_params_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Обучение модели с новыми гиперпараметрами" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [], "source": [ "optimized_model = ensemble.RandomForestClassifier(\n", " random_state=random_state,\n", " criterion=\"gini\",\n", " max_depth=7,\n", " max_features=\"sqrt\",\n", " n_estimators=30,\n", ")\n", "\n", "result = {}\n", "\n", "result[\"pipeline\"] = Pipeline([(\"pipeline\", pipeline_end), (\"model\", optimized_model)]).fit(X_train, y_train.values.ravel())\n", "result[\"train_preds\"] = result[\"pipeline\"].predict(X_train)\n", "result[\"probs\"] = result[\"pipeline\"].predict_proba(X_test)[:, 1]\n", "result[\"preds\"] = np.where(result[\"probs\"] > 0.5, 1, 0)\n", "\n", "result[\"Precision_train\"] = metrics.precision_score(y_train, result[\"train_preds\"])\n", "result[\"Precision_test\"] = metrics.precision_score(y_test, result[\"preds\"])\n", "result[\"Recall_train\"] = metrics.recall_score(y_train, result[\"train_preds\"])\n", "result[\"Recall_test\"] = metrics.recall_score(y_test, result[\"preds\"])\n", "result[\"Accuracy_train\"] = metrics.accuracy_score(y_train, result[\"train_preds\"])\n", "result[\"Accuracy_test\"] = metrics.accuracy_score(y_test, result[\"preds\"])\n", "result[\"ROC_AUC_test\"] = metrics.roc_auc_score(y_test, result[\"probs\"])\n", "result[\"F1_train\"] = metrics.f1_score(y_train, result[\"train_preds\"])\n", "result[\"F1_test\"] = metrics.f1_score(y_test, result[\"preds\"])\n", "result[\"MCC_test\"] = metrics.matthews_corrcoef(y_test, result[\"preds\"])\n", "result[\"Cohen_kappa_test\"] = metrics.cohen_kappa_score(y_test, result[\"preds\"])\n", "result[\"Confusion_matrix\"] = metrics.confusion_matrix(y_test, result[\"preds\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Формирование данных для оценки старой и новой версии модели" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [], "source": [ "optimized_metrics = pd.DataFrame(columns=list(result.keys()))\n", "optimized_metrics.loc[len(optimized_metrics)] = pd.Series(\n", " data=class_models[optimized_model_type]\n", ")\n", "optimized_metrics.loc[len(optimized_metrics)] = pd.Series(\n", " data=result\n", ")\n", "optimized_metrics.insert(loc=0, column=\"Name\", value=[\"Old\", \"New\"])\n", "optimized_metrics = optimized_metrics.set_index(\"Name\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Оценка параметров старой и новой модели" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 Precision_trainPrecision_testRecall_trainRecall_testAccuracy_trainAccuracy_testF1_trainF1_test
Name        
Old0.8943400.7941180.8681320.7826090.9101120.8379890.8810410.788321
New0.8672200.8225810.7655680.7391300.8651690.8379890.8132300.778626
\n" ], "text/plain": [ "" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ "optimized_metrics[\n", " [\n", " \"Precision_train\",\n", " \"Precision_test\",\n", " \"Recall_train\",\n", " \"Recall_test\",\n", " \"Accuracy_train\",\n", " \"Accuracy_test\",\n", " \"F1_train\",\n", " \"F1_test\",\n", " ]\n", "].style.background_gradient(\n", " cmap=\"plasma\",\n", " low=0.3,\n", " high=1,\n", " subset=[\"Accuracy_train\", \"Accuracy_test\", \"F1_train\", \"F1_test\"],\n", ").background_gradient(\n", " cmap=\"viridis\",\n", " low=1,\n", " high=0.3,\n", " subset=[\n", " \"Precision_train\",\n", " \"Precision_test\",\n", " \"Recall_train\",\n", " \"Recall_test\",\n", " ],\n", ")" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 Accuracy_testF1_testROC_AUC_testCohen_kappa_testMCC_test
Name     
Old0.8379890.7883210.8588930.6571110.657157
New0.8379890.7786260.8597500.6514470.653765
\n" ], "text/plain": [ "" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "optimized_metrics[\n", " [\n", " \"Accuracy_test\",\n", " \"F1_test\",\n", " \"ROC_AUC_test\",\n", " \"Cohen_kappa_test\",\n", " \"MCC_test\",\n", " ]\n", "].style.background_gradient(\n", " cmap=\"plasma\",\n", " low=0.3,\n", " high=1,\n", " subset=[\n", " \"ROC_AUC_test\",\n", " \"MCC_test\",\n", " \"Cohen_kappa_test\",\n", " ],\n", ").background_gradient(\n", " cmap=\"viridis\",\n", " low=1,\n", " high=0.3,\n", " subset=[\n", " \"Accuracy_test\",\n", " \"F1_test\",\n", " ],\n", ")" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "image/png": "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u+5SRESEqlevru7du+vAgQPuYxYVFWn48OGKiIhQjRo1NGLECLn+cBbmj20k+fn5+sc//qHY2FgFBwerYcOGmjVrlg4cOKCOHTtKkqpVqyabzeY+E+N0OjVx4kTFxcUpNDRULVu21DvvvOPxPh9++KEaN26s0NBQdezY0WOcJfWPf/xDjRs3VpUqVdSgQQONGjVKhYWFxfZ79dVXFRsbqypVquiuu+5y3yzyrNdee00JCQkKCQlRfHy8XnnlFa/HAutZv369Bg4cqC1btmjNmjUqLCxUly5ddPLkSfc+w4YN0/vvv6/Fixdr/fr1Sk9PV8+ePX04asB3yLVLI9dgBSxEAlMLDQ3VL7/84v567dq1stvtWrNmjSSpsLBQXbt2VWJiojZs2KDAwEBNmDBB3bp109dff62goCC98MILmjNnjl5//XUlJCTohRde0NKlS9WpU6cLvu+9996rzZs3a9q0aWrZsqX279+vn3/+WbGxsVqyZImSk5O1e/du2e12hYaGSjozA/Hmm29q5syZatSokT799FP97W9/U82aNXXjjTcqLS1NPXv21MCBA/XAAw9o27ZtevTRR73+noSHh2vOnDmKiYnRzp07df/99ys8PFwjRoxw77N3714tWrRI77//vnJzc9W/f389/PDDmj9/viRp/vz5Gj16tF5++WVdffXV+uqrr3T//feratWq6tOnj9djgg/46D5tq1at8vh6zpw5qlWrllJTU9WhQwfl5ORo1qxZWrBggfu/sdmzZyshIUFbtmzx6qJtwIzIteLINUgy/f1HKdpgSi6XS2vXrtXq1as1ePBg9+NVq1bVa6+9pqCgIEnSm2++KafTqddee002m03SmT8QIyIitG7dOnXp0kVTp07VyJEj3Wf6Z86cqdWrV1/wvX/44QctWrRIa9asUVJSkiSpQYMG7uerV68uSapVq5YiIiIknTmD+eyzz+qjjz5yL//aoEEDbdy4Ua+++qpuvPFGzZgxQ1deeaVeeOEFSVKTJk20c+dOPffcc159b5566in3/69fv74ee+wxLVy40CPc8vLyNG/ePNWuXVuS9NJLL+m2227TCy+8oKioKI0ZM0YvvPCC+3sSFxen7777Tq+++irhVlG4ZFC4nfmf3Nxcj4eDg4MVHBx8yZefPdN99r+L1NRUFRYWuv/bkaT4+HjVrVtXmzdvpmiD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_, ax = plt.subplots(1, 2, figsize=(10, 4), sharex=False, sharey=False\n", ")\n", "\n", "for index in range(0, len(optimized_metrics)):\n", " c_matrix = optimized_metrics.iloc[index][\"Confusion_matrix\"]\n", " disp = ConfusionMatrixDisplay(\n", " confusion_matrix=c_matrix, display_labels=[\"Died\", \"Sirvived\"]\n", " ).plot(ax=ax.flat[index])\n", "\n", "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.3)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.7" } }, "nbformat": 4, "nbformat_minor": 2 }