From e3ef3a2d14823fb1f61f9402ade2d5862719989a Mon Sep 17 00:00:00 2001 From: kamilia Date: Sat, 9 Nov 2024 12:39:58 +0400 Subject: [PATCH 1/2] lab_4 done --- lab_4/lab_4.ipynb | 6625 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 6625 insertions(+) create mode 100644 lab_4/lab_4.ipynb diff --git a/lab_4/lab_4.ipynb b/lab_4/lab_4.ipynb new file mode 100644 index 0000000..43d4dd4 --- /dev/null +++ b/lab_4/lab_4.ipynb @@ -0,0 +1,6625 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Вариант 19: Данные о миллионерах" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['Rank ', 'Name', 'Networth', 'Age', 'Country', 'Source', 'Industry'], dtype='object')\n" + ] + } + ], + "source": [ + "import pandas as pd \n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "print(df.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Бизнес-цели\n", + "\n", + "### Задача классификации\n", + "Классифицировать людей по уровню состояния.\n", + "\n", + "Цель:\n", + "\n", + "Разработать модель машинного обучения, которая будет классифицировать миллиардеров по состоянию, выше или ниже среднего.\n", + "\n", + "В обучении модели машинного обучения для классификации миллиардеров по уровню богатства, помимо чистого состояния, используются и другие столбцы данных:\n", + "- Возраст: Люди с высоким чистым состоянием, как правило, старше. Модель может использовать возраст как признак, чтобы прогнозировать уровень богатства.\n", + "- Страна: Богатство распределяется неравномерно по миру. Страна проживания может быть важным признаком для предсказания уровня богатства.\n", + "- Отрасль: Определенные отрасли (например, финансы, технологии) часто связаны с высоким чистым состоянием. \n", + "\n", + "### Задача регрессии:\n", + "Прогнозирование чистого состояния (Networth):\n", + "\n", + "Цель: Предсказать абсолютное значение чистого состояния миллиардера, используя информацию из имеющихся данных.\n", + "\n", + "Применение: Это может быть полезно для оценки потенциального состояния миллиардеров в будущем или для сравнения миллиардеров в разных странах и отраслях.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Определение достижимого уровня качества модели для первой задачи " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Создание целевой переменной и предварительная обработка данных" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Среднее значение поля 'Networth': 4.8607499999999995\n", + " Rank Name Networth Age Country \\\n", + "0 1 Elon Musk 219.0 50 United States \n", + "1 2 Jeff Bezos 171.0 58 United States \n", + "2 3 Bernard Arnault & family 158.0 73 France \n", + "3 4 Bill Gates 129.0 66 United States \n", + "4 5 Warren Buffett 118.0 91 United States \n", + "\n", + " Source Industry above_average_networth \n", + "0 Tesla, SpaceX Automotive 1 \n", + "1 Amazon Technology 1 \n", + "2 LVMH Fashion & Retail 1 \n", + "3 Microsoft Technology 1 \n", + "4 Berkshire Hathaway Finance & Investments 1 \n" + ] + } + ], + "source": [ + "from sklearn import set_config\n", + "\n", + "# Установим параметры для вывода\n", + "set_config(transform_output=\"pandas\")\n", + "\n", + "# Устанавливаем случайное состояние\n", + "random_state = 42\n", + "# Можно использовать данные о above_average_networth для анализа зависимости между типом источника богатства и чистым состоянием.\n", + "# Рассчитываем среднее значение чистого состояния\n", + "average_networth = df['Networth'].mean()\n", + "print(f\"Среднее значение поля 'Networth': {average_networth}\")\n", + "\n", + "# Создаем новую переменную, указывающую, превышает ли чистое состояние среднее\n", + "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", + "\n", + "# Выводим первые строки измененной таблицы для проверки\n", + "print(df.head())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Разделение набора данных на обучающую и тестовые выборки (80/20) для задачи классификации\n", + "\n", + "Целевой признак -- above_average_networth " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "X_train shape: (2080, 8)\n", + "y_train shape: (2080, 1)\n", + "X_test shape: (520, 8)\n", + "y_test shape: (520, 1)\n", + "X_train:\n", + " Rank Name Networth Age Country Source \\\n", + "2125 2076 Yogesh Kothari 1.4 73 India specialty chemicals \n", + "1165 1163 Yvonne Bauer 2.7 45 Germany magazines, media \n", + "397 398 Juergen Blickle 6.4 75 Germany auto parts \n", + "1432 1397 Alexander Svetakov 2.2 54 Russia real estate \n", + "1024 1012 Li Min 3.0 56 China semiconductor \n", + "\n", + " Industry above_average_networth \n", + "2125 Manufacturing 0 \n", + "1165 Media & Entertainment 0 \n", + "397 Manufacturing 1 \n", + "1432 Finance & Investments 0 \n", + "1024 Technology 0 \n", + "y_train:\n", + " above_average_networth\n", + "2125 0\n", + "1165 0\n", + "397 1\n", + "1432 0\n", + "1024 0\n", + "X_test:\n", + " Rank Name Networth Age Country \\\n", + "2437 2324 Horst Wortmann 1.2 80 Germany \n", + "2118 2076 Ramesh Juneja 1.4 66 India \n", + "1327 1292 Teresita Sy-Coson 2.4 71 Philippines \n", + "2063 1929 Myron Wentz 1.5 82 St. Kitts and Nevis \n", + "1283 1238 Suh Kyung-bae 2.5 59 South Korea \n", + "\n", + " Source Industry above_average_networth \n", + "2437 footwear Fashion & Retail 0 \n", + "2118 pharmaceuticals Healthcare 0 \n", + "1327 diversified diversified 0 \n", + "2063 health products Fashion & Retail 0 \n", + "1283 cosmetics Fashion & Retail 0 \n", + "y_test:\n", + " above_average_networth\n", + "2437 0\n", + "2118 0\n", + "1327 0\n", + "2063 0\n", + "1283 0\n" + ] + } + ], + "source": [ + "from typing import Tuple\n", + "from pandas import DataFrame\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "def split_stratified_into_train_val_test(\n", + " df_input,\n", + " stratify_colname=\"y\",\n", + " frac_train=0.6,\n", + " frac_val=0.15,\n", + " frac_test=0.25,\n", + " random_state=None,\n", + ") -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame, DataFrame, DataFrame]:\n", + "\n", + "\n", + " if frac_train + frac_val + frac_test != 1.0:\n", + " raise ValueError(\n", + " \"fractions %f, %f, %f do not add up to 1.0\"\n", + " % (frac_train, frac_val, frac_test)\n", + " )\n", + " if stratify_colname not in df_input.columns:\n", + " raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n", + " X = df_input # Contains all columns.\n", + " y = df_input[\n", + " [stratify_colname]\n", + " ] # Dataframe of just the column on which to stratify.\n", + " # Split original dataframe into train and temp dataframes.\n", + " df_train, df_temp, y_train, y_temp = train_test_split(\n", + " X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state\n", + " )\n", + " if frac_val <= 0:\n", + " assert len(df_input) == len(df_train) + len(df_temp)\n", + " return df_train, pd.DataFrame(), df_temp, y_train, pd.DataFrame(), y_temp\n", + " # Split the temp dataframe into val and test dataframes.\n", + " relative_frac_test = frac_test / (frac_val + frac_test)\n", + " df_val, df_test, y_val, y_test = train_test_split(\n", + " df_temp,\n", + " y_temp,\n", + " stratify=y_temp,\n", + " test_size=relative_frac_test,\n", + " random_state=random_state,\n", + " )\n", + " assert len(df_input) == len(df_train) + len(df_val) + len(df_test)\n", + " return df_train, df_val, df_test, y_train, y_val, y_test\n", + "\n", + "# Разделение набора данных на обучающую, валидационную и тестовую выборки (80/0/20)\n", + "random_state = 42 # Задайте любое целое число для воспроизводимости\n", + "X_train, X_val, X_test, y_train, y_val, y_test = split_stratified_into_train_val_test(\n", + " df, stratify_colname=\"above_average_networth\", frac_train=0.80, frac_val=0, frac_test=0.20, random_state=random_state\n", + ")\n", + "\n", + "# Вывод размеров выборок\n", + "print(\"X_train shape:\", X_train.shape)\n", + "print(\"y_train shape:\", y_train.shape)\n", + "print(\"X_test shape:\", X_test.shape)\n", + "print(\"y_test shape:\", y_test.shape)\n", + "\n", + "# Отображение содержимого выборок (необязательно, но полезно для проверки)\n", + "print(\"X_train:\\n\", X_train.head())\n", + "print(\"y_train:\\n\", y_train.head())\n", + "print(\"X_test:\\n\", X_test.head())\n", + "print(\"y_test:\\n\", y_test.head())\n" + ] + }, + { + "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", + "pipeline_end -- основной конвейер предобработки данных и конструирования признаков" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# Определение столбцов для обработки\n", + "columns_to_drop = [\"Name\", \"Rank \"] # Столбцы, которые можно удалить\n", + "num_columns = [\"Networth\", \"Age\"] # Числовые столбцы\n", + "cat_columns = [\"Country\", \"Source\", \"Industry\"] # Категориальные столбцы\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", + "# Препроцессинг категориальных столбцов\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", + "# Объединение препроцессинга\n", + "features_preprocessing = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"preprocessing_num\", preprocessing_num, num_columns),\n", + " (\"preprocessing_cat\", preprocessing_cat, cat_columns),\n", + " ],\n", + " remainder=\"passthrough\"\n", + ")\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", + "# Создание финального пайплайна\n", + "pipeline_end = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " (\"drop_columns\", drop_columns),\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Демонстрация работы конвейера__" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Networth Age Country_Argentina Country_Australia \\\n", + "2125 -0.340947 0.680013 0.0 0.0 \n", + "1165 -0.211625 -1.475070 0.0 0.0 \n", + "397 0.156447 0.833948 0.0 0.0 \n", + "1432 -0.261364 -0.782365 0.0 0.0 \n", + "1024 -0.181781 -0.628430 0.0 0.0 \n", + "\n", + " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", + "2125 0.0 0.0 0.0 0.0 \n", + "1165 0.0 0.0 0.0 0.0 \n", + "397 0.0 0.0 0.0 0.0 \n", + "1432 0.0 0.0 0.0 0.0 \n", + "1024 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", + "2125 0.0 0.0 ... 1.0 \n", + "1165 0.0 0.0 ... 0.0 \n", + "397 0.0 0.0 ... 1.0 \n", + "1432 0.0 0.0 ... 0.0 \n", + "1024 0.0 0.0 ... 0.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "2125 0.0 0.0 \n", + "1165 1.0 0.0 \n", + "397 0.0 0.0 \n", + "1432 0.0 0.0 \n", + "1024 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "2125 0.0 0.0 0.0 \n", + "1165 0.0 0.0 0.0 \n", + "397 0.0 0.0 0.0 \n", + "1432 0.0 0.0 0.0 \n", + "1024 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \\\n", + "2125 0.0 0.0 0.0 \n", + "1165 0.0 0.0 0.0 \n", + "397 0.0 0.0 0.0 \n", + "1432 0.0 0.0 0.0 \n", + "1024 1.0 0.0 0.0 \n", + "\n", + " above_average_networth \n", + "2125 0 \n", + "1165 0 \n", + "397 1 \n", + "1432 0 \n", + "1024 0 \n", + "\n", + "[5 rows x 859 columns]\n" + ] + } + ], + "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", + "# Вывод первых строк обработанных данных\n", + "print(preprocessed_df.head())" + ] + }, + { + "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 -- многослойный персептрон (нейронная сеть)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn import linear_model, tree, neighbors, naive_bayes, ensemble, neural_network\n", + "class_models = {\n", + " \"logistic\": {\"model\": linear_model.LogisticRegression()},\n", + " \"ridge\": {\"model\": linear_model.LogisticRegression(penalty=\"l2\", class_weight=\"balanced\")},\n", + " \"decision_tree\": {\n", + " \"model\": tree.DecisionTreeClassifier(max_depth=7, random_state=42)\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=42\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=42,\n", + " )\n", + " },\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Обучение моделей и оценка их качества" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: logistic\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: ridge\n", + "Model: decision_tree\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: knn\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: naive_bayes\n", + "Model: gradient_boosting\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: random_forest\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: mlp\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\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", + " # Оценка метрик\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", + " )\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Сводная таблица оценок качества для использованных моделей классификации" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4UAAAQ9CAYAAADu7ug2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeVwU5R8H8M9yLcgNcoiioihHHgRakQfeaJ5peWGiqZV5l+ZRHqhEaeZ95oEUpqVl3qYmpGbemimSeEEKaqIoKtfu8/uDmJ8bsoAu7O7wef9e8/q58zw78501+PjMPjOjEEIIEBERERERUYVkou8CiIiIiIiISH84KCQiIiIiIqrAOCgkIiIiIiKqwDgoJCIiIiIiqsA4KCQiIiIiIqrAOCgkIiIiIiKqwDgoJCIiIiIiqsA4KCQiIiIiIqrAOCgkIiIiIiKqwDgoJNKx6OhoKBQKXL16tUy2f/XqVSgUCkRHR+tke3FxcVAoFIiLi9PJ9oiIiORi2rRpUCgUJeqrUCgwbdq0si2IqIxwUEhUQSxZskRnA0kiIiIikg8zfRdARKVTo0YNPH78GObm5qV635IlS1C5cmUMGDBAY33z5s3x+PFjWFhY6LBKIiIi4/fJJ59gwoQJ+i6DqMxxUEhkZBQKBSwtLXW2PRMTE51uj4iISA4ePnwIa2trmJnxn8skf5w+SlQOlixZghdeeAFKpRIeHh4YNmwY7t27V6jf4sWLUatWLVhZWeGll17CgQMH0KJFC7Ro0ULq87RrCtPS0jBw4EBUq1YNSqUSVapUQdeuXaXrGmvWrIlz584hPj4eCoUCCoVC2mZR1xQeOXIEr732GhwdHWFtbY0GDRpg/vz5uv1giIiIDEDBtYPnz59H37594ejoiKZNmz71msLs7GyMGTMGLi4usLW1RZcuXfD3338/dbtxcXFo1KgRLC0tUbt2bSxfvrzI6xS/+eYbBAUFwcrKCk5OTujduzdSUlLK5HiJ/ounPojK2LRp0xAREYE2bdpg6NChSExMxNKlS3Hs2DEcOnRImga6dOlSDB8+HM2aNcOYMWNw9epVdOvWDY6OjqhWrZrWffTo0QPnzp3DiBEjULNmTdy6dQt79uxBcnIyatasiXnz5mHEiBGwsbHBxx9/DABwc3Mrcnt79uxBp06dUKVKFYwaNQru7u5ISEjAtm3bMGrUKN19OERERAbkzTffRJ06dfDpp59CCIFbt24V6jN48GB888036Nu3L1599VX88ssv6NixY6F+p06dQvv27VGlShVERERApVJh+vTpcHFxKdQ3MjISkydPRs+ePTF48GDcvn0bCxcuRPPmzXHq1Ck4ODiUxeES/Z8gIp1as2aNACCuXLkibt26JSwsLES7du2ESqWS+ixatEgAEKtXrxZCCJGdnS2cnZ1F48aNRW5urtQvOjpaABAhISHSuitXrggAYs2aNUIIIe7evSsAiNmzZ2ut64UXXtDYToH9+/cLAGL//v1CCCHy8vKEl5eXqFGjhrh7965GX7VaXfIPgoiIyEhMnTpVABB9+vR56voCp0+fFgDE+++/r9Gvb9++AoCYOnWqtK5z586iUqVK4vr169K6ixcvCjMzM41tXr16VZiamorIyEiNbZ49e1aYmZkVWk9UFjh9lKgM7d27Fzk5ORg9ejRMTP7/4zZkyBDY2dlh+/btAIDjx4/jzp07GDJkiMa1C2FhYXB0dNS6DysrK1hYWCAuLg5379597ppPnTqFK1euYPTo0YXOTJb0ttxERETG6L333tPavmPHDgDAyJEjNdaPHj1a47VKpcLevXvRrVs3eHh4SOu9vb3RoUMHjb4//PAD1Go1evbsiX/++Uda3N3dUadOHezfv/85joioZDh9lKgMXbt2DQDg4+Ojsd7CwgK1atWS2gv+39vbW6OfmZkZatasqXUfSqUSn3/+OT788EO4ubnhlVdeQadOndC/f3+4u7uXuuZLly4BAOrVq1fq9xIRERkzLy8vre3Xrl2DiYkJateurbH+vzl/69YtPH78uFCuA4Wz/uLFixBCoE6dOk/dZ2nvNk70LDgoJJKB0aNHo3Pnzti8eTN2796NyZMnIyoqCr/88gtefPFFfZdHRERkFKysrMp9n2q1GgqFAjt37oSpqWmhdhsbm3KviSoeTh8lKkM1atQAACQmJmqsz8nJwZUrV6T2gv9PSkrS6JeXlyfdQbQ4tWvXxocffoiff/4Zf/75J3JycjBnzhypvaRTPwvOfv75558l6k9ERFRR1KhRA2q1WppVU+C/Oe/q6gpLS8tCuQ4UzvratWtDCAEvLy+0adOm0PLKK6/o/kCI/oODQqIy1KZNG1hYWGDBggUQQkjrV61ahYyMDOluZY0aNYKzszO++uor5OXlSf1i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F3kxuxBCPH78WIwZM0ZUqVJFWFhYCG9vb7F69Wqpffr06cLd3V0oFAoRHh4uhMi/AH/evHnCx8dHmJubCxcXFxEaGiri4+Ol923dulV4e3sLpVIpmjVrJlavXl3qi9nHjRsnnJ2dhY2NjejVq5eYO3eusLe3l9qnTp0qGjZsKJYsWSI8PDyEpaWleOONN0R6errGdmNjY0VAQICwsLAQjo6Oonnz5uKHH34QQvBidiIiysdsfjpmM5UHhRBFXGVLREREREREssfpo0RERERERBUYB4VEREREREQVGAeFREREREREFRgHhURERERERBUYB4VEREREREQVGAeFREREREREFRgHhURERERERBUYB4VEREREREQVGAeFREREREREFRgHhURERERERBUYB4VEREREREQVGAeFREREREREFRgHhURERERERBUYB4VU4U2bNg0KhcJgtn316lUoFApER0eXSU1ERERUMgU5/s8//+i7FKIyxUEhET3Vjh07MG3aNH2XQURERERljINCojL0ySef4PHjx6V6T40aNfD48WO89dZbZVRVyezYsQMRERF6rYGIiIiIyp6ZvgsgkjMzMzOYmZXux0yhUMDS0rKMKiobeXl5UKvVsLCw0HcpRERERFRK/KaQKpSDBw+icePGsLS0RO3atbF8+fKn9vvmm28QFBQEKysrODk5oXfv3khJSSnU78iRI3jttdfg6OgIa2trNGjQAPPnz5fan3ZN4Z49e9C0aVM4ODjAxsYGPj4+mDRpktRe1DWFv/zyC5o1awZra2s4ODiga9euSEhI0OhTsL+kpCQMGDAADg4OsLe3x8CBA/Ho0aMSf04DBgzA4sWLAeQPUguWJ+v74osvMG/ePNSuXRtKpRLnz58HAFy4cAFvvPEGnJycYGlpiUaNGmHLli2F9nHv3j2MHj0anp6eUCqV8Pb2xueffw61Wl3iOomIiMrbtWvX4O3tjXr16uHmzZto0aIF6tWrh/Pnz6Nly5aoVKkSqlatilmzZmm8Ly4uDgqFAt999x0iIyNRrVo1WFpaonXr1khKStLT0RDl4zeFVGGcPXsW7dq1g4uLC6ZNm4a8vDxMnToVbm5uGv0iIyMxefJk9OzZE4MHD8bt27excOFCNG/eHKdOnYKDgwOA/MFdp06dUKVKFYwaNQru7u5ISEjAtm3bMGrUqKfWcO7cOXTq1AkNGjTA9OnToVQqkZSUhEOHDmmtfe/evejQoQNq1aqFadOm4fHjx1i4cCGaNGmCkydPombNmhr9e/bsCS8vL0RFReHkyZNYuXIlXF1d8fnnn5fos3r33Xdx48YN7NmzB19//fVT+6xZswZZWVl45513oFQq4eTkhHPnzqFJkyaoWrUqJkyYAGtra3z33Xfo1q0bNm3ahNdffx0A8OjRI4SEhOD69et49913Ub16dfz222+YOHEiUlNTMW/evBLVSUREVJ4uXbqEVq1awcnJCXv27EHlypUBAHfv3kX79u3RvXt39OzZExs3bsT48eNRv359dOjQQWMbn332GUxMTDB27FhkZGRg1qxZCAsLw5EjR/RxSET5BFEF0a1bN2FpaSmuXbsmrTt//rwwNTUVBT8KV69eFaampiIyMlLjvWfPnhVmZmbS+ry8POHl5SVq1Kgh7t69q9FXrVZLf546dap48sds7ty5AoC4fft2kXVeuXJFABBr1qyR1gUEBAhXV1dx584dad2ZM2eEiYmJ6N+/f6H9vf322xrbfP3114Wzs3OR+3yaYcOGiaf9iiioz87OTty6dUujrXXr1qJ+/foiKytLWqdWq8Wrr74q6tSpI62bMWOGsLa2Fn/99ZfG+ydMmCBMTU1FcnJyqWolIiIqCwW5evv2bZGQkCA8PDxE48aNRXp6utQnJCREABAxMTHSuuzsbOHu7i569Oghrdu/f78AIPz8/ER2dra0fv78+QKAOHv2bPkcFNFTcPooVQgqlQq7d+9Gt27dUL16dWm9n58fQkNDpdc//PAD1Go1evbsiX/++Uda3N3dUadOHezfvx8AcOrUKVy5cgWjR4+WvjksoO0RFAV9f/rppxJPk0xNTcXp06cxYMAAODk5SesbNGiAtm3bYseOHYXe895772m8btasGe7cuYP79++XaJ8l0aNHD7i4uEiv09PT8csvv6Bnz5548OCB9NnduXMHoaGhuHjxIq5fvw4A+P7779GsWTM4OjpqfM5t2rSBSqXCr7/+qrM6iYiInteff/6JkJAQ1KxZE3v37oWjo6NGu42NDfr16ye9trCwwEsvvYTLly8X2tbAgQM1rsFv1qwZADy1L1F54aCQKoTbt2/j8ePHqFOnTqE2Hx8f6c8XL16EEAJ16tSBi4uLxpKQkIBbt24ByJ8+AgD16tUrVR29evVCkyZNMHjwYLi5uaF379747rvvtA4Qr127VqjOAn5+fvjnn3/w8OFDjfVPDnwBSOF19+7dUtWrjZeXl8brpKQkCCEwefLkQp/d1KlTAUD6/C5evIhdu3YV6temTRuNfkRERIagc+fOsLW1xe7du2FnZ1eovVq1aoVOCjs6Oj41d8sjo4lKi9cUEj1BrVZDoVBg586dMDU1LdRuY2PzXNu3srLCr7/+iv3792P79u3YtWsXNmzYgFatWuHnn39+6j6fRVHbEULoZPtA/rE8qWBgO3bsWI1vX5/k7e0t9W3bti0++uijp/arW7euzuokIiJ6Xj169MDatWsRGxuLd999t1B7aXK3PDKaqLQ4KKQKwcXFBVZWVrh48WKhtsTEROnPtWvXhhACXl5eWgcmtWvXBpA/naTg262SMjExQevWrdG6dWt8+eWX+PTTT/Hxxx9j//79T91WjRo1CtVZ4MKFC6hcuTKsra1LVUNJaJsG+zS1atUCAJibmxf7mdSuXRuZmZml/uyIiIj0Yfbs2TAzM8P7778PW1tb9O3bV98lEekUp49ShWBqaorQ0FBs3rwZycnJ0vqEhATs3r1bet29e3eYmpoiIiKi0Bk7IQTu3LkDAAgMDISXlxfmzZuHe/fuFepXlPT09ELrAgICAADZ2dlPfU+VKlUQEBCAtWvXauzrzz//xM8//4zXXnutyP09j4KB5n+Pryiurq5o0aIFli9fjtTU1ELtt2/flv7cs2dPHD58WOOzL3Dv3j3k5eU9W9FERERlQKFQYMWKFXjjjTcQHh7+1EctERkzflNIFUZERAR27dqFZs2a4f3330deXh4WLlyIF154AX/88QeA/G+wZs6ciYkTJ+Lq1avo1q0bbG1tceXKFfz444945513MHbsWJiYmGDp0qXo3LkzAgICMHDgQFSpUgUXLlzAuXPnnjrYAYDp06fj119/RceOHVGjRg3cunULS5YsQbVq1dC0adMia589ezY6dOiA4OBgDBo0SHokhb29PaZNm1YWHxeCgoIAACNHjkRoaChMTU3Ru3dvre9ZvHgxmjZtivr162PIkCGoVasWbt68icOHD+Pvv//GmTNnAADjxo3Dli1b0KlTJwwYMABBQUF4+PAhzp49i40bN+Lq1avSbb6JiIgMgYmJCb755ht069YNPXv2xI4dO9CqVSt9l0WkExwU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tE12djasra1LXA8REckbs/nFmM1UGtgppHKrRYsWWLBgAUxMTODm5gYjI/UfB3Nzc7XXqamp8Pf3R2RkZL59OTo6vlQNZmZmJX5PamoqAGDLli1qv/CB3LkYmnLkyBEEBwdj8uTJCAoKgrW1NVatWoWZM2eWuNaffvopXxAaGhpqrFYiIpIHZnPRmM1UWtgppHLL3Nwcnp6exd6+fv36WL16NZycnPJdkcvj6uqKo0ePolmzZgByr7qdPHkS9evXL3D7OnXqQKVSYf/+/WjdunW+9ryroTk5OdI6X19fKJVK3L59u9CrmD4+PtLE/Dx//fXXi0/yGYcPH0aVKlUwbtw4ad2tW7fybXf79m3cu3cPbm5u0nEMDAzg5eUFZ2dnuLm54fr16wgODi7R8YmIqPxhNheN2UylhTeaISqm4OBgODg4oHPnzjh48CBu3LiBffv24dNPP8Xff/8NABg2bBj+97//YcOGDbh8+TI++eSTIp9jVLVqVYSEhOD999/Hhg0bpH2uWbMGAFClShUoFAps3rwZDx48QGpqKiwtLTFy5EgMHz4cy5cvx7Vr13Dq1Cn88MMP0gTxjz/+GFevXsWoUaMQExODlStXYtmyZSU63xo1auD27dtYtWoVrl27hjlz5hQ4Md/U1BQhISE4e/YsDh48iE8//RQ9evSAi4sLAGDy5MkIDw/HnDlzcOXKFZw/fx5Lly7Fd999V6J6iIiInsdsZjaThmh7UiORNjw7mb0k7XFxcaJfv37CwcFBKJVKUa1aNTFw4ECRnJwshMidvD5s2DBhZWUlbGxsxIgRI0S/fv0KncwuhBBpaWli+PDhwtXVVZiYmAhPT0+xZMkSqT0sLEy4uLgIhUIhQkJChBC5E/Bnz54tvLy8hLGxsXB0dBRBQUFi//790vs2bdokPD09hVKpFE2bNhVLliwp8WT2UaNGCXt7e2FhYSF69uwpZs2aJaytraX2iRMnCj8/PzF//nzh5uYmTE1NxTvvvCMSExPV9hsZGSnq1asnTExMhK2trWjWrJlYv369EIKT2YmIKBezuWDMZioLCiEKmWVLREREREREssfho0REREREROUYO4VERERERETlGDuFRERERERE5Rg7hUREREREROUYO4VERERERETlGDuFRERERERE5Rg7hUREREREROUYO4VERERERETlGDuFRERERERE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X75crZ4LFy5g586deOuttwDkzgF9flqIk5MT3Nzc1PZvbm5e5JSYlxEUFISsrCy1vw1UKhXmzZun0eOQZvCbQqIitG3bFiYmJujYsSM++ugjpKam4qeffoKTkxPi4uKKtY+ePXuib9++mD9/PoKCgqSbreQZNWoUNm7ciLfffhuhoaHw9/fHkydPcP78eaxduxY3b95UG276Im5ubvj6669x8+ZN1KxZE6tXr8aZM2fw448/wtjYGADw9ttvY/369ejatSs6dOiAGzduYOHChfD19UVqamq+fXbo0AH29vb47bff0L59ezg5Oam1v/fee1izZg0+/vhj7N27F40bN0ZOTg4uX76MNWvWYMeOHWjQoAHCwsJw4MABdOjQAVWqVEFCQgLmz5+PSpUqoUmTJsU+RyIi0p5JkyZh586daNy4MQYNGoScnBzMnTsXtWvXxpkzZ174/g4dOuC7775Du3bt0KdPHyQkJGDevHnw9PTEuXPnpO3q1auH3r17Y/78+UhOTkajRo2wZ8+eYn3TZGVlhQULFuC9995D/fr10atXLzg6OuL27dvYsmULGjdurPa84OIwMzODr68vVq9ejZo1a8LOzg61a9dG7dq1i70POzs7NGnSBP3798f9+/cxe/ZseHp6SjdjMTY2xtdff43+/fsjMDAQvXv3lh5JUbVqVQwfPlza1zfffIP27dsjICAAAwYMkB5JYW1tLT0/8fHjx6hUqRLeeecd+Pn5wcLCArt378bx48cxc+ZMaV/+/v5YvXo1RowYgddffx0WFhbo2LFjiT6f53Xp0gVvvPEGPv/8c8TGxsLb2xsbN26ULhCXxreT9Aq0e/NTIu3JeyTF849HeP621hs3bhR169YVpqamomrVquLrr78WS5YsUdtGiPyPpMiTkpIizMzMBADxyy+/FFjL48ePxZgxY4Snp6cwMTERDg4OolGjRuLbb7+VHiNRHIGBgaJWrVrixIkTIiAgQJiamooqVaqIuXPnqm2nUqnE9OnTRZUqVYRSqRSvvfaa2Lx5swgJCSnwltRCCPHJJ58IAGLlypUFtmdmZoqvv/5a1KpVSyiVSmFrayv8/f3F5MmTRXJyshBCiD179ojOnTsLNzc3YWJiItzc3ETv3r3zPY6DiIh02549e8Rrr70mTExMRPXq1cXixYvF559/LkxNTaVtABT6KISIiAhR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iirQ561evTquXLmClStXIiEhAbNnz37qxHxbW1uEhYXh5MmT2LdvHwYNGoSuXbvC09MTADBhwgRMnToVs2fPxrlz53D69GksXboUX3zxRYHqISIi+jdmM7OZComxJzUSGcOTk9kLsj0pKUl69+4tbm5uolarpWrVqtKvXz9JTk4WkczJ64MHDxatVitOTk4ydOhQ6d27d46T2UVEHj16JEOGDJFy5cqJjY2N+Pj4yJIlS5TtERER4unpKSqVSsLCwkQkcwL+zJkzxdfXV6ytrcXd3V1CQkJkz549yvvWr18vPj4+olarpWnTprJkyZICT2YfPny4uLq6ir29vXTr1k1mzJghjo6OyvZx48ZJvXr1ZO7cueLl5SW2trby5ptvyu3btw32Gx0dLf7+/mJjYyPOzs7SrFkz+eGHH0SEk9mJiCgTs/npmM1UHFQiOcyyJSIiIiIiIrPH4aNERERERESlGDuFREREREREpRg7hURERERERKUYO4VERERERESlGDuFREREREREpRg7hURERERERKUYO4VERERERESlGDuFREREREREpRg7hURERERERKUYO4VERERERESlGDuFREREREREpRg7hURERERERKUYO4VERERERESlGDuFREREREREpRg7hURFRKVSYfz48cYuI0dff/01atasCWtrazg5ORm7HCIiIrNy6dIlqFQqREVFGbsUojyxU0hUCv3+++8IDw9HtWrVsGjRIixcuNDYJWVz7do1jB8/HidOnDB2KURERERmzcrYBRBR8du9ezf0ej1mzZoFHx8fY5fzVNeuXcOECRNQuXJl+Pv7G7scIiIiIrPFbwqp1Hjw4IGxSzAZN2/eBIBCHTb68OHDQtsXERERERUfdgrJLI0fPx4qlQpnz55Fz5494ezsjCZNmuDUqVMIDw9H1apVYWtrC09PT7zzzju4devWU98fHx+P8PBwODk5wdHREW+//Xa2zk9qaiqGDBkCd3d3ODg4oGPHjrh69epT6zp+/DjatWsHrVYLe3t7tGrVCgcPHjRoExUVBZVKhf3792PQoEFwd3eHk5MT/vvf/yItLQ13795F79694ezsDGdnZ4wYMQIiku9zU7lyZYwbNw4A4O7unm3u49y5c1G7dm2o1Wp4eXlhwIABuHv3rsE+mjdvjhdeeAFHjx5Fs2bNUKZMGYwePVo5H+PG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XLhwAaGhoQU6PhERlT7M5twxm6mo8EYzRPkUGhoKNzc3dOrUCfv27cPFixexe/duDBo0CFevXgUADB48GJ9++inWrVuH33//He+//36uzzGqXLkywsLC8M4772DdunXKPr/77jsAQKVKlaBSqbBhwwb8+eefSElJgYODA4YNG4YhQ4Zg2bJlSEhIwLFjx/Dll18qE8Tfe+89nD9/HsOHD0dcXBxWrFiBqKioAn3e6tWr48qVK1i5ciUSEhIwe/bsp07Mt7W1RVhYGE6ePIl9+/Zh0KBB6Nq1Kzw9PQEAEyZMwNSpUzF79mycO3cOp0+fxtKlS/HFF18UqB4iIqJ/YzYzm6mQGHtSI5ExPDmZvSDbk5KSpHfv3uLm5iZqtVqqVq0q/fr1k+TkZBHJnLw+ePBg0Wq14uTkJEOHDpXevXvnOJldROTRo0cyZMgQKVeunNjY2IiPj48sWbJE2R4RESGenp6iUqkkLCxMRDIn4M+cOVN8fX3F2tpa3N3dJSQkRPbs2aO8b/369eLj4yNqtVqaNm0qS5YsKfBk9uHDh4urq6vY29tLt27dZMaMGeLo6KhsHzdunNSrV0/mzp0rXl5eYmtrK2+++abcvn3bYL/R0dHi7+8vNjY24uzsLM2aNZMffvhBRDiZnYiIMjGbn47ZTMVBJZLDLFsiIiIiIiIyexw+SkREREREVIqxU0hERERERFSKsVNIRERERERUirFTSEREREREVIqxU0hERERERFSKsVNIRERERERUirFTSEREREREVIqxU0hERERERFSKsVNIRERERERUirFTSEREREREVIqxU0hERERERFSK/T/K/uEWxsmrUAAAAABJRU5ErkJggg==", + "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", + "\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=[\"Below Average\", \"Above Average\"] # Измените метки на нужные\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": [ + "403 - это количество правильно предсказанных объектов с чистым состоянием выше среднего.\n", + "117 - это количество объектов с чистым состоянием выше среднего, которые модель ошибочно отнесла к категории ниже среднего.\n", + "1. Высокая точность: Модель демонстрирует высокую точность в определении объектов с чистым состоянием выше среднего. Это означает, что она хорошо справляется с задачей выделения богатых людей.\n", + "2. Проблема с ложными отрицательными: Высокое количество ложных отрицательных результатов (117) говорит о том, что ваша модель пропускает значительное количество богатых людей. Она не всегда распознает их как \"выше среднего\".\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Точность, полнота, верность (аккуратность), F-мера" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "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
logistic1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
ridge1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
decision_tree1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
random_forest1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
mlp1.0000001.0000000.9957260.9829060.9990380.9961540.9978590.991379
naive_bayes1.0000000.9206351.0000000.9914531.0000000.9788461.0000000.954733
knn1.0000001.0000000.8482910.8119660.9658650.9576920.9179190.896226
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "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": [ + "Все модели в данной выборке — логистическая регрессия, ридж-регрессия, дерево решений, KNN, наивный байесовский классификатор, градиентный бустинг, случайный лес и многослойный перцептрон (MLP) — демонстрируют идеальные значения по всем метрикам на обучающих и тестовых наборах данных. Это достигается, поскольку все модели показали значения, равные 1.0 для Precision, Recall, Accuracy и F1-меры, что указывает на то, что модель безошибочно классифицирует все примеры.\n", + "\n", + "Модель MLP, хотя и имеет немного более низкие значения Recall (0.994) и F1-на тестовом наборе (0.997) по сравнению с другими, по-прежнему остается высокоэффективной. Тем не менее, она не снижает показатели классификации до такого уровня, что может вызвать обеспокоенность, и остается на уровне, близком к идеальному." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ROC-кривая, каппа Коэна, коэффициент корреляции Мэтьюса" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "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
logistic1.0000001.0000001.0000001.0000001.000000
ridge1.0000001.0000001.0000001.0000001.000000
decision_tree1.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.000000
mlp0.9961540.9913791.0000000.9889040.988965
random_forest1.0000001.0000001.0000001.0000001.000000
knn0.9576920.8962260.9978580.8700150.877459
naive_bayes0.9788460.9547330.9833200.9409550.942055
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "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", + "\n", + "# Сортировка по ROC_AUC_test в порядке убывания\n", + "class_metrics = class_metrics.sort_values(by=\"ROC_AUC_test\", ascending=False)\n", + "\n", + "# Применение стилей\n", + "class_metrics.style.background_gradient(\n", + " cmap=\"plasma\", # Цветовая палитра для ROC_AUC_test, MCC_test, Cohen_kappa_test\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\", # Цветовая палитра для Accuracy_test, F1_test\n", + " low=1, # Минимальное значение для цветового градиента\n", + " high=0.3, # Максимальное значение для цветового градиента\n", + " subset=[\n", + " \"Accuracy_test\",\n", + " \"F1_test\",\n", + " ],\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Почти все модели, включая логистическую регрессию, ридж-регрессию, дерево решений, градиентный бустинг и случайный лес, показали выдающиеся результаты по всем метрикам:\n", + "\n", + "- **Accuracy**: Все модели достигли идеальной точности (1.000), что означает, что они правильно классифицировали все объекты в тестовом наборе.\n", + "- **F1**: Аналогично, все модели показали идеальное значение F1-меры (1.000), что говорит о балансе между точностью (precision) и полнотой (recall).\n", + "- **ROC AUC**: Все модели достигли максимального значения ROC AUC (1.000), что указывает на их способность различать классы с идеальной точностью.\n", + "- **Cohen's Kappa**: Идеальное значение Cohen's Kappa (1.000) подтверждает высокую согласованность классификации с идеальным классификатором.\n", + "- **MCC**: Идеальное значение MCC (1.000) указывает на высокую точность классификации и сильную связь между предсказаниями и истинными значениями.\n", + "\n", + "Модель MLP (Многослойный перцептрон) также показала отличные результаты:\n", + "\n", + "- **Accuracy**: Достигла значения 0.996, что немного ниже идеального, но все еще очень высокий результат.\n", + "- **F1**: Значение F1-меры равно 0.991, что также указывает на высокую эффективность модели.\n", + "- **ROC AUC**: MLP достигает идеального значения ROC AUC (1.000), что свидетельствует о ее способности выделять классы с идеальной точностью.\n", + "- **Cohen's Kappa**: Высокое значение Cohen's Kappa (0.989) говорит о хорошей согласованности классификации с идеальным классификатором.\n", + "- **MCC**: Высокое значение MCC (0.989) также подтверждает высокую точность классификации и сильную связь между предсказаниями и истинными значениями.\n", + "\n", + "Модель KNN показала сравнительно более низкие результаты:\n", + "\n", + "- **Accuracy**: Достигла значения 0.958, что ниже идеального, но все еще является приемлемым результатом.\n", + "- **F1**: Значение F1-меры равно 0.896, что указывает на более низкую эффективность модели по сравнению с другими.\n", + "- **ROC AUC**: KNN достигает значения ROC AUC 0.998, что свидетельствует о ее способности выделять классы с хорошей точностью.\n", + "- **Cohen's Kappa**: Значение Cohen's Kappa (0.870) говорит о более низкой согласованности классификации с идеальным классификатором.\n", + "- **MCC**: Значение MCC (0.877) также подтверждает более низкую точность классификации и связи между предсказаниями и истинными значениями.\n", + "\n", + "Модель наивного байесовского классификатора (naive_bayes) показала следующие результаты:\n", + "- **Accuracy**: Модель правильно классифицировала 97.88% объектов в тестовом наборе. Это довольно хороший результат, но не идеальный.\n", + "- **F1-мера**: Значение F1-меры 0.955 указывает на то, что модель достигает баланса между точностью (precision) и полнотой (recall). Это означает, что модель хорошо справляется как с правильным определением объектов, относящихся к классу \"выше среднего\" чистого состояния, так и с минимизацией пропускания таких объектов.\n", + "- **ROC AUC**: Модель достигла значения ROC AUC 0.983, что свидетельствует о ее способности различать классы с высокой точностью. \n", + "- **Cohen's Kappa**: Значение 0.941 говорит о том, что модель демонстрирует высокую степень согласованности с идеальным классификатором, но не идеальную. \n", + "- **MCC**: MCC 0.942 также подтверждает высокую точность классификации модели и сильную связь между предсказаниями и истинными значениями, но не идеальную." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'logistic'" + ] + }, + "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": 26, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "'Error items count: 0'" + ] + }, + "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", + "
RankPredictedNameNetworthAgeCountrySourceIndustryabove_average_networth
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [Rank , Predicted, Name, Networth, Age, Country, Source, Industry, above_average_networth]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Преобразование тестовых данных\n", + "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", + "# Получение предсказаний лучшей модели\n", + "y_pred = class_models[best_model][\"preds\"]\n", + "\n", + "# Нахождение индексов ошибок\n", + "error_index = y_test[y_test[\"above_average_networth\"] != y_pred].index.tolist() # Изменено на \"above_average_networth\"\n", + "display(f\"Error items count: {len(error_index)}\")\n", + "\n", + "# Создание DataFrame с ошибочными объектами\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 = error_df.sort_index() # Сортировка по индексу\n", + "\n", + "# Вывод DataFrame с ошибочными объектами\n", + "display(error_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Пример использования обученной модели (конвейера) для предсказания" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "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", + "
RankNameNetworthAgeCountrySourceIndustryabove_average_networth
14651445Gordon Getty2.188United StatesGetty OilEnergy0
\n", + "
" + ], + "text/plain": [ + " Rank Name Networth Age Country Source Industry \\\n", + "1465 1445 Gordon Getty 2.1 88 United States Getty Oil Energy \n", + "\n", + " above_average_networth \n", + "1465 0 " + ] + }, + "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", + "
NetworthAgeCountry_ArgentinaCountry_AustraliaCountry_AustriaCountry_BarbadosCountry_BelgiumCountry_BelizeCountry_BrazilCountry_Bulgaria...Industry_ManufacturingIndustry_Media & EntertainmentIndustry_Metals & MiningIndustry_Real EstateIndustry_ServiceIndustry_SportsIndustry_TechnologyIndustry_TelecomIndustry_diversifiedabove_average_networth
1465-0.2713121.8345220.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", + "

1 rows × 859 columns

\n", + "
" + ], + "text/plain": [ + " Networth Age Country_Argentina Country_Australia \\\n", + "1465 -0.271312 1.834522 0.0 0.0 \n", + "\n", + " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", + "1465 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", + "1465 0.0 0.0 ... 0.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "1465 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "1465 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \\\n", + "1465 0.0 0.0 0.0 \n", + "\n", + " above_average_networth \n", + "1465 0.0 \n", + "\n", + "[1 rows x 859 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "predicted: 0 (proba: [0.99415059 0.00584941])\n", + "real: 0\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# Выбираем лучшую модель\n", + "model = class_models[best_model][\"pipeline\"]\n", + "\n", + "# Выбираем позиционный индекс объекта для анализа\n", + "example_index = 13\n", + "\n", + "# Получаем исходные данные для объекта\n", + "test = pd.DataFrame(X_test.iloc[example_index, :]).T\n", + "display(test)\n", + "\n", + "# Получаем преобразованные данные для объекта\n", + "test_preprocessed = pd.DataFrame(preprocessed_df.iloc[example_index, :]).T\n", + "display(test_preprocessed)\n", + "\n", + "# Делаем предсказание\n", + "result_proba = model.predict_proba(test)[0]\n", + "result = model.predict(test)[0]\n", + "\n", + "# Получаем реальное значение\n", + "real = int(y_test.iloc[example_index].values[0])\n", + "\n", + "# Выводим результаты\n", + "print(f\"predicted: {result} (proba: {result_proba})\")\n", + "print(f\"real: {real}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Подбор гиперпараметров методом поиска по сетке" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\numpy\\ma\\core.py:2881: RuntimeWarning: invalid value encountered in cast\n", + " _data = np.array(data, dtype=dtype, copy=copy,\n" + ] + }, + { + "data": { + "text/plain": [ + "{'model__criterion': 'gini',\n", + " 'model__max_depth': 5,\n", + " 'model__max_features': 'sqrt',\n", + " 'model__n_estimators': 50}" + ] + }, + "execution_count": 28, + "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, 50, 100],\n", + " \"model__max_features\": [\"sqrt\", \"log2\"],\n", + " \"model__max_depth\": [5, 7, 10],\n", + " \"model__criterion\": [\"gini\", \"entropy\"],\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": 29, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "import numpy as np\n", + "from sklearn import metrics\n", + "import pandas as pd\n", + "\n", + "\n", + "# Определяем числовые признаки\n", + "numeric_features = X_train.select_dtypes(include=['float64', 'int64']).columns.tolist()\n", + "\n", + "# Установка random_state\n", + "random_state = 42\n", + "\n", + "# Определение трансформера\n", + "pipeline_end = ColumnTransformer([\n", + " ('numeric', StandardScaler(), numeric_features),\n", + " # Добавьте другие трансформеры, если требуется\n", + "])\n", + "\n", + "# Объявление модели\n", + "optimized_model = RandomForestClassifier(\n", + " random_state=random_state,\n", + " criterion=\"gini\",\n", + " max_depth=5,\n", + " max_features=\"sqrt\",\n", + " n_estimators=10,\n", + ")\n", + "\n", + "# Создание пайплайна с корректными шагами\n", + "result = {}\n", + "\n", + "# Обучение модели\n", + "result[\"pipeline\"] = Pipeline([\n", + " (\"pipeline\", pipeline_end),\n", + " (\"model\", optimized_model)\n", + "]).fit(X_train, y_train.values.ravel())\n", + "\n", + "# Прогнозирование и расчет метрик\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", + "# Метрики для оценки модели\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": 30, + "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": 31, + "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        
Old1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
New1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "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": "markdown", + "metadata": {}, + "source": [ + "Обе модели, как \"Old\", так и \"New\", демонстрируют идеальную производительность по всем ключевым метрикам: Precision, Recall, Accuracy и F1 как на обучающей (train), так и на тестовой (test) выборках. Все значения равны 1.000000, что указывает на отсутствие ошибок в классификации и максимальную точность." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "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     
Old1.0000001.0000001.0000001.0000001.000000
New1.0000001.0000001.0000001.0000001.000000
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "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": "markdown", + "metadata": {}, + "source": [ + "Обе модели, как \"Old\", так и \"New\", показали идеальные результаты по всем выбранным метрикам: Accuracy, F1, ROC AUC, Cohen's kappa и MCC. Все метрики имеют значение 1.000000 как на тестовой выборке, что указывает на безошибочную классификацию и максимальную эффективность обеих моделей." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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z89Pv//++yXHW7ZsqTp16jihZcBF5BqdUwD5sGTJEjVs2FBr1qzRgw8+qDfffFMDBgzQ2rVr1bBhQ33yySfObiIAAFeVkZGhF1980dnNAHAZLIgEIE8OHjyoBx54QFWrVtWGDRtUpkwZ89jjjz+uZs2a6YEHHtDOnTtVtWpVJ7YUNwoWjgBwPRo0aKC3335bzz77rCIiIpzdHMBErjFyCiCPpk6dqnPnzumtt96y65hKUunSpTV79mydPXtWU6ZMuWIdhmFo0qRJqlChgkqUKKFWrVoxHRjXzfa/qUuO2ADcOEaNGqWcnJw8jZ5+8MEHatSokfz9/RUaGqpevXopOTnZPP7666/L09NTp0+fNvdNmzZNFotFTz75pLkvJydHQUFBGjlypEOvBcULuUbnFEAeLV26VJUrV1azZs0ue7x58+aqXLmyli9ffsU6xowZo9GjR6t+/fqaOnWqqlatqnbt2uns2bOF1WwAAOxUqVJFffv21dtvv60jR45csdzkyZPVt29f1ahRQ6+88oqeeOIJrVmzRs2bNzc7o82aNZPNZtPGjRvN9yUmJsrDw0OJiYnmvu+//17p6elq3rx5oV0XUBzQOQVwTampqTpy5Ijq169/1XL16tXTb7/9pjNnzlxy7MSJE5oyZYo6duyoZcuWafDgwZo7d6769++vP/74o7CajmIsx7A4bMuPmTNnql69erJarbJarYqJidGXX35pHm/ZsqUsFovd9uijj9rVcfjwYXXs2FElSpRQ2bJlNWLECGVnZzvkcwFwbc8995yys7P10ksvXfb4r7/+qrFjx2rSpElauHChBg0apDFjxmjt2rX67bff9Oabb0qS6tevL6vVanZEDcPQxo0b1b17d7NDKv3VYb3jjjuK5gLhlsg1OqcA8iC3sxkUFHTVcrnH09LSLjm2evVqZWZmaujQobJY/vql+cQTTziuoUARqFChgl588UVt3bpV3333ne6880516dLFbor6wIEDdfToUXP7+3T3nJwcdezYUZmZmfrmm2/03nvvad68eRozZowzLge4IVWtWlUPPPCA3nrrLR09evSS40uWLJHNZlOPHj30xx9/mFt4eLhq1KihtWvXSpI8PDx0++23a8OGDZKkvXv36s8//9QzzzwjwzCUlJQk6WLntE6dOgoJCSmyawTyypVyjc4pgGvK7XRebkT0767W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mjdvniZPnmx3nnHjxumee+7Rrl279NBDD8lms6lChQr66KOPtGfPHo0ZM0ajRo3Shx9+aL7npZdeUkJCgt59911t2rRJaWlpl9wBj4+P1/z58zVr1izt3r1bw4YNU58+fbR+/forXnNGRobS0tLstuLq+O/emjmmvEbO+FU+fkaB6vq/8b9rxsp9Gvfuzzryq49mjy9/7TcBuCp3mf5ErpFrroRsA1yXu+RaYXKJzumyZcsUGBiowMBABQUF6fPPP9eiRYvk4XGxeYsWLZLNZtOcOXNUt25dRUdH691339Xhw4fNIP67s2fPaubMmZo6dao6dOig2rVr6+2335a/v795F7hly5bauHGjcnJytHPnTvn4+CguLs6sb926dWrRosVV2/3OO++oQ4cOKlmypEJDQxUbG6t3331XklSyZEl16NBBCxYsMMt//PHHKl26tFq1aiVJGj9+vJ555hn169dPVatWVdu2bTVx4kTNnj3b7jy9e/fWgw8+qKpVq6pixYry9vbW+PHjdcstt6hKlSqKi4vTgw8+aBfi06dP17PPPqt77rlHtWrV0owZMxQSEmIez8jI0AsvvKB33nlHsbGxqlq1qvr3768+ffpccv6/i4+PV3BwsLlFRhbfxQ8O7Cyh0394a3BslDpE1leHyPramRSoz+aWVofI+ipZJltZmR5KT/W0e9/pE94KLWt/BzG0bLYq1shQTGyaHn/pNy17r7T+PMY3ORVnaSc9lZMthfzjbnLJ0tl2q17i+hkOmvpUGCFOrpFrropsw/Ui1wqfK+daUXGJzmmrVq20fft2bd++XZs3b1ZsbKw6dOhg3q3dsWOHDhw4oKCgIDPsQ0NDdeHCBR08ePCS+g4ePKisrCzdcccd5j5vb2/deuut2rt3rySpWbNmOnPmjL7//nutX79eLVq0UMuWLc0QX79+vVq2bHnFNufk5Oi9995Tnz59zH19+vTRvHnzzClPcXFxWrx4sbmgREJCgnr16mX+42THjh2aMGGCeU2BgYEaOHCgjh49qnPn/pq7f8stt1xy/jfeeEONGjVSmTJlFBgYqLfeekuHDx+WJKWmpurYsWO69dZbzfKenp5q1KiR+frAgQM6d+6c2rZta3f++fPnX/YzzfXss88qNTXV3JKTi+8UngbNzmj21z9q5qp95laz/jnd2e2U+Wcvb5u+3xhovif5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QoKaNGmi6tWrm/VPmzZN3bp1U5UqVdStWzcNGzZMs2fPvu72x8bGKiAgwGynJC1YsEB33323goKClJGRoRdeeEHvvPOOYmNjVbVqVfXv3199+vS55LwTJkxQ27ZtVa1aNYWGhqp+/fr6v//7P9WpU0c1atTQxIkTVa1aNX3++eeSpB9//FGrV6/W22+/rSZNmqhhw4aaM2eOzp8/b9a5ceNGbd68WR999JFuueUW1ahRQy+//LJCQkLs7nL/XUZGhtLS0uw2AAXj65Wtdjcf4O5yMUGukWvAjY5cw/Vyaud037592rx5s+6//35JkpeXl3r27Km5c+deUjYmJsb8c2hoqKKiorR3715J0t69e3XHHXfYlb/jjju0f/9+5eTkSLp4tzc3xA3D0H/+8x/FxcVJks6ePauDBw9qwIABCgwMNLdJkybZ3ZXOb/u9vLzUo0cPJSQkmOf57LPPzPMeOHBA586dU9u2be3OO3/+/EvOe8stt9i9Tk9P1/DhwxUdHa2QkBAFBgZq79695h3mffv2ycvLSw0bNjTfU716dZUsWdJ8vWPHDqWnp6tUqVJ25z906NAVrzs+Pl7BwcHmFhkZecXP50aQdtJTOdlSyD/uJpcsna1TJ1x+MWy4iFb1fpafd7a+2FrT2U1xLy44/YlcI9fcHbkGRyDXrpML5lpRc+pvmblz5yo7O1sRERHmPsMw5OvrqxkzZig4ONhh57r//vs1cuRIbdu2TefPn1dycrL53Ezu9KTcu7F/5+npWaD2x8XFqUWLFjp+/LhWrVolf39/tW/f3u68y5cvV/ny5e3q9vX1tXsdEBBg93r48OFatWqVXn75ZVWvXl3+/v669957lZmZmefPJD09XeXKldO6desuOXalrzd49tln9eSTT5qv09LSbuggz87y0P6dJXRz0zNKWnHx59ViMdSgabo+n1fKya2Du7j71h+VuKeSTp/1d3ZT3IujAtiBIU6ukWvujlyDI5Br18kFc62oOa1zmp2drfnz52vatGlq166d3bGuXbvqP//5jx599FFz33//+19VrHhxGepTp07pp59+UnR0tCQpOjpamzZtsqtj06ZNqlmzphnCFSpUUIsWLZSQkKDz58+rbdu2Klu2rCQpLCxMERER+vnnn827v45q/+23367IyEgtWrRIX375pe677z55e19csax27dry9fXV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KeAgvr6+Gjt2rHx9fZ3dFLgYfjYKBwtHAIWL3124En42Cge5JlkM1j0GALiRtLQ0BQcH684Gz8jLs+D/MMrOydDX219Uamoqz04BAIocufYXpvUCAAAAAJyOab0AAPfEkvsAgOKEXKNzCgBwUzZJjvgaSkesjAgAQEGRa0zrRfHRv39/de3a1dnNQBFat26dLBaLTp8+7eymAIDDkWs3HnINNzo6p3C6/v37y2KxmFupUqXUvn177dy509lNy5Pz588rNDRUpUuXVkZGhrObU+wkJSXJ09NTHTt2dHZTrou7t9+V5a5q6IgtP8aNG2f3O8tisahWrVrm8QsXLmjw4MEqVaqUAgMD1b17dx07dszRlw8XRq7hatw9F9y9/a6MXKNzChfRvn17HT16VEePHtWaNWvk5eWlTp06ObtZebJ48WLddNNNqlWrlj799NNCP19WVlahn8OVzJ07V0OHDtWGDRt05MgRZzcn34qy/YZhKDs7u1DP4VJyn81xxJZPN910k/k76+jRo9q4caN5bNiwYVq6dKk++ugjrV+/XkeOHFG3bt0ceeVwA+Ra3pFr7oVcK0TkGp1TuAZfX1+Fh4crPDxcDRo00DPPPKPk5GSdOHHCLJOcnKwePXooJCREoaGh6tKli3755Zcr1pmRkaHHHntMZcuWlZ+fn5o2baotW7aYx2+55Ra9/PLL5uuuXbvK29tb6enpkqTffvtNFotFBw4cuGrb586dqz59+qhPnz6aO3euuf+tt95SRESEbDb7if9dunTRQw89ZL7+7LPP1LBhQ/n5+alq1aoaP3683S9ii8WimTNn6u6771ZAQIAmT56snJwcDRgwQFWqVJG/v7+ioqL073//2+482dnZeuyxxxQSEqJSpUpp5MiR6tevn90UMZvNpvj4eLOe+vXr6+OPP77q9Ral9PR0LVq0SIMGDVLHjh01b968y5bbtGmT6tWrJz8/P91222364Ycf7I7n/kPL19dXlStX1rRp08xjo0aNUpMmTS6ps379+powYYL5es6cOYqOjpafn59q1aqlN998s0Dt7927t3r27GlXPisrS6VLl9b8+fMlXfvvJ3f615dffqlGjRrJ19dXGzdu1MGDB9WlSxeFhYUpMDBQjRs31urVq+3OdfToUXXs2FH+/v6qUqWKFixYoMqVK+u1114zy5w+fVoPP/ywypQpI6vVqjvvvFM7duy45nXfCLy8vMzfWeHh4SpdurQkKTU1VXPnztUrr7yiO++8U40aNdK7776rb775Rv/973+d3GoUJXKNXLscco1cc1Wukmt0TuFy0tPT9cEHH6h69eoqVaqUpIu/3GJjYxUUFKTExERt2rRJgYGBat++vTIzMy9bz9NPP63Fixfrvffe07Zt21S9enXFxsbq5MmTkqQWLVpo3bp1ki7emUtMTFRISIh5p2j9+vUqX768qlevfsW2Hjx4UElJSerRo4d69OihxMRE/frrr5Kk++67T3/++afWrl1rlj958qRWrFihuLg4SVJiYqL69u2rxx9/XHv27NHs2bM1b948TZ482e4848aN0z333KNdu3bpoYceks1mU4UKFfTRRx9pz549GjNmjEaNGqUPP/zQfM9LL72khIQEvfvuu9q0aZPS0tIuuQMeHx+v+fPna9asWdq9e7eGDRumPn36aP369df6ayoSH374oWrVqqWoqCj16dNH77zzji731cwjRozQtGnTtGXLFpUpU0adO3c278Rv3bpVPXr0UK9evbRr1y6NGzdOo0ePNgM1Li5Omzdv1sGDB836du/erZ07d6p3796SpISEBI0ZM0aTJ0/W3r179cILL2j06NF67733rrv9cXFxWrp0qfmPRklauXKlzp07p3vuuUdS3v9+nnnmGb344ovau3ev6tWrp/T0dN11111as2aNvv/+e7Vv316dO3fW4cOHzff07dtXR44c0bp167R48WK99dZbOn78uF299913n44fP64vv/xSW7duVcOGDdW6dWvz/yGnc+Id5v379ysiIkJVq1ZVXFyc+dlu3bpVWVlZatOmjVm2Vq1aqlixopKSkhx26XAv5Bq5lotcI9euilyTDMDJ+vXrZ3h6ehoBAQFGQECAIckoV66csXXrVrPM+++/b0RFRRk2m83cl5GRYfj7+xsrV6406+nSpYthGIaRnp5ueHt7GwkJCWb5zMxMIyIiwpgyZYphGIbx+eefG8HBwUZ2draxfft2Izw83Hj88ceNkSNHGoZhGA8//LDRu3fvq7Z91KhRRteuXc3XXbp0McaOHWv3+qGHHjJfz54924iIiDBycnIMwzCM1q1bGy+88IJdne+//75Rrlw587Uk44knnrhqOwzDMAYPHmx0797dfB0WFmZMnTrVfJ2dnW1UrFjR/IwuXLhglChRwvjmm2/s6hkwYIBx//33X/N8ReH22283XnvtNcMwDCMrK8soXbq0sXbtWvP42rVrDUnGwoULzX1//vmn4e/vbyxatMgwDMPo3bu30bZtW7t6R4wYYdSuXdt8Xb9+fWPChAnm62effdZo0qSJ+bpatWrGggUL7OqYOHGiERMTc93tz309f/58s/z9999v9OzZ0zCMvP395F7/p59+etV2GIZh3HTTTcb06dMNwzCMvXv3GpKMLVu2mMf3799vSDJeffVVwzAMIzEx0bBarcaFCxfs6qlWrZoxe/bsa56vMKWmphqSjNa1hxuxdZ8r8Na69nBDkpGcnGykpqaa2z+vPdcXX3xhfPjhh8aOHTuMFStWGDExMUbFihWNtLQ0IyEhwfDx8bnkPY0bNzaefvrpwv5o4CLINXLtSsg1cu1yyLW/MHIKl9CqVStt375d27dv1+bNmxUbG6sOHTqYd2t37NihAwcOKCgoSIGBgQoMDFRoaKguXLhgd2cw18GDB5WVlaU77rjD3Oft7a1bb71Ve/fulSQ1a9ZMZ86c0ffff6/169erRYsWatmypXnXef369WrZsuUV25yTk6P33ntPffr0Mff16dNH8+bNM6c8xcXFafHixeaCEgkJCerVq5c8PDzM65owYYJ5TYGBgRo4cKCOHj2qc+fOmfXecsstl5z/jTfeUKNGjVSmTBkFBgbqrbfeMu9ypaam6tixY7r11lvN8p6enmrUqJH5+sCBAzp37pzatm1rd/758+df9jMtavv27dPmzZt1//33S7o43aRnz552U8xyxcTEmH8ODQ1VVFSU+fe8d+9eu58DSbrjjju0f/9+5eTkSLr497RgwQJJF0cb/vOf/5ijAGfPntXBgwc1YMAAu89p0qRJV/2crtV+Ly8v9ejRQwkJCeZ5PvvsM/O8+fn7+efPR3p6uoYPH67o6GiFhIQoMDBQe/fuNX8+9u3bJy8vLzVs2NB8T/Xq1VWyZEnz9Y4dO5Senm4ufpC7HTp0yCV+PiQ5/A5zZGSkgoODzS0+Pv6yp+3QoYPuu+8+1atXT7Gxsfriiy90+vRpuxEegFwj1/6JXCPXrolc43tO4RoCAgLsphnNmTNHwcHBevvttzVp0iSlp6erUaNG5i+8vytTpsx1nTMkJET169fXunXrlJSUpLZt26p58+bq2bOnfvrpJ+3fv18tWrS44vtXrlyp33///ZLnK3JycrRmzRq1bdtWnTt3lmEYWr58uRo3bqzExES9+uqrZtn09HSNHz/+sg+V+/n5mX8OCAiwO7Zw4UINHz5c06ZNU0xMjIKCgjR16lR9++23eb7+3Gk3y5cvV/ny5e2O+fr65rmewjJ37lxlZ2crIiLC3GcYhnx9fTVjxgwFBwc77Fz333+/Ro4cqW3btun8+fNKTk42/15zP6e33377kmd4PD09C9T+uLg4tWjRQsePH9eqVavk7++v9u3b2503L38///z5GD58uFatWqWXX35Z1atXl7+/v+69994rThW8nPT0dJUrV878R+3fhYSE5LmeQuXg74NLTk6W1Wo1d+f1/4OQkBDVrFlTBw4cUNu2bZWZmanTp0/bfU7Hjh1TeHi4AxoLd0GukWv/RK6Ra9dErtE5hWuyWCzy8PDQ+fPnJUkNGzbUokWLVLZsWbv/ya6kWrVq8vHx0aZNm1SpUiVJF5/v2bJli5544gmzXIsWLbR27Vpt3rxZkydPVmhoqKKjozV58mSVK1dONWvWvOI55s6dq169eum5556z2z958mTNnTtXbdu2lZ+fn7p166aEhAQdOHBAUVFRdnf1GjZsqH379l31+Z/L2bRpk26//Xb961//Mvf9/a5fcHCwwsLCtGXLFjVv3lzSxX9cbNu2TQ0aNJAk1a5dW76+vjp8+PBV/7HiDNnZ2Zo/f76mTZumdu3a2R3r2rWr/vOf/+jRRx819/33v/9VxYoVJUmnTp3STz/9pOjoaElSdHS0Nm3aZFfHpk2bVLNmTTOEK1SooBYtWighIUHnz59X27ZtVbZsWUlSWFiYIiIi9PPPP5t3fx3V/ttvv12RkZFatGiRvvzyS913333y9vaWVLC/n02bNql///7mMz7p6el2i6xERUUpOztb33//vTnqcODAAZ06dcos07BhQ6WkpMjLy0uVK1fO1/ndldVqzdPvl39KT0/XwYMH9cADD6hRo0by9vbWmjVr1L17d0kX7+gfPnzYbiQENx5y7erINXLtasi16+OOuUbnFC4hIyNDKSkpki7+Ep4xY4bS09PVuXNnSRenp0ydOlVdunTRhAkTVKFCBf36669asmSJnn76aVWoUMGuvoCAAA0aNEgjRoxQaGioKlasqClTpujcuXMaMGCAWa5ly5aaPn26ypQpY36fU8uWLTVjxgzdd999V2zviRMntHTpUn3++eeqU6eO3bG+ffvqnnvu0cmTJxUaGqq4uDh16tRJu3fvtpsqJUljxoxRp06dVLFiRd17773y8PDQjh079MMPP2jSpElXPH+NGjU0f/58rVy5UlWqVNH777+vLVu2qEqVKmaZoUOHKj4+XtWrV1etWrU0ffp0nTp1ShbLxVtyQUFBGj58uIYNGyabzaamTZsqNTVVmzZtktVqVb9+/a54/sK2bNkynTp1SgMGDLjkTnL37t01d+5cuxCfMGGCSpUqpbCwMD333HMqXbq0uXrjU089pcaNG2vixInq2bOnkpKSNGPGjEtWJYyLi9PYsWOVmZlpNwogSePHj9djjz2m4OBgtW/fXhkZGfruu+906tQpPfnkkwVqf+/evTVr1iz99NNPdouMFOTvp0aNGlqyZIk6d+4si8Wi0aNH262uWatWLbVp00aPPPKIZs6cKW9vbz311FPy9/c3fz7atGmjmJgYde3aVVOmTFHNmjV15MgRLV++XPfcc89lp+QVtev5Lrcr1ZMfw4cPV+fOnVWpUiUdOXJEY8eOlaenp+6//34FBwdrwIABevLJJxUaGiqr1aqhQ4cqJiZGt912W4HbCvdBrpFrf0eukWt5Qa6JBZHgfP369TMkmVtQUJDRuHFj4+OPP7Yrd/ToUaNv375G6dKlDV9fX6Nq1arGwIEDjdTUVLOe3EURDMMwzp8/bwwdOtQsf8cddxibN2+2q/PPP/80LBaL+bC+YRjGJ598YkgyZs2adcU2v/zyy0ZISIiRmZl5ybGMjAwjJCTE+Pe//20YhmHk5OQY5cqVMyQZBw8evKT8ihUrjNtvv93w9/c3rFarceuttxpvvfWWeVyS8cknn9i958KFC0b//v2N4OBgIyQkxBg0aJDxzDPPGPXr1zfLZGVlGUOGDDGsVqtRsmRJY+TIkcZ9991n9OrVyyxjs9mM1157zYiKijK8vb2NMmXKGLGxscb69euveO1FoVOnTsZdd9112WPffvutIcnYsWOHuXDC0qVLjZtuusnw8fExbr31VmPHjh127/n444+N2rVrG97e3kbFihXtFtTIderUKcPX19coUaKEcebMmUuOJyQkGA0aNDB8fHyMkiVLGs2bNzeWLFlSoPYbhmHs2bPHkGRUqlTJbmEUw7j230/u9Z86dcrufYcOHTJatWpl+Pv7G5GRkcaMGTOMFi1aGI8//rhZ5siRI0aHDh0MX19fo1KlSsaCBQuMsmXL2v3cp6WlGUOHDjUiIiIMb29vIzIy0oiLizMOHz582WsrKrkLR7SpMcxoX+uZAm9tagwzJJm/S66lZ8+eRrly5QwfHx+jfPnyRs+ePY0DBw6Yx8+fP2/861//MkqWLGmUKFHCuOeee4yjR48W1scBF0SukWv/RK5dRK5dHrn2F4thOKB7DsDl2Ww2RUdHq0ePHpo4caKzmwMX89tvvykyMlKrV69W69atnd2cq0pLS1NwcLDa1BgmL8+CP0eWnZOh1ftfVWpq6nVNfwLgHOQaroZcc89cY1ovUEz9+uuv+uqrr9SiRQtlZGRoxowZOnTokPkdZ7ixff3110pPT1fdunV19OhRPf3006pcubL5LJdbsBmSxQH3V23cowXcAbmGqyHX/lGPm6JzChRTHh4emjdvnoYPHy7DMFSnTh2tXr3aXFABN7asrCyNGjVKP//8s4KCgnT77bcrISHBXLjCLVznF41fth4ALo9cw9WQa/+ox00xrRcA4FbM6U9VH3fc9Kef/+2W058AAO6PXPsLI6cAADfloDvM4h4tAMAVkGt0TgEA7onpTwCA4oRck4ezGwAAAAAAACOnAAD3ZMv9GklH1AMAgJORa4ycAgAAAACcj84pcAPr37+/unbtar5u2bKlnnjiiSJvx7p162SxWHT69OkrlrFYLPr000/zXOe4cePUoEGDArXrl19+kcVi0fbt2wtUDwqJYXPcBqBYINeujlxzceQanVPA1fTv318Wi0UWi0U+Pj6qXr26JkyYoOzs7EI/95IlSzRx4sQ8lc1L8AKFKnfhCEdsAAoNuQbkEbnGM6eAK2rfvr3effddZWRk6IsvvtDgwYPl7e2tZ5999pKymZmZ8vHxcch5Q0NDHVIPAAB/R64ByAtGTgEX5Ovrq/DwcFWqVEmDBg1SmzZt9Pnnn0v6a8rS5MmTFRERoaioKElScnKyevTooZCQEIWGhqpLly765ZdfzDpzcnL05JNPKiQkRKVKldLTTz8t4x931v45/SkjI0MjR45UZGSkfH19Vb16dc2dO1e//PKLWrVqJUkqWbKkLBaL+vfvL0my2WyKj49XlSpV5O/vr/r16+vjjz+2O88XX3yhmjVryt/fX61atbJrZ16NHDlSNWvWVIkSJVS1alWNHj1aWVlZl5SbPXu2IiMjVaJECfXo0UOpqal2x+fMmaPo6Gj5+fmpVq1aevPNN/PdFjiJzXDcBqBQkWvXRq6BXGPkFHAL/v7++vPPP83Xa9askdVq1apVqyRJWVlZio2NVUxMjBITE+Xl5aVJkyapffv22rlzp3x8fDRt2jTNmzdP77zzjqKjozVt2jR98sknuvPOO6943r59+yopKUmvv/666tevr0OHDumPP/5QZGSkFi9erO7du2vfvn2yWq3y9/eXJMXHx+uDDz7QrFmzVKNGDW3YsEF9+vRRmTJl1KJFCyUnJ6tbt24aPHiwHnnkEX333Xd66qmn8v2ZBAUFad68eYqIiNCuXbs0cOBABQUF6emnnzbLHDhwQB9++KGWLl2qtLQ0DRgwQP/617+UkJAgSUpISNCYMWM0Y8YM3Xzzzfr+++81cOBABQQEqF+/fvluE4oY3wcHuC1y7VLkGsg1OqeASzMMQ2vWrNHKlSs1dOhQc39AQIDmzJljTnv64IMPZLPZNGfOHFksFknSu+++q5CQEK1bt07t2rXTa6+9pmeffVbdunWTJM2aNUsrV6684rl/+uknffjhh1q1apXatGkjSapatap5PHeqVNmyZRUSEiLp4h3pF154QatXr1ZMTIz5no0bN2r27Nlq0aKFZs6cqWrVqmnatGmSpKioKO3atUsvvfRSvj6b559/3vxz5cqVNXz4cC1cuNAuxC9cuKD58+erfPnykqTp06erY8eOmjZtmsLDwzV27FhNmzbN/EyqVKmiPXv2aPbs2YQ4ABQCcu3KyDWAzingkpYtW6bAwEBlZWXJZrOpd+/eGjdunHm8bt26ds/j7NixQwcOHFBQUJBdPRcuXNDBgweVmpqqo0ePqkmTJuYxLy8v3XLLLZdMgcq1fft2eXp6qkWLFnlu94EDB3Tu3Dm1bdvWbn9mZqZuvvlmSdLevXvt2iHJDPz8WLRokV5//XUdPHhQ6enpys7OltVqtStTsWJFM8Bzz2Oz2bRv3z4FBQXp4MGDGjBggAYOHGiWyc7OVnBwcL7bAycw5KA7zAWvAsDVkWvXRq6BXKNzCrikVq1aaebMmfLx8VFERIS8vOz/Vw0ICLB7nZ6erkaNGpnTev6uTJky19WG3OlM+ZGeni5JWr58uV14ShefN3KUpKQkxcXFafz48YqNjVVwcLAWLlxo3rXOT1vffvvtS/5R4enp6bC2ohAx/QlwG+Ta1ZFrkESuic4p4JICAgJUvXr1PJdv2LChFi1apLJly15ylzVXuXLl9O2336p58+aSLt5J3bp1qxo2bHjZ8nXr1pXNZtP69evN6U9/l3uHOycnx9xXu3Zt+fr66vDhw1e8Mx0dHW0ugpHrv//977Uv8m+++eYbVapUSc8995y579dff72k3OHDh3XkyBFFRESY5/Hw8FBUVJTCwsIUERGhn3/+WXFxcfk6PwAgf8i1qyPXgItYrRcoBuLi4lS6dGl16dJFiYmJOnTokNatW6fHHntMv/32myTp8ccf14svvqhPP/1UP/74o/71r39d9bvcKleurH79+umhhx7Sp59+atb54YcfSpIqVaoki8WiZcuW6cSJE0pPT1dQUJCGDx+uYcOG6b333tPBgwe1bds2TZ8+Xe+9954k6dFHH9X+/fs1YsQI7du3TwsWLNC8efPydb01atTQ4cOHtXDhQh08eFCvv/66Pvnkk0vK+fn5qV+/ftqxY4cSExP12GOPqUePHgoPD5ckjR8/XvHx8Xr99df1008/adeuXXr33Xf1yiuv5Ks9cBKbzXEbAJdCrpFrNyRyjc4pUByUKFFCGzZsUMWKFdWtWzdFR0drwIABunDhgnnH+amnntIDDzygfv36KSYmRkFBQbrnnnuuWu/MmTN177336l//+pdq1aqlgQMH6uzZs5Kk8uXLa/z48XrmmWcUFhamIUOGSJImTpyo0aNHKz4+XtHR0Wrfvr2WL1+uKlWqSLr4vMzixYv16aefqn79+po1a5ZeeOGFfF3v3XffrWHDhmnIkCFq0KCBvvnmG40ePfqSctWrV1e3bt101113qV27dqpXr57dkvoPP/yw5syZo3fffVd169ZVixYtNG/ePLOtAADnINfINdyYLMaVnhoHAMAFpaWlKTg4WG3KDJCXh8+133AN2bZMrT4xV6mpqVecPggAQGEh1/7CM6cAAPfEwhEAgOKEXGNaLwAAAADA+Rg5BQC4J5shh3yZm8197zADAIoRco3OKQDAPRmGTYZR8BUJHVEHAAAFRa4xrRcAAAAA4AIYOQUAuCfDcMzUJTdeOAIAUIyQa3ROAQBuynDQszluHOIAgGKEXGNaLwAAAADA+Rg5BQC4J5tNsjhg0Qc3XjgCAFCMkGt0TgEAborpTwCA4oRcY1ovAAAAAMD5GDkFALglw2aT4YDpT+78fXAAgOKDXGPkFAAAAADgAhg5BQC4J57NAQAUJ+QanVMAgJuyGZLlxg5xAEAxQq4xrRcAAAAA4HyMnAIA3JNhSHLE98G57x1mAEAxQq7ROQUAuCfDZshwwPQnw41DHABQfJBrTOsFAAAAALgAOqcAAPdk2By3XYc33nhDlStXlp+fn5o0aaLNmzc7+AIBADcUco3OKQDAPRk2w2Fbfi1atEhPPvmkxo4dq23btql+/fqKjY3V8ePHC+FKAQA3AnKNzikAAPn2yiuvaODAgXrwwQdVu3ZtzZo1SyVKlNA777zj7KYBAJBvrpJrdE4BAO7JSdOfMjMztXXrVrVp08bc5+HhoTZt2igpKcnRVwkAuFGQa6zWCwBwT9nKkhywIGG2siRJaWlpdvt9fX3l6+t7Sfk//vhDOTk5CgsLs9sfFhamH3/8seANAgDckMg1OqcAADfj4+Oj8PBwbUz5wmF1BgYGKjIy0m7f2LFjNW7cOIedAwCAyyHX/kLnFADgVvz8/HTo0CFlZmY6rE7DMGSxWOz2Xe7usiSVLl1anp6eOnbsmN3+Y8eOKTw83GFtAgDcGMi1v9A5BQC4HT8/P/n5+Tnl3D4+PmrUqJHWrFmjrl27SpJsNpvWrFmjIUOGOKVNAAD3Rq5dROcUAIB8evLJJ9WvXz/dcsstuvXWW/Xaa6/p7NmzevDBB53dNAAA8s1Vco3OKQAA+dSzZ0+dOHFCY8aMUUpKiho0aKAVK1ZcspgEAADuwFVyzWIYhgPWhAIAAAAA4PrxPacAAAAAAKejcwoAAAAAcDo6pwAAAAAAp6NzCgAAAABwOjqnAAAAAACno3MKAAAAAHA6OqcAAAAAAKejcwoAAAAAcDo6pwAAAAAAp6NzCgAAAABwOjqnAAAAAACno3MKAAAAAHC6/wcsgRaESX4ULQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "_, ax = plt.subplots(1, 2, figsize=(10, 4), sharex=False, sharey=False)\n", + "\n", + "# Предполагается, что optimized_metrics - DataFrame с матрицами ошибок\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=[\"Below Average\", \"Above Average\"] # Измените метки на нужные\n", + " ).plot(ax=ax.flat[index])\n", + " disp.ax_.set_title(optimized_metrics.index[index]) # Заголовок с названием модели\n", + "\n", + "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.3)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В желтом квадрате мы видим значение 403, что обозначает количество правильно классифицированных объектов, отнесенных к классу \"Below Average\". Это свидетельствует о том, что модель успешно идентифицирует объекты этого класса, минимизируя количество ложных положительных срабатываний.\n", + "\n", + "В зеленом квадрате значение 117 указывает на количество правильно классифицированных объектов, отнесенных к классу \"Above Average\". Это также является показателем высокой точности модели в определении объектов данного класса." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Определение достижимого уровня качества модели для второй задачи " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Подготовка данных__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Загрузка данных и создание целевой переменной" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Среднее значение поля 'Networth': 4.8607499999999995\n", + " Rank Name Networth Age Country \\\n", + "0 1 Elon Musk 219.0 50 United States \n", + "1 2 Jeff Bezos 171.0 58 United States \n", + "2 3 Bernard Arnault & family 158.0 73 France \n", + "3 4 Bill Gates 129.0 66 United States \n", + "4 5 Warren Buffett 118.0 91 United States \n", + "\n", + " Source Industry above_average_networth \n", + "0 Tesla, SpaceX Automotive 1 \n", + "1 Amazon Technology 1 \n", + "2 LVMH Fashion & Retail 1 \n", + "3 Microsoft Technology 1 \n", + "4 Berkshire Hathaway Finance & Investments 1 \n", + "Статистическое описание DataFrame:\n", + " Rank Networth Age above_average_networth\n", + "count 2600.000000 2600.000000 2600.000000 2600.000000\n", + "mean 1269.570769 4.860750 64.271923 0.225000\n", + "std 728.146364 10.659671 13.220607 0.417663\n", + "min 1.000000 1.000000 19.000000 0.000000\n", + "25% 637.000000 1.500000 55.000000 0.000000\n", + "50% 1292.000000 2.400000 64.000000 0.000000\n", + "75% 1929.000000 4.500000 74.000000 0.000000\n", + "max 2578.000000 219.000000 100.000000 1.000000\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn import set_config\n", + "\n", + "set_config(transform_output=\"pandas\")\n", + "\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "random_state = 42\n", + "\n", + "# Вычисление среднего значения поля \"Networth\"\n", + "average_networth = df['Networth'].mean()\n", + "print(f\"Среднее значение поля 'Networth': {average_networth}\")\n", + "\n", + "# Создание новой колонки, указывающей, выше или ниже среднего значение чистого состояния\n", + "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", + "\n", + "# Вывод DataFrame с новой колонкой\n", + "print(df.head())\n", + "\n", + "# Примерный анализ данных\n", + "print(\"Статистическое описание DataFrame:\")\n", + "print(df.describe())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Разделение набора данных на обучающую и тестовые выборки (80/20) для задачи регрессии\n", + "\n", + "Целевой признак -- above_average_close" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "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", + "
RankNameNetworthAgeCountrySourceIndustry
582579Alexandra Schoerghuber & family4.963Germanyreal estateReal Estate
4849He Xiangjian28.379Chinahome appliancesManufacturing
17721729Bruce Mathieson1.778AustraliahotelsFood & Beverage
964951Pansy Ho3.259Hong KongcasinosGambling & Casinos
22132190Sasson Dayan & family1.382BrazilbankingFinance & Investments
........................
16381579Wang Chou-hsiong1.981TaiwanfootwearManufacturing
10951096Jose Joao Abdalla Filho2.876BrazilinvestmentsFinance & Investments
11301096Lin Chen-hai2.875Taiwanreal estateReal Estate
12941292Banwari Lal Bawri2.469IndiapharmaceuticalsHealthcare
860851Kuok Khoon Hong3.572Singaporepalm oilManufacturing
\n", + "

2080 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " Rank Name Networth Age Country \\\n", + "582 579 Alexandra Schoerghuber & family 4.9 63 Germany \n", + "48 49 He Xiangjian 28.3 79 China \n", + "1772 1729 Bruce Mathieson 1.7 78 Australia \n", + "964 951 Pansy Ho 3.2 59 Hong Kong \n", + "2213 2190 Sasson Dayan & family 1.3 82 Brazil \n", + "... ... ... ... ... ... \n", + "1638 1579 Wang Chou-hsiong 1.9 81 Taiwan \n", + "1095 1096 Jose Joao Abdalla Filho 2.8 76 Brazil \n", + "1130 1096 Lin Chen-hai 2.8 75 Taiwan \n", + "1294 1292 Banwari Lal Bawri 2.4 69 India \n", + "860 851 Kuok Khoon Hong 3.5 72 Singapore \n", + "\n", + " Source Industry \n", + "582 real estate Real Estate \n", + "48 home appliances Manufacturing \n", + "1772 hotels Food & Beverage \n", + "964 casinos Gambling & Casinos \n", + "2213 banking Finance & Investments \n", + "... ... ... \n", + "1638 footwear Manufacturing \n", + "1095 investments Finance & Investments \n", + "1130 real estate Real Estate \n", + "1294 pharmaceuticals Healthcare \n", + "860 palm oil Manufacturing \n", + "\n", + "[2080 rows x 7 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", + "
above_average_networth
5821
481
17720
9640
22130
......
16380
10950
11300
12940
8600
\n", + "

2080 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " above_average_networth\n", + "582 1\n", + "48 1\n", + "1772 0\n", + "964 0\n", + "2213 0\n", + "... ...\n", + "1638 0\n", + "1095 0\n", + "1130 0\n", + "1294 0\n", + "860 0\n", + "\n", + "[2080 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", + "
RankNameNetworthAgeCountrySourceIndustry
15931579Guangming Fu & family1.968ChinapoultryFood & Beverage
196197Leon Black10.070United Statesprivate equityFinance & Investments
239235Zong Qinghou8.876ChinabeveragesFood & Beverage
21262076Kurt Krieger1.474Germanyfurniture retailingFashion & Retail
15871579Chen Kaichen1.964Chinahousehold chemicalsManufacturing
........................
17781729Jorge Perez1.772United Statesreal estateReal Estate
166167Brian Chesky11.540United StatesAirbnbTechnology
949913Zhong Ruonong & family3.359ChinaelectronicsManufacturing
4950Miriam Adelson27.576United StatescasinosGambling & Casinos
25112448Lou Boliang1.158United StatespharmaceuticalsHealthcare
\n", + "

520 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " Rank Name Networth Age Country \\\n", + "1593 1579 Guangming Fu & family 1.9 68 China \n", + "196 197 Leon Black 10.0 70 United States \n", + "239 235 Zong Qinghou 8.8 76 China \n", + "2126 2076 Kurt Krieger 1.4 74 Germany \n", + "1587 1579 Chen Kaichen 1.9 64 China \n", + "... ... ... ... ... ... \n", + "1778 1729 Jorge Perez 1.7 72 United States \n", + "166 167 Brian Chesky 11.5 40 United States \n", + "949 913 Zhong Ruonong & family 3.3 59 China \n", + "49 50 Miriam Adelson 27.5 76 United States \n", + "2511 2448 Lou Boliang 1.1 58 United States \n", + "\n", + " Source Industry \n", + "1593 poultry Food & Beverage \n", + "196 private equity Finance & Investments \n", + "239 beverages Food & Beverage \n", + "2126 furniture retailing Fashion & Retail \n", + "1587 household chemicals Manufacturing \n", + "... ... ... \n", + "1778 real estate Real Estate \n", + "166 Airbnb Technology \n", + "949 electronics Manufacturing \n", + "49 casinos Gambling & Casinos \n", + "2511 pharmaceuticals Healthcare \n", + "\n", + "[520 rows x 7 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", + "
above_average_networth
15930
1961
2391
21260
15870
......
17780
1661
9490
491
25110
\n", + "

520 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " above_average_networth\n", + "1593 0\n", + "196 1\n", + "239 1\n", + "2126 0\n", + "1587 0\n", + "... ...\n", + "1778 0\n", + "166 1\n", + "949 0\n", + "49 1\n", + "2511 0\n", + "\n", + "[520 rows x 1 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from typing import Tuple\n", + "import pandas as pd\n", + "from pandas import DataFrame\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "def split_into_train_test(\n", + " df_input: DataFrame,\n", + " target_colname: str = \"above_average_networth\", \n", + " frac_train: float = 0.8,\n", + " random_state: int = None,\n", + ") -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame]:\n", + " \n", + " if not (0 < frac_train < 1):\n", + " raise ValueError(\"Fraction must be between 0 and 1.\")\n", + " \n", + " # Проверка наличия целевого признака\n", + " if target_colname not in df_input.columns:\n", + " raise ValueError(f\"{target_colname} is not a column in the DataFrame.\")\n", + " \n", + " # Разделяем данные на признаки и целевую переменную\n", + " X = df_input.drop(columns=[target_colname]) # Признаки\n", + " y = df_input[[target_colname]] # Целевая переменная\n", + "\n", + " # Разделяем данные на обучающую и тестовую выборки\n", + " X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y,\n", + " test_size=(1.0 - frac_train),\n", + " random_state=random_state\n", + " )\n", + " \n", + " return X_train, X_test, y_train, y_test\n", + "\n", + "# Применение функции для разделения данных\n", + "X_train, X_test, y_train, y_test = split_into_train_test(\n", + " df, \n", + " target_colname=\"above_average_networth\", \n", + " frac_train=0.8, \n", + " random_state=42 \n", + ")\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)\n", + "\n" + ] + }, + { + "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", + "pipeline_end -- основной конвейер предобработки данных и конструирования признаков" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Networth Age Country_Argentina Country_Australia \\\n", + "0 20.092595 -1.079729 0.0 0.0 \n", + "1 15.588775 -0.474496 0.0 0.0 \n", + "2 14.368991 0.660314 0.0 0.0 \n", + "3 11.647933 0.130736 0.0 0.0 \n", + "4 10.615808 2.022087 0.0 0.0 \n", + "... ... ... ... ... \n", + "2595 -0.362253 1.189893 0.0 0.0 \n", + "2596 -0.362253 1.341201 0.0 0.0 \n", + "2597 -0.362253 0.509006 0.0 0.0 \n", + "2598 -0.362253 0.282044 0.0 0.0 \n", + "2599 -0.362253 0.357698 0.0 0.0 \n", + "\n", + " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", + "0 0.0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 \n", + "... ... ... ... ... \n", + "2595 0.0 0.0 0.0 0.0 \n", + "2596 0.0 0.0 0.0 0.0 \n", + "2597 0.0 0.0 0.0 0.0 \n", + "2598 0.0 0.0 0.0 0.0 \n", + "2599 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", + "0 0.0 0.0 ... 0.0 \n", + "1 0.0 0.0 ... 0.0 \n", + "2 0.0 0.0 ... 0.0 \n", + "3 0.0 0.0 ... 0.0 \n", + "4 0.0 0.0 ... 0.0 \n", + "... ... ... ... ... \n", + "2595 0.0 0.0 ... 0.0 \n", + "2596 0.0 0.0 ... 0.0 \n", + "2597 0.0 0.0 ... 0.0 \n", + "2598 0.0 0.0 ... 0.0 \n", + "2599 0.0 0.0 ... 0.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "0 0.0 0.0 \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "... ... ... \n", + "2595 0.0 0.0 \n", + "2596 0.0 0.0 \n", + "2597 0.0 0.0 \n", + "2598 0.0 0.0 \n", + "2599 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "2595 0.0 0.0 0.0 \n", + "2596 0.0 0.0 0.0 \n", + "2597 0.0 0.0 0.0 \n", + "2598 0.0 0.0 0.0 \n", + "2599 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \\\n", + "0 0.0 0.0 0.0 \n", + "1 1.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 1.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "2595 0.0 0.0 0.0 \n", + "2596 0.0 0.0 0.0 \n", + "2597 0.0 0.0 0.0 \n", + "2598 0.0 0.0 0.0 \n", + "2599 0.0 0.0 0.0 \n", + "\n", + " Networth_per_Age \n", + "0 -18.608929 \n", + "1 -32.853309 \n", + "2 21.760834 \n", + "3 89.095063 \n", + "4 5.249926 \n", + "... ... \n", + "2595 -0.304441 \n", + "2596 -0.270096 \n", + "2597 -0.711686 \n", + "2598 -1.284383 \n", + "2599 -1.012732 \n", + "\n", + "[2600 rows x 988 columns]\n", + "(2600, 988)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from sklearn.base import BaseEstimator, TransformerMixin\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.impute import SimpleImputer\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.ensemble import RandomForestRegressor \n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.pipeline import make_pipeline\n", + "\n", + "class ForbesBillionairesFeatures(BaseEstimator, TransformerMixin): \n", + " def __init__(self):\n", + " pass\n", + "\n", + " def fit(self, X, y=None):\n", + " return self\n", + "\n", + " def transform(self, X, y=None):\n", + " X[\"Networth_per_Age\"] = X[\"Networth\"] / X[\"Age\"]\n", + " return X\n", + "\n", + " def get_feature_names_out(self, features_in):\n", + " return np.append(features_in, [\"Networth_per_Age\"], axis=0) \n", + "\n", + "# Определите признаки для вашей задачи\n", + "columns_to_drop = [\"Rank \", \"Name\"] \n", + "num_columns = [\"Networth\", \"Age\"] \n", + "cat_columns = [\"Country\", \"Source\", \"Industry\"]\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", + "# Преобразование категориальных признаков\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", + "# Формирование конвейера\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", + " ],\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", + "# Окончательный конвейер\n", + "pipeline_end = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " (\"drop_columns\", drop_columns),\n", + " (\"custom_features\", ForbesBillionairesFeatures()), \n", + " ]\n", + ")\n", + "\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "# Создаем целевой признак\n", + "average_networth = df['Networth'].mean()\n", + "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", + "\n", + "# Подготовка данных\n", + "X = df.drop('above_average_networth', axis=1)\n", + "y = df['above_average_networth'].values.ravel() \n", + "\n", + "# Применение конвейера\n", + "X_processed = pipeline_end.fit_transform(X)\n", + "\n", + "# Вывод\n", + "print(X_processed)\n", + "print(X_processed.shape)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Демонстрация работы конвейера__" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
NetworthAgeCountry_ArgentinaCountry_AustraliaCountry_AustriaCountry_BarbadosCountry_BelgiumCountry_BelizeCountry_BrazilCountry_Bulgaria...Industry_ManufacturingIndustry_Media & EntertainmentIndustry_Metals & MiningIndustry_Real EstateIndustry_ServiceIndustry_SportsIndustry_TechnologyIndustry_TelecomIndustry_diversifiedNetworth_per_Age
582-0.013606-0.1099340.00.00.00.00.00.00.00.0...0.00.00.01.00.00.00.00.00.00.123766
481.9940831.0790790.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.01.847949
1772-0.2881621.0047660.01.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.0-0.286795
964-0.159464-0.4071870.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.391623
2213-0.3224811.3020190.00.00.00.00.00.01.00.0...0.00.00.00.00.00.00.00.00.0-0.247678
..................................................................
1638-0.2710021.2277060.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.0-0.220739
1095-0.1937830.8561390.00.00.00.00.00.01.00.0...0.00.00.00.00.00.00.00.00.0-0.226346
1130-0.1937830.7818260.00.00.00.00.00.00.00.0...0.00.00.01.00.00.00.00.00.0-0.247860
1294-0.2281030.3359460.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.0-0.678986
860-0.1337240.5588860.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.0-0.239269
\n", + "

2080 rows × 857 columns

\n", + "
" + ], + "text/plain": [ + " Networth Age Country_Argentina Country_Australia \\\n", + "582 -0.013606 -0.109934 0.0 0.0 \n", + "48 1.994083 1.079079 0.0 0.0 \n", + "1772 -0.288162 1.004766 0.0 1.0 \n", + "964 -0.159464 -0.407187 0.0 0.0 \n", + "2213 -0.322481 1.302019 0.0 0.0 \n", + "... ... ... ... ... \n", + "1638 -0.271002 1.227706 0.0 0.0 \n", + "1095 -0.193783 0.856139 0.0 0.0 \n", + "1130 -0.193783 0.781826 0.0 0.0 \n", + "1294 -0.228103 0.335946 0.0 0.0 \n", + "860 -0.133724 0.558886 0.0 0.0 \n", + "\n", + " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", + "582 0.0 0.0 0.0 0.0 \n", + "48 0.0 0.0 0.0 0.0 \n", + "1772 0.0 0.0 0.0 0.0 \n", + "964 0.0 0.0 0.0 0.0 \n", + "2213 0.0 0.0 0.0 0.0 \n", + "... ... ... ... ... \n", + "1638 0.0 0.0 0.0 0.0 \n", + "1095 0.0 0.0 0.0 0.0 \n", + "1130 0.0 0.0 0.0 0.0 \n", + "1294 0.0 0.0 0.0 0.0 \n", + "860 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", + "582 0.0 0.0 ... 0.0 \n", + "48 0.0 0.0 ... 1.0 \n", + "1772 0.0 0.0 ... 0.0 \n", + "964 0.0 0.0 ... 0.0 \n", + "2213 1.0 0.0 ... 0.0 \n", + "... ... ... ... ... \n", + "1638 0.0 0.0 ... 1.0 \n", + "1095 1.0 0.0 ... 0.0 \n", + "1130 0.0 0.0 ... 0.0 \n", + "1294 0.0 0.0 ... 0.0 \n", + "860 0.0 0.0 ... 1.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "582 0.0 0.0 \n", + "48 0.0 0.0 \n", + "1772 0.0 0.0 \n", + "964 0.0 0.0 \n", + "2213 0.0 0.0 \n", + "... ... ... \n", + "1638 0.0 0.0 \n", + "1095 0.0 0.0 \n", + "1130 0.0 0.0 \n", + "1294 0.0 0.0 \n", + "860 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "582 1.0 0.0 0.0 \n", + "48 0.0 0.0 0.0 \n", + "1772 0.0 0.0 0.0 \n", + "964 0.0 0.0 0.0 \n", + "2213 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "1638 0.0 0.0 0.0 \n", + "1095 0.0 0.0 0.0 \n", + "1130 1.0 0.0 0.0 \n", + "1294 0.0 0.0 0.0 \n", + "860 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \\\n", + "582 0.0 0.0 0.0 \n", + "48 0.0 0.0 0.0 \n", + "1772 0.0 0.0 0.0 \n", + "964 0.0 0.0 0.0 \n", + "2213 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "1638 0.0 0.0 0.0 \n", + "1095 0.0 0.0 0.0 \n", + "1130 0.0 0.0 0.0 \n", + "1294 0.0 0.0 0.0 \n", + "860 0.0 0.0 0.0 \n", + "\n", + " Networth_per_Age \n", + "582 0.123766 \n", + "48 1.847949 \n", + "1772 -0.286795 \n", + "964 0.391623 \n", + "2213 -0.247678 \n", + "... ... \n", + "1638 -0.220739 \n", + "1095 -0.226346 \n", + "1130 -0.247860 \n", + "1294 -0.678986 \n", + "860 -0.239269 \n", + "\n", + "[2080 rows x 857 columns]" + ] + }, + "execution_count": 45, + "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 -- многослойный персептрон (нейронная сеть)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "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": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: logistic\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: ridge\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: decision_tree\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: knn\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: naive_bayes\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: gradient_boosting\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: random_forest\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: mlp\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\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" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Матрица неточностей__" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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x/j444/x4MEDNGrUCLNmzZI6heq4tv9yd3fHoUOH8OzZM5VvC4v774TKFoePEhUi706YEELal5qami+4CmJjY4OAgABs3LgR69evh4mJCXr06KFSp0+fPoiMjMSePXvyvT8lJQU5OTklanNOTg5++OEH6XVWVhZ++OEHODg4wNfXt8DrOnXqFCIjI196zHfffRdXr17F+PHjYWhoiH79+uW7hrt372L58uX53vv8+XNpCEtycnK+8gYNGgBAvkdXEBGR9jE0NET79u2xbds2lTlqsbGx2LVrV7GPIZPJVB5fcOvWLWml6jx5HZYFCxao7C/OqtwBAQGwsrLC7NmzkZ2dna/84cOHxWrri/I6NikpKSV+b55169bhyZMn0uvNmzcjMTFRutbGjRvD0dERy5YtU8nFXbt2ITo6Wlp51cXFBQ0aNMDatWtV2nP58mXs3bsXXbp0AZA7B/S/00IcHR3h6uqqcnxzc/NCp8S8ioCAAGRnZ6v8baBUKrF48WK1nofUg98UEhWiY8eOMDExQdeuXfHhhx8iPT0dy5cvh6OjIxITE4t1jL59+2LgwIFYsmQJAgICpMVW8owfPx7bt2/HW2+9hcGDB8PX1xdPnz7FpUuXsHnzZty6dUtluGlRXF1d8fXXX+PWrVuoWbMmNmzYgKioKPz4448wNjYGALz11lvYunUrevbsicDAQNy8eRPLli2Dj48P0tPT8x0zMDAQdnZ22LRpEzp37gxHR0eV8nfffRcbN27ERx99hEOHDqF58+ZQKBT466+/sHHjRuzZsweNGzdGSEgIjh49isDAQLi7u+PBgwdYsmQJKleujBYtWhT7GomISHOmTZuGvXv3onnz5hg+fDgUCgUWLVqEOnXqICoqqsj3BwYG4rvvvkOnTp0wYMAAPHjwAIsXL4anpycuXrwo1WvQoAH69++PJUuWIDU1Fc2aNcOBAweK9U2TlZUVli5dinfffReNGjVCv3794ODggPj4eOzcuRPNmzdXeV5wcZiZmcHHxwcbNmxAzZo1YWtrizp16qBOnTrFPoatrS1atGiBIUOG4P79+5g/fz48PT2lxViMjY3x9ddfY8iQIfD390f//v2lR1JUrVoVY8eOlY71zTffoHPnzvDz88PQoUOlR1JYW1tLz0988uQJKleujLfffhv169eHhYUF9u/fjzNnzmDu3LnSsXx9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b28v7t+/L4QQYuzYsaJTp05CCCFUKpVwcHAQTk5OYseOHUIIIb7//ntRuXLlImtPSEgQcrlcpKamivv37wtzc3Nx7do1IYQQqampwszMTOzdu1da//79+2rzDh06JGxsbERkZKRITEwUu3fvFtWrVxfTpk2T3gNAVKpUSaxZs0YkJiaK69evi+zsbDFlyhRx4sQJcfXqVfH9998LCwsLsX79eul9M2fOFA4ODuLnn38WcXFxYujQocLGxkbtHM2cOVO4urqK2rVri8TERDF69GgBQOzfv19aZ//+/QKA8PHxEbt37xbnz58XnTt3FtWrVxfZ2dlCCCFOnjwpjIyMRHh4uIiPjxdr164VCoVCrF27VgghxJ9//ikAiISEBGm7+fOuXLkinW83NzexceNGcfXqVbFx40bh4OAgIiMji/wZREREiMaNGwshhNiyZYuoVauWUKlUQgghtm7dKhQKhXj06JG0/pYtW4RCoRAPHz6UzkGdOnXEzp07RWJioli7dq2Qy+XiwIEDasffoEEDsXv3bpGQkCDu378vzp49K5YvXy4uXLggLl++LD7//HNhbm4url+/Lu2rffv2omHDhuLYsWPi1KlTIiAgQCgUCrFgwQK1dbp06SJOnDghLl++LD755BPh6Ogo/T8lItIGZjOzOf98M5uZzaXFRiG9lJCQEGFsbCwsLS2FpaWlACDc3NzEqVOnpHW+++474e3tLX2gCCFEVlaWUCgUYteuXdJ28j9UMzIyhKmpqYiOjpbWz87OFu7u7mLu3LlCCCF+/fVXYWtrK3Jzc8XZs2eFq6urGD16tBg/frwQQojBgweLfv36FVn7xIkTRbdu3aTXXbt2FVOnTlV7/f7770uvV6xYIdzd3aVAbdeunZg9e7baNr/77jvh5uYmvQYgPv744yLrEEKI4cOHi549e0qvXVxcxLx586TXubm5omrVqtI5yszMFBYWFqJ+/fpi4cKFQgghcnJyhLm5uWjbtq30vvwP3nXr1knz7t+/LxQKhRR0/fr1E4GBgWr1fPrpp6Ju3brSa19fXxEeHi69njBhgmjWrJn0ulatWiImJkZtGzNmzBD+/v5FHnfz5s3V6ndycpKCM/91VFSUtH7fvn1F79691c7B77//rrbNQYMGib59+6od/+bNm4usQwgh6tWrJ77++mshhBBxcXECgDhx4oS0/MqV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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", + "\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=[\"Below Average\", \"Above Average\"] \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()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Значение 396 в желтом квадрате представляет собой количество объектов, относимых к классу \"Below Average\", которые модель правильно классифицировала. Это свидетельствует о высоком уровне точности в идентификации этого класса.\n", + "Значение 124 в голубом квадрате указывает на количество правильно классифицированных объектов класса \"Above Average\". Хотя это также является положительным результатом, мы можем заметить, что он ниже, чем для класса \"Below Average\".\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__Точность, полнота, верность (аккуратность), F-мера__" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "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
decision_tree1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
random_forest1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
ridge0.9808510.9606301.0000000.9838710.9956730.9865380.9903330.972112
logistic1.0000001.0000000.9436010.8306450.9875000.9596150.9709820.907489
mlp0.9907980.9531250.7006510.4919350.9322120.8730770.8208390.648936
knn0.9685310.9074070.6008680.3951610.9072120.8461540.7416330.550562
naive_bayes0.3699840.2605461.0000000.8467740.6225960.3903850.5401290.398482
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 51, + "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": [ + "Многие модели, включая логистическую регрессию, дерево решений,градиентный бустинг и случайный лес, показали выдающиеся результаты по всем метрикам:\n", + "\n", + "- Accuracy: Все модели, кроме MLP, достигли идеальной точности (1.000), что означает, что они правильно классифицировали все объекты в тестовом наборе. MLP показала высокую точность 0.996, что все равно является отличным результатом.\n", + "- F1: Аналогично, все модели показали идеальное значение F1-меры (1.000), кроме MLP, которая показала значение 0.991.\n", + "- ROC AUC: Все модели достигли максимального значения ROC AUC (1.000), что указывает на их способность различать классы с идеальной точностью.\n", + "- Cohen's Kappa: Идеальное значение Cohen's Kappa (1.000) подтверждает высокую согласованность классификации с идеальным классификатором для всех моделей, кроме MLP, которая показала 0.989.\n", + "- MCC: Идеальное значение MCC (1.000) указывает на высокую точность классификации и сильную связь между предсказаниями и истинными значениями для всех моделей, кроме MLP, которая показала 0.989.\n", + "\n", + "Модель MLP (Многослойный перцептрон) также показала отличные результаты:\n", + "\n", + "- Accuracy: Достигла значения 0.996, что немного ниже идеального, но все еще очень высокий результат.\n", + "- F1: Значение F1-меры равно 0.991, что также указывает на высокую эффективность модели.\n", + "- ROC AUC: MLP достигает идеального значения ROC AUC (1.000), что свидетельствует о ее способности выделять классы с идеальной точностью.\n", + "- Cohen's Kappa: Высокое значение Cohen's Kappa (0.989) говорит о хорошей согласованности классификации с идеальным классификатором.\n", + "- MCC: Высокое значение MCC (0.989) также подтверждает высокую точность классификации и сильную связь между предсказаниями и истинными значениями.\n", + "\n", + "Модель KNN (Метод k-ближайших соседей) показала сравнительно более низкие результаты:\n", + "- Accuracy: Достигла значения 0.958, что ниже идеального, но все еще является приемлемым результатом.\n", + "- F1: Значение F1-меры равно 0.896, что указывает на более низкую эффективность модели по сравнению с другими.\n", + "- ROC AUC: KNN достигает значения ROC AUC 0.998, что свидетельствует о ее способности выделять классы с хорошей точностью.\n", + "- Cohen's Kappa: Значение Cohen's Kappa (0.870) говорит о более низкой согласованности классификации с идеальным классификатором.\n", + "- MCC: Значение MCC (0.877) также подтверждает более низкую точность классификации и связи между предсказаниями и истинными значениями.\n", + "\n", + "Модель наивного байесовского классификатора (naive_bayes) показала следующие результаты:\n", + "\n", + "- Accuracy: Модель правильно классифицировала 97.88% объектов в тестовом наборе. Это довольно хороший результат, но не идеальный.\n", + "- F1-мера: Значение F1-меры 0.955 указывает на то, что модель достигает баланса между точностью (precision) и полнотой (recall). Это означает, что модель хорошо справляется как с правильным определением объектов, относящихся к классу \"выше среднего\" чистого состояния, так и с минимизацией пропускания таких объектов.\n", + "- ROC AUC: Модель достигла значения ROC AUC 0.983, что свидетельствует о ее способности различать классы с высокой точностью. \n", + "- Cohen's Kappa: Значение 0.941 говорит о том, что модель демонстрирует высокую степень согласованности с идеальным классификатором, но не идеальную. \n", + "- MCC: MCC 0.942 также подтверждает высокую точность классификации модели и сильную связь между предсказаниями и истинными значениями, но не идеальную.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__ROC-кривая, каппа Коэна, коэффициент корреляции Мэтьюса__" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "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
decision_tree1.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.000000
random_forest1.0000001.0000001.0000001.0000001.000000
ridge0.9865380.9721120.9994710.9632410.963361
logistic0.9596150.9074890.9994300.8819410.888152
mlp0.8730770.6489360.9334470.5808910.628281
knn0.8461540.5505620.8832070.4745350.534367
naive_bayes0.3903850.3984820.5471240.0531660.096181
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 52, + "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": "markdown", + "metadata": {}, + "source": [ + "- Decision Tree, Gradient Boosting и Random Forest показали идеальные результаты, что может указывать на переобучение или на то, что данные были простыми для классификации.\n", + "\n", + "- Ridge и Logistic Regression показали высокие результаты, что указывает на их эффективность в данной задаче классификации.\n", + "\n", + "- MLP показала средние результаты, что может указывать на необходимость настройки гиперпараметров или использования более сложной архитектуры.\n", + "\n", + "- KNN и Naive Bayes показали низкие результаты, что указывает на их неэффективность в данной задаче классификации." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'decision_tree'" + ] + }, + "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": 55, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "'Error items count: 0'" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Преобразование тестовых данных\n", + "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", + "# Получение предсказаний лучшей модели\n", + "y_pred = class_models[best_model][\"preds\"]\n", + "\n", + "# Нахождение индексов ошибок\n", + "error_index = y_test[y_test[\"above_average_networth\"] != y_pred].index.tolist() # Изменено на \"above_average_networth\"\n", + "display(f\"Error items count: {len(error_index)}\")\n", + "\n", + "# Создание DataFrame с ошибочными объектами\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 = error_df.sort_index() # Сортировка по индексу" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Пример использования обученной модели (конвейера) для предсказания" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "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", + "
RankNameNetworthAgeCountrySourceIndustry
17011645Zugen Ni1.865ChinaappliancesManufacturing
\n", + "
" + ], + "text/plain": [ + " Rank Name Networth Age Country Source Industry\n", + "1701 1645 Zugen Ni 1.8 65 China appliances Manufacturing " + ] + }, + "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", + "
NetworthAgeCountry_ArgentinaCountry_AustraliaCountry_AustriaCountry_BarbadosCountry_BelgiumCountry_BelizeCountry_BrazilCountry_Bulgaria...Industry_ManufacturingIndustry_Media & EntertainmentIndustry_Metals & MiningIndustry_Real EstateIndustry_ServiceIndustry_SportsIndustry_TechnologyIndustry_TelecomIndustry_diversifiedNetworth_per_Age
1701-0.2795820.0386930.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.0-7.22566
\n", + "

1 rows × 857 columns

\n", + "
" + ], + "text/plain": [ + " Networth Age Country_Argentina Country_Australia \\\n", + "1701 -0.279582 0.038693 0.0 0.0 \n", + "\n", + " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", + "1701 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", + "1701 0.0 0.0 ... 1.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "1701 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "1701 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \\\n", + "1701 0.0 0.0 0.0 \n", + "\n", + " Networth_per_Age \n", + "1701 -7.22566 \n", + "\n", + "[1 rows x 857 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'predicted: 0 (proba: [1. 0.])'" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'real: 0'" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Выбираем лучшую модель\n", + "model = class_models[best_model][\"pipeline\"]\n", + "\n", + "# Выбираем позицию объекта для анализа\n", + "example_position = 127\n", + "\n", + "# Получаем исходные данные для объекта по позиции\n", + "test = pd.DataFrame(X_test.iloc[example_position, :]).T\n", + "display(test)\n", + "\n", + "# Получаем преобразованные данные для объекта по позиции\n", + "test_preprocessed = pd.DataFrame(preprocessed_df.iloc[example_position, :]).T\n", + "display(test_preprocessed)\n", + "\n", + "# Делаем предсказание\n", + "result_proba = model.predict_proba(test)[0]\n", + "result = model.predict(test)[0]\n", + "\n", + "# Получаем реальное значение\n", + "real = int(y_test.iloc[example_position].values[0])\n", + "\n", + "# Выводим результаты\n", + "display(f\"predicted: {result} (proba: {result_proba})\")\n", + "display(f\"real: {real}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Подбор гиперпараметров методом поиска по сетке" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'model__criterion': 'gini',\n", + " 'model__max_depth': 5,\n", + " 'model__max_features': 'sqrt',\n", + " 'model__n_estimators': 50}" + ] + }, + "execution_count": 60, + "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, 50, 100],\n", + " \"model__max_features\": [\"sqrt\", \"log2\"],\n", + " \"model__max_depth\": [5, 7, 10],\n", + " \"model__criterion\": [\"gini\", \"entropy\"],\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": 61, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n" + ] + } + ], + "source": [ + "optimized_model = ensemble.RandomForestClassifier(\n", + " random_state=random_state,\n", + " criterion=\"gini\",\n", + " max_depth=5,\n", + " max_features=\"log2\",\n", + " n_estimators=10,\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": 62, + "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": 63, + "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        
Old1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
New0.0000000.0000000.0000000.0000000.7783650.7615380.0000000.000000
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 63, + "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": "markdown", + "metadata": {}, + "source": [ + "Как для обучающей (Precision_train), так и для тестовой (Precision_test) выборки обе модели достигли идеальных значений 1.000000. Это указывает на то, что модели очень точно классифицируют положительные образцы, не пропуская их." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "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     
Old1.0000001.0000001.0000001.0000001.000000
New0.7615380.0000000.9995720.0000000.000000
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 64, + "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": "markdown", + "metadata": {}, + "source": [ + "Оба варианта модели продемонстрировали безупречную точность классификации, достигнув значения 1.000000. Это свидетельствует о том, что модели точно классифицировали все тестовые примеры, не допустив никаких ошибок в предсказаниях." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rklu/70LAAAAAAD564Yap/Hx8erbt68iIyP1559/SpLee+89nvMGACg4hh0XSYMGDSLXAACOY+dcc0W5bpx++umnioqKko+Pj7Zv3660tDRJUnJysp5//nm7VxAAgKuyc4h7e3uTawAAx6FxmvvG6ZQpUzR79my988478vDwMNffeeed2rZtm10rBwBAQZkxYwa5BgCAA+V6QqT9+/erWbNmV6wPCAjQ2bNn7VEnAAD+U35PHEGuAQAKEhMi3UDPaUhIiA4cOHDF+o0bN6pKlSp2qRQAAP/JsNhvuQpyDQBQoPI511xBrhungwYN0uOPP64ffvhBFotFR48eVVxcnEaMGKHBgwfnRx0BAMh3P/74I7kGAIAD5XpY7zPPPCOr1apWrVrpwoULatasmby8vDRixAgNHTo0P+oIAMCV7Pyw8k6dOunixYvkGgDAMeyca64o141Ti8WiZ599ViNHjtSBAweUmpqqmjVrytfXNz/qBwBAgTh06JBOnDhBrgEA4CC5bpxe5unpqZo1a9qzLgAA5Ji9J44g1wAAjsSESDfQOG3ZsqUslmvfZPvtt9/mqUIAAOSInYc/dezYUUWKXBmL5BoAoEAwrDf3jdN69erZvM7IyNCOHTv0008/qX///vaqFwAABapWrVry8vIi1wAAcJBcN05fffXVq66fMGGCUlNT81whAAByxE7Dny5fYX7hhRfk7+9vribXAAAFys655opy/SiZa+nbt6/effddexUHAMD1GXZcroJcAwAUqHzONVdgt8ZpQkKCvL297VUcAAAORa4BAFCwcj2st1u3bjavDcPQsWPH9OOPP2rs2LF2qxgAANdl54kjoqOj5eHhQa4BAByDCZFy3zgNCAiwee3m5qawsDBNmjRJbdu2tVvFAAC4HntPue/v7y9PT09yDQDgEDxKJpeN06ysLD3wwAOqXbu2ihcvnl91AgCgwM2aNctmQiQAAFCwcnXPqbu7u9q2bauzZ8/mU3UAAAAAADejXE+IVKtWLf3222/5URcAAAAAwE0q143TKVOmaMSIEVq2bJmOHTumlJQUmwUAgAJh5yn3V6xYQa4BAByHR8nk/J7TSZMm6amnntLdd98tSbrnnntksVjM7YZhyGKxKCsry/61BADgX+w9cUTPnj3l5vb3NVtyDQBQkJgQKReN04kTJ+qRRx7R2rVr87M+AAA4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GjXS6tWrbY517NgxdejQQT4+PqpcubIWLVqkSpUq6bXXXjP3OXv2rB566CGVKlVK/v7+uuuuu7Rz587/PG9k8w/KknsR6exJ23A+81cRFS/Fly1k8yySqceivtc3u6rpfJrn/9YaGn/vWn22uab2/VnaofVzVc46/IlcI9cKCz678E9858l/zpprBcnhjdOPPvpI4eHhCgsLU9++ffXuu+/KMK78iY4cOVLTp0/Xli1bVKpUKXXq1EkZGdnj27du3aoePXqoV69e2r17tyZMmKCxY8eagRodHa3NmzcrMTHRLG/Pnj3atWuX+vTpI0mKi4vTuHHjNHXqVO3bt0/PP/+8xo4dqwULFtxw/aOjo7V06VKlpqaa+69cuVIXLlxQ165dJUkxMTFauHChZs+erT179mj48OHq27ev1q9fb3OcZ555Ri+88IL27dunOnXqKDU1VXfffbfWrFmj7du3q127durUqZMOHz5svqdfv346evSo1q1bp08//VRz5szRiRMnbMq97777dOLECX399dfaunWr6tevr1atWun06asPz0hLS1NKSorNAuDa3N2yFNNrlSwW6YUvm5nre0b+pKKeGZq//lYH1g75gVwj1woDPrsAOILDx2LExsaqb9++kqR27dopOTlZ69evV4sWLWz2Gz9+vNq0aSNJWrBggcqVK6clS5aoR48eeuWVV9SqVSuNHTtWklSjRg3t3btXL730kgYMGKBbbrlFdevW1aJFi8x94uLi1LhxY1WrVs0sf/r06erWrZskqXLlytq7d6/efvtt9e/f/4bqHxUVpWLFimnJkiW6//77JUmLFi3SPffcIz8/P6Wlpen555/X6tWrFRmZfc9GlSpVtHHjRr399ttq3ry5eZxJkyaZ5y9JQUFBqlu3rvl68uTJWrJkib788ks99thj+vnnn7V69Wpt2bJFDRs2lJR9Bb169ermezZu3KjNmzfrxIkT8vLKHq7z8ssv6/PPP9cnn3yihx9++IrzjYmJ0cSJE6/587jZpJx2V1amFPivK4bFS2bqzEmH//OCg7m7ZSmm9yqFBKbq0dhO/+h5kBpW+VO1KxzXponv2LxnweBPtWJndU389K6Crq7rcdIp98k1cs3V8dmFq+E7TwFw0lwrSA7tOd2/f782b96s3r17S5KKFCminj17KjY29op9L4eclB1gYWFh2rdvnyRp3759uvPOO232v/POO/Xrr78qKytLUvbV3kWLFknKvr/lgw8+UHR0tCTp/PnzSkxM1MCBA+Xr62suU6ZMsbkqndv6FylSRD169FBcXJx5nC+++MI87oEDB3ThwgW1adPG5rgLFy684riXg/iy1NRUjRgxQhEREQoMDJSvr6/27dtnXmHev3+/ihQpovr165vvqVatmooXL26+3rlzp1JTU1WiRAmb4x88ePCa5z169GglJyeby5EjR67587kZZGa46dddRXVrk78nirBYDNVrkqq9W5nB8GZ2+ctdhRLJGvJuRyVf9LbZ/vKyOxU94z71nZm9PLHwbknSmMVtNGvVbY6osutxwntzyDVyzdXx2YVr4TtPAXDCXCtoDr3MERsbq8zMTIWGhprrDMOQl5eXZs6cqYCAALsdq3fv3ho1apS2bdumixcv6siRI+Z9M5eHJ73zzjtX3MPj7u6ep/pHR0erefPmOnHihFatWiUfHx+1a9fO5rjLly9X2bJlbcq+fMX3smLFbJ8vNmLECK1atUovv/yyqlWrJh8fH917771KT0/P8c8kNTVVZcqU0bp1667YFhgYeNX3eHl5XVG3m91nc0pqxGtH9MvOotq/vai6Djop76JWffNhkKOrhnzk45mh8iWSzdehxVNUo8xfSr7gpb/OFdWLfVYpvMxJDX+vvdzdDJXwzZ4sIvmilzKz3HU82U/H/1HehfTsj+M/T/vrRIpvQZ4K7IhcI9ecHZ9dyAu+8yC/OaxxmpmZqYULF2r69Olq27atzbYuXbrogw8+0COPPGKu+/7771WhQgVJ0pkzZ/TLL78oIiJCkhQREaFNmzbZlLFp0ybVqFHDDOFy5cqpefPmiouL08WLF9WmTRuVLp19I39wcLBCQ0P122+/mVd/7VX/O+64Q+XLl9fixYv19ddf67777pOHh4ckqWbNmvLy8tLhw4dthjrlxKZNmzRgwADzHp/U1FT9/vvv5vawsDBlZmZq+/btatCggaTsK9pnzpwx96lfv76SkpJUpEgRVapUKVfHx9/Wf1lcASWy1G9kkoqXytRve3z0bHRlnf3Lw9FVQz6KKHtCbz+01Hz9ZIcESdKybTU0Z01DNY/4XZK0aOgnNu/7v7mdtO2g7Zd23Bh7Tfpgr4kjyDVyzRXw2YW84DtP/nK2XHMEhzVOly1bpjNnzmjgwIFXXEnu3r27YmNjbUJ80qRJKlGihIKDg/Xss8+qZMmS6tKliyTpqaeeUqNGjTR58mT17NlTCQkJmjlz5hWzEkZHR2v8+PFKT0/Xq6++arNt4sSJGjZsmAICAtSuXTulpaXpxx9/1JkzZ/Tkk0/mqf59+vTR7Nmz9csvv2jt2rXmfn5+fhoxYoSGDx8uq9WqJk2aKDk5WZs2bZK/v/917wmqXr26PvvsM3Xq1EkWi0Vjx46V1Wo1t4eHh6t169Z6+OGHNWvWLHl4eOipp56Sj4+PLBaLJKl169aKjIxUly5dNG3aNNWoUUNHjx7V8uXL1bVr1yuGXOHavpxXUl/OK+noaqAAbTtYVo2efeSa26+37WqOnfXP9Xtuek52bw65Rq65Aj67kFd858lHTpZrjuCwe05jY2PVunXrqw5x6t69u3788Uft2rXLXPfCCy/o8ccfV4MGDZSUlKSlS5fK0zP7Bv369evro48+0ocffqhatWpp3LhxmjRpkgYMGGBT7r333qtTp07pwoUL5heAyx566CHNnTtX8+bNU+3atdW8eXPNnz9flStf+ZDq3NY/Ojpae/fuVdmyZa+4h2jy5MkaO3asYmJiFBERoXbt2mn58uXXPO5lr7zyiooXL6477rhDnTp1UlRUlM19OJK0cOFCBQcHq1mzZuratasGDRokPz8/eXtn3z9isVj01VdfqVmzZnrggQdUo0YN9erVS4cOHVJwcPB1jw8AsEWuZSPXAAA3ymJcbX57FEp//PGHypcvr9WrV6tVq1Z2KTMlJUUBAQFqoc4qYmFIB2ydfiDyv3fCTSUr/ZJ2vv+skpOT5e/vf0NlXP7cqXf/VLl7ev/3G3JQpx3v5a1OcIz8zLW6fe3z94XCJWhegqOrACeTaWRonb4g1+yEeZ8LsW+//VapqamqXbu2jh07pqefflqVKlVSs2bN/vvNAAA4GXINAAo3GqeFWEZGhsaMGaPffvtNfn5+uuOOOxQXF2dOXAEALo17c2465BqAQo1co3FamEVFRSkqKsrR1QCAfMGshjcfcg1AYUauOXBCJAAAAAAALqPnFADgmhj+BAAoTMg1GqcAANfE8CcAQGFCrjGsFwAAAADgBOg5BQC4JoY/AQAKE3KNxikAwDUx/AkAUJiQawzrBQAAAAA4AXpOAQCuieFPAIDChFyjcQoAcF2uPHQJAIB/u9lzjWG9AAAAAACHo+cUAOCaDCN7sUc5AAA4GrlGzykAAAAAwPHoOQUAuCSm3AcAFCbkGo1TAICrYlZDAEBhQq4xrBcAAAAA4Hj0nAIAXJLFmr3YoxwAAByNXKNxCgBwVQx/AgAUJuQaw3oBAMiNDRs2qFOnTgoNDZXFYtHnn39us90wDI0bN05lypSRj4+PWrdurV9//dVmn9OnTys6Olr+/v4KDAzUwIEDlZqaWoBnAQBANmfKNRqnAACXdHlWQ3ssuXH+/HnVrVtXb7755lW3T5s2TW+88YZmz56tH374QcWKFVNUVJQuXbpk7hMdHa09e/Zo1apVWrZsmTZs2KCHH344Lz8OAICLI9cY1gsAcFUOelh5+/bt1b59+2sUZei1117Tc889p86dO0uSFi5cqODgYH3++efq1auX9u3bpxUrVmjLli1q2LChJGnGjBm6++679fLLLys0NDRv5wMAcE3kGj2nAABIUkpKis2SlpaW6zIOHjyopKQktW7d2lwXEBCgxo0bKyEhQZKUkJCgwMBAM8AlqXXr1nJzc9MPP/yQ9xMBAECumWs0TgEALsnew5/Kly+vgIAAc4mJicl1nZKSkiRJwcHBNuuDg4PNbUlJSSpdurTN9iJFiigoKMjcBwBw8yHXGNYLAIAk6ciRI/L39zdfe3l5ObA2AADkjSvmGj2nAADXZNhxkeTv72+z3EiIh4SESJKOHz9us/748ePmtpCQEJ04ccJme2Zmpk6fPm3uAwC4CZFrNE4BAK7JUbMaXk/lypUVEhKiNWvWmOtSUlL0ww8/KDIyUpIUGRmps2fPauvWreY+3377raxWqxo3bmy/ygAAXAq5xrBeAAByJTU1VQcOHDBfHzx4UDt27FBQUJAqVKigJ554QlOmTFH16tVVuXJljR07VqGhoerSpYskKSIiQu3atdOgQYM0e/ZsZWRk6LHHHlOvXr2YqRcAUOCcKddonAIAXJODptz/8ccf1bJlS/P1k08+KUnq37+/5s+fr6efflrnz5/Xww8/rLNnz6pJkyZasWKFvL29zffExcXpscceU6tWreTm5qbu3bvrjTfeyPu5AABcF7lG4xQA4JrsNXQpt2W0aNFCxnWC32KxaNKkSZo0adI19wkKCtKiRYtyd2AAQKFGrnHPKQAAAADACdBzCgBwTf+YkTDP5QAA4GjkGo1TAIBrctTwJwAA8gO5xrBeAAAAAIAToOcUAOCarEb2Yo9yAABwNHKNxikAwEVxbw4AoDAh1xjWCwAAAABwPHpOAQAuySI7TRyR9yIAAMgzco2eUwAAAACAE6DnFADgmgwje7FHOQAAOBq5RuMUAOCaeB4cAKAwIdcY1gsAAAAAcAL0nAIAXBNT7gMAChNyjcYpAMA1WQxDFjvcV2OPMgAAyCtyjWG9AAAAAAAnQM8pAMA1Wf+32KMcAAAcjVyjcQoAcE0MfwIAFCbkGsN6AQAAAABOgJ5TAIBrYlZDAEBhQq7RcwoAAAAAcDx6TgEArskwshd7lAMAgKORazROAQCuyWJkL/YoBwAARyPXGNYLAAAAAHAC9JwCAFwTw58AAIUJuUbjFADgmizW7MUe5QAA4GjkGsN6AQAAAABOgJ5TAIBrYvgTAKAwIddonAIAXBQPKwcAFCbkGo1T5I3xvyszmcpw6X8IyB9Z6ZccXQU4mct/E4YLX9VF4Xb5b5PPL1xNppHh6CrAyWQq+2+CXLMPGqfIk3PnzkmSNuorB9cETun9LxxdAzipc+fOKSAgIE9lWAxDFjt8GbBHGSg8LufaTx9NdnBNALgScs0+aJwiT0JDQ3XkyBH5+fnJYrE4ujoOlZKSovLly+vIkSPy9/d3dHXgRPjb+JthGDp37pxCQ0PtUdhNf28O7I9c+xufXbgW/jb+Rq7ZF41T5Imbm5vKlSvn6Go4FX9//5v+gxpXx99GtrxeWQbyE7l2JT67cC38bWQj1+yHxikAwDUZkuzxLDfXvcAMAChMyDWecwoAAAAAcDx6TgE78fLy0vjx4+Xl5eXoqsDJ8LeRP5g4AshffHbhWvjbyB/kmmQxmPcYAOBCUlJSFBAQoLvqPaMi7nn/YpSZlaZvd7yg5ORk7p0CABQ4cu1vDOsFAAAAADgcw3oBAK6JKfcBAIUJuUbjFADgoqyS7PEYSnvMjAgAQF6RawzrBQAAAAA4Ho1TFBoDBgxQly5dHF0NFKB169bJYrHo7Nmzjq4KHODyrIb2WHJjwoQJslgsNkt4eLi5/dKlSxoyZIhKlCghX19fde/eXcePH7f36eMmQK7dfMi1mxu5RuMUTmDAgAE2/xhKlCihdu3aadeuXY6uWo5cvHhRQUFBKlmypNLS0hxdnUInISFB7u7u6tChg6OrckNcvf5O7fK9OfZYcumWW27RsWPHzGXjxo3mtuHDh2vp0qX6+OOPtX79eh09elTdunWz55nDyZFruB5XzwVXr79TI9donMI5tGvXzvzHsGbNGhUpUkQdO3Z0dLVy5NNPP9Utt9yi8PBwff755/l+vIyMjHw/hjOJjY3V0KFDtWHDBh09etTR1cm1gqy/YRjKzMzM12MgW5EiRRQSEmIuJUuWlCQlJycrNjZWr7zyiu666y41aNBA8+bN03fffafvv//ewbVGQSLXco5ccy3kWuHkLLlG4xROwcvLy/zHUK9ePT3zzDM6cuSITp48ae5z5MgR9ejRQ4GBgQoKClLnzp31+++/X7PMtLQ0DRs2TKVLl5a3t7eaNGmiLVu2mNsbNmyol19+2XzdpUsXeXh4KDU1VZL0xx9/yGKx6MCBA9ete2xsrPr27au+ffsqNjbWXD9nzhyFhobKarW9K71z58568MEHzddffPGF6tevL29vb1WpUkUTJ060+SC2WCyaNWuW7rnnHhUrVkxTp05VVlaWBg4cqMqVK8vHx0dhYWF6/fXXbY6TmZmpYcOGKTAwUCVKlNCoUaPUv39/myFiVqtVMTExZjl169bVJ598ct3zLUipqalavHixBg8erA4dOmj+/PlX3W/Tpk2qU6eOvL29dfvtt+unn36y2X75i5aXl5cqVaqk6dOnm9vGjBmjxo0bX1Fm3bp1NWnSJPP13LlzFRERIW9vb4WHh+utt97KU/379Omjnj172uyfkZGhkiVLauHChZL++/dzefjX119/rQYNGsjLy0sbN25UYmKiOnfurODgYPn6+qpRo0ZavXq1zbGOHTumDh06yMfHR5UrV9aiRYtUqVIlvfbaa+Y+Z8+e1UMPPaRSpUrJ399fd911l3bu3Pmf511g7HyFOSUlxWa5Xo/Rr7/+qtDQUFWpUkXR0dE6fPiwJGnr1q3KyMhQ69atzX3Dw8NVoUIFJSQk5O/PA06FXCPXroZcI9eui1yjcQrnk5qaqvfff1/VqlVTiRIlJGV/uEVFRcnPz0/x8fHatGmTfH191a5dO6Wnp1+1nKefflqffvqpFixYoG3btqlatWqKiorS6dOnJUnNmzfXunXrJGVfmYuPj1dgYKA5jGH9+vUqW7asqlWrds26JiYmKiEhQT169FCPHj0UHx+vQ4cOSZLuu+8+nTp1SmvXrjX3P336tFasWKHo6GhJUnx8vPr166fHH39ce/fu1dtvv6358+dr6tSpNseZMGGCunbtqt27d+vBBx+U1WpVuXLl9PHHH2vv3r0aN26cxowZo48++sh8z4svvqi4uDjNmzdPmzZtUkpKyhVXwGNiYrRw4ULNnj1be/bs0fDhw9W3b1+tX7/+v35NBeKjjz5SeHi4wsLC1LdvX7377rsyrjJUZeTIkZo+fbq2bNmiUqVKqVOnTuaV+K1bt6pHjx7q1auXdu/erQkTJmjs2LFmoEZHR2vz5s1KTEw0y9uzZ4927dqlPn36SJLi4uI0btw4TZ06Vfv27dPzzz+vsWPHasGCBTdc/+joaC1dutT80ihJK1eu1IULF9S1a1dJOf/9PPPMM3rhhRe0b98+1alTR6mpqbr77ru1Zs0abd++Xe3atVOnTp3MoJGkfv366ejRo1q3bp0+/fRTzZkzRydOnLAp97777tOJEyf09ddfa+vWrapfv75atWpl/hsqbMqXL6+AgABziYmJuep+jRs31vz587VixQrNmjVLBw8eVNOmTXXu3DklJSXJ09NTgYGBNu8JDg5WUlJSAZwFnBG5Rq5dRq6RawXJJXPNABysf//+hru7u1GsWDGjWLFihiSjTJkyxtatW8193nvvPSMsLMywWq3murS0NMPHx8dYuXKlWU7nzp0NwzCM1NRUw8PDw4iLizP3T09PN0JDQ41p06YZhmEYX375pREQEGBkZmYaO3bsMEJCQozHH3/cGDVqlGEYhvHQQw8Zffr0uW7dx4wZY3Tp0sV83blzZ2P8+PE2rx988EHz9dtvv22EhoYaWVlZhmEYRqtWrYznn3/epsz33nvPKFOmjPlakvHEE09ctx6GYRhDhgwxunfvbr4ODg42XnrpJfN1ZmamUaFCBfNndOnSJaNo0aLGd999Z1POwIEDjd69e//n8QrCHXfcYbz22muGYRhGRkaGUbJkSWPt2rXm9rVr1xqSjA8//NBcd+rUKcPHx8dYvHixYRiG0adPH6NNmzY25Y4cOdKoWbOm+bpu3brGpEmTzNejR482GjdubL6uWrWqsWjRIpsyJk+ebERGRt5w/S+/Xrhwobl/7969jZ49exqGkbPfz+Xz//zzz69bD8MwjFtuucWYMWOGYRiGsW/fPkOSsWXLFnP7r7/+akgyXn31VcMwDCM+Pt7w9/c3Ll26ZFNO1apVjbfffvs/j5efkpOTDUlGq4injKhaY/K8tIp4ypBkHDlyxEhOTjaXf5/7tZw5c8bw9/c35s6da8TFxRmenp5X7NOoUSPj6aeftvePAk6KXCPXroVcI9euhlz7Gz2ncAotW7bUjh07tGPHDm3evFlRUVFq3769ebV2586dOnDggPz8/OTr6ytfX18FBQXp0qVLNlcGL0tMTFRGRobuvPNOc52Hh4duu+027du3T5LMK0Lbt2/X+vXr1bx5c7Vo0cK86rx+/Xq1aNHimnXOysrSggUL1LdvX3Nd3759NX/+fHPIU3R0tD799FNzGEVcXJx69eolNzc387wmTZpknpOvr68GDRqkY8eO6cKFC2a5DRs2vOL4b775pho0aKBSpUrJ19dXc+bMMa8gJicn6/jx47rtttvM/d3d3dWgQQPz9YEDB3ThwgW1adPG5vgLFy686s+0oO3fv1+bN29W7969JWXfC9GzZ0+bIWaXRUZGmv8fFBSksLAw8/e8b98+m78DSbrzzjv166+/KisrS1L272nRokWSsnsbPvjgA7MX4Pz580pMTNTAgQNtfk5Tpky57s/pv+pfpEgR9ejRQ3FxceZxvvjiC/O4ufn9/PvvIzU1VSNGjFBERIQCAwPl6+urffv2mX8f+/fvV5EiRVS/fn3zPdWqVVPx4sXN1zt37lRqaqo5M9/l5eDBg07x9yEp+zlu9lok+fv72yxeXl45qkZgYKBq1KihAwcOKCQkROnp6VfMtHn8+HGFhITk6XThWsg1cu3fyDVy7T+Raypi9xKBG1CsWDGbYUZz585VQECA3nnnHU2ZMkWpqalq0KCB+YH3T6VKlbqhYwYGBqpu3bpat26dEhIS1KZNGzVr1kw9e/bUL7/8ol9//VXNmze/5vtXrlypP//884r7K7KysrRmzRq1adNGnTp1kmEYWr58uRo1aqT4+Hi9+uqr5r6pqamaOHHiVWc88/b2Nv+/WLFiNts+/PBDjRgxQtOnT1dkZKT8/Pz00ksv6Ycffsjx+V8edrN8+XKVLVvWZltOP7zyU2xsrDIzMxUaGmquMwxDXl5emjlzpgICAux2rN69e2vUqFHatm2bLl68qCNHjpi/18s/p3feeeeKe3jc3d3zVP/o6Gg1b95cJ06c0KpVq+Tj46N27drZHDcnv59//32MGDFCq1at0ssvv6xq1arJx8dH99577zWHCl5NamqqypQpY36p/ad/D+252aWmpioxMVH333+/GjRoIA8PD61Zs0bdu3eXlP2l6fDhwzZfNlH4kWvk2r+Ra+Saq3BkrtE4hVOyWCxyc3PTxYsXJUn169fX4sWLVbp0afn7+//n+6tWrSpPT09t2rRJFStWlJR9f8+WLVv0xBNPmPs1b95ca9eu1ebNmzV16lQFBQUpIiJCU6dOVZkyZVSjRo1rHiM2Nla9evXSs88+a7N+6tSpio2NVZs2beTt7a1u3bopLi5OBw4cUFhYmM1Vvfr162v//v3Xvf/najZt2qQ77rhDjz76qLnun1f9AgICFBwcrC1btqhZs2aSsr9cbNu2TfXq1ZMk1axZU15eXjp8+PB1v6w4QmZmphYuXKjp06erbdu2Ntu6dOmiDz74QI888oi57vvvv1eFChUkSWfOnNEvv/yiiIgISVJERIQ2bdpkU8amTZtUo0YNM4TLlSun5s2bKy4uThcvXlSbNm1UunRpSdn3VISGhuq3334zr/7aq/533HGHypcvr8WLF+vrr7/WfffdJw8PD0l5+/1s2rRJAwYMMO/xSU1NtZlkJSwsTJmZmdq+fbvZ63DgwAGdOXPG3Kd+/fpKSkpSkSJFVKlSpVwdv6DcyLPcrlVObowYMUKdOnVSxYoVdfToUY0fP17u7u7q3bu3AgICNHDgQD355JMKCgqSv7+/hg4dqsjISN1+++15ritcF7l2feQauXY95Fruy8kNZ8o1GqdwCmlpaeZN1WfOnNHMmTOVmpqqTp06ScoenvLSSy+pc+fOmjRpksqVK6dDhw7ps88+09NPP61y5crZlFesWDENHjxYI0eOVFBQkCpUqKBp06bpwoULGjhwoLlfixYtNGPGDJUqVcp82HCLFi00c+ZM3Xfffdes78mTJ7V06VJ9+eWXqlWrls22fv36qWvXrjp9+rSCgoIUHR2tjh07as+ePTZDpSRp3Lhx6tixoypUqKB7771Xbm5u2rlzp3766SdNmTLlmsevXr26Fi5cqJUrV6py5cp67733tGXLFlWuXNncZ+jQoYqJiVG1atUUHh6uGTNm6MyZM7JYLJIkPz8/jRgxQsOHD5fValWTJk2UnJysTZs2yd/fX/3797/m8fPbsmXLdObMGQ0cOPCKK8ndu3dXbGysTYhPmjRJJUqUUHBwsJ599lmVLFnSnL3xqaeeUqNGjTR58mT17NlTCQkJmjlz5hWzEkZHR2v8+PFKT0+36QWQpIkTJ2rYsGEKCAhQu3btlJaWph9//FFnzpzRk08+maf69+nTR7Nnz9Yvv/xiM8lIXn4/1atX12effaZOnTrJYrFo7NixNrNrhoeHq3Xr1nr44Yc1a9YseXh46KmnnpKPj4/599G6dWtFRkaqS5cumjZtmmrUqKGjR49q+fLl6tq161WH5BW4G3yW21XLyYU//vhDvXv31qlTp1SqVCk1adJE33//vdnb9eqrr8rNzU3du3dXWlqaoqKicjQLJgoXco1c+ydyjVzLEXKNCZHgeP379zckmYufn5/RqFEj45NPPrHZ79ixY0a/fv2MkiVLGl5eXkaVKlWMQYMGGcnJyWY5lydFMAzDuHjxojF06FBz/zvvvNPYvHmzTZmnTp0yLBaLebO+YRjGkiVLDEnG7Nmzr1nnl19+2QgMDDTS09Ov2JaWlmYEBgYar7/+umEYhpGVlWWUKVPGkGQkJiZesf+KFSuMO+64w/Dx8TH8/f2N2267zZgzZ465XZKxZMkSm/dcunTJGDBggBEQEGAEBgYagwcPNp555hmjbt265j4ZGRnGY489Zvj7+xvFixc3Ro0aZdx3331Gr169zH2sVqvx2muvGWFhYYaHh4dRqlQpIyoqyli/fv01z70gdOzY0bj77ruvuu2HH34wJBk7d+40J05YunSpccsttxienp7GbbfdZuzcudPmPZ988olRs2ZNw8PDw6hQoYLNhBqXnTlzxvDy8jKKFi1qnDt37ortcXFxRr169QxPT0+jePHiRrNmzYzPPvssT/U3DMPYu3evIcmoWLGizcQohvHfv5/L53/mzBmb9x08eNBo2bKl4ePjY5QvX96YOXOm0bx5c+Pxxx839zl69KjRvn17w8vLy6hYsaKxaNEio3Tp0jZ/9ykpKcbQoUON0NBQw8PDwyhfvrwRHR1tHD58+KrnVlAuTxzRuvpwo134M3leWlcfbkgyP0uAvCLXyLV/I9eykWtXR679zWIY9mieA3B2VqtVERER6tGjhyZPnuzo6sDJ/PHHHypfvrxWr16tVq1aObo615WSkqKAgAC1rvqEirjn/T6yzKw0rU58TcnJyTkaXgnAOZBruB5yzTVzjWG9QCF16NAhffPNN2revLnS0tI0c+ZMHTx40HzGGW5u3377rVJTU1W7dm0dO3ZMTz/9tCpVqmTey+USHDT8CYBjkGu4HnLtX+W4KBqnQCHl5uam+fPna8SIETIMQ7Vq1dLq1avNCRVwc8vIyNCYMWP022+/yc/PT3fccYfi4uLMiSsAwNmQa7gecq1wYFgvAMClmMOfqgxTETc7DH+ypmn1b2+45PAnAIDrI9f+Rs8pAMA1MfwJAFCYkGtyc3QFAAAAAACg5xQA4Jqsl5/UYY9yAABwMHKNnlMAAAAAgOPROAVuYgMGDFCXLl3M1y1atNATTzxR4PVYt26dLBaLzp49e819LBaLPv/88xyXOWHCBNWrVy9P9fr9999lsVi0Y8eOPJWDfGJY7bcAKBTItesj15wcuUbjFHA2AwYMkMVikcVikaenp6pVq6ZJkyYpMzMz34/92Wef5fhB5jkJXiBfXZ44wh4LgHxDrgE5RK5xzyngjNq1a6d58+YpLS1NX331lYYMGSIPDw+NHj36in3T09Pl6elpl+MGBQXZpRwAAP6JXAOQE/ScAk7Iy8tLISEhqlixogYPHqzWrVvryy+/lPT3kKWpU6cqNDRUYWFhkqQjR46oR48eCgwMVFBQkDp37qzff//dLDMrK0tPPvmkAgMDVaJECT399NP692OO/z38KS0tTaNGjVL58uXl5eWlatWqKTY2Vr///rtatmwpSSpevLgsFosGDBggSbJarYqJiVHlypXl4+OjunXr6pNPPrE5zldffaUaNWrIx8dHLVu2tKlnTo0aNUo1atRQ0aJFVaVKFY0dO1YZGRlX7Pf222+rfPnyKlq0qHr06KHk5GSb7XPnzlVERIS8vb0VHh6ut956K9d1gYNYDfstAPIVufbfyDWQa/ScAi7Bx8dHp06dMl+vWbNG/v7+WrVqlSQpIyNDUVFRioyMVHx8vIoUKaIpU6aoXbt22rVrlzw9PTV9+nTNnz9f7777riIiIjR9+nQtWbJEd9111zWP269fPyUkJOiNN95Q3bp1dfDgQf31118qX768Pv30U3Xv3l379++Xv7+/fHx8JEkxMTF6//33NXv2bFWvXl0bNmxQ3759VapUKTVv3lxHjhxRt27dNGTIED388MP68ccf9dRTT+X6Z+Ln56f58+crNDRUu3fv1qBBg+Tn56enn37a3OfAgQP66KOPtHTpUqWkpGjgwIF69NFHFRcXJ0mKi4vTuHHjNHPmTN16663avn27Bg0apGLFiql///65rhMKGM+DA1wWuXYlcg3kGo1TwKkZhqE1a9Zo5cqVGjp0qLm+WLFimjt3rjns6f3335fVatXcuXNlsVgkSfPmzVNgYKDWrVuntm3b6rXXXtPo0aPVrVs3SdLs2bO1cuXKax77l19+0UcffaRVq1apdevWkqQqVaqY2y8PlSpdurQCAwMlZV+Rfv7557V69WpFRkaa79m4caPefvttNW/eXLNmzVLVqlU1ffp0SVJYWJh2796tF198MVc/m+eee878/0qVKmnEiBH68MMPbUL80qVLWrhwocqWLStJmjFjhjp06KDp06crJCRE48eP1/Tp082fSeXKlbV37169/fbbhDgA5ANy7drINYDGKeCUli1bJl9fX2VkZMhqtapPnz6aMGGCub127do29+Ps3LlTBw4ckJ+fn005ly5dUmJiopKTk3Xs2DE1btzY3FakSBE1bNjwiiFQl+3YsUPu7u5q3rx5jut94MABXbhwQW3atLFZn56erltvvVWStG/fPpt6SDIDPzcWL16sN954Q4mJiUpNTVVmZqb8/f1t9qlQoYIZ4JePY7VatX//fvn5+SkxMVEDBw7UoEGDzH0yMzMVEBCQ6/rAAQzZ6Qpz3osAcH3k2n8j10Cu0TgFnFLLli01a9YseXp6KjQ0VEWK2P5TLVasmM3r1NRUNWjQwBzW80+lSpW6oTpcHs6UG6mpqZKk5cuX24SnlH2/kb0kJCQoOjpaEydOVFRUlAICAvThhx+aV61zU9d33nnnii8V7u7udqsr8hHDnwCXQa5dH7kGSeSaaJwCTqlYsWKqVq1ajvevX7++Fi9erNKlS19xlfWyMmXK6IcfflCzZs0kZV9J3bp1q+rXr3/V/WvXri2r1ar169ebw5/+6fIV7qysLHNdzZo15eXlpcOHD1/zynRERIQ5CcZl33///X+f5D989913qlixop599llz3aFDh67Y7/Dhwzp69KhCQ0PN47i5uSksLEzBwcEKDQ3Vb7/9pujo6FwdHwCQO+Ta9ZFrQDZm6wUKgejoaJUsWVKdO3dWfHy8Dh48qHXr1mnYsGH6448/JEmPP/64XnjhBX3++ef6+eef9eijj173WW6VKlVS//799eCDD+rzzz83y/zoo48kSRUrVpTFYtGyZct08uRJpaamys/PTyNGjNDw4cO1YMECJSYmatu2bZoxY4YWLFggSXrkkUf066+/auTIkdq/f78WLVqk+fPn5+p8q1evrsOHD+vDDz9UYmKi3njjDS1ZsuSK/by9vdW/f3/t3LlT8fHxGjZsmHr06KGQkBBJ0sSJExUTE6M33nhDv/zyi3bv3q158+bplVdeyVV94CBWq/0WAE6FXCPXbkrkGo1ToDAoWrSoNmzYoAoVKqhbt26KiIjQwIEDdenSJfOK81NPPaX7779f/fv3V2RkpPz8/NS1a9frljtr1izde++9evTRRxUeHq5Bgwbp/PnzkqSyZctq4sSJeuaZZxQcHKzHHntMkjR58mSNHTtWMTExioiIULt27bR8+XJVrlxZUvb9Mp9++qk+//xz1a1bV7Nnz9bzzz+fq/O95557NHz4cD322GOqV6+evvvuO40dO/aK/apVq6Zu3brp7rvvVtu2bVWnTh2bKfUfeughzZ07V/PmzVPt2rXVvHlzzZ8/36wrAMAxyDVyDTcni3Gtu8YBAHBCKSkpCggIUOtSA1XEzfO/3/AfMq3pWn0yVsnJydccPggAQH4h1/7GPacAANfExBEAgMKEXGNYLwAAAADA8eg5BQC4JqshuzzMzeq6V5gBAIUIuUbjFADgmgzDKsPI+4yE9igDAIC8ItcY1gsAAAAAcAL0nAIAXJNh2GfokgtPHAEAKETINRqnAAAXZdjp3hwXDnEAQCFCrjGsFwAAAADgePScAgBck9UqWeww6YMLTxwBAChEyDUapwAAF8XwJwBAYUKuMawXAAAAAOB49JwCAFySYbXKsMPwJ1d+HhwAoPAg1+g5BQAAAAA4AXpOAQCuiXtzAACFCblG4xQA4KKshmS5uUMcAFCIkGsM6wUAAAAAOB49pwAA12QYkuzxPDjXvcIMAChEyDUapwAA12RYDRl2GP5kuHCIAwAKD3KNYb0AAAAAACdA4xQA4JoMq/2WG/Dmm2+qUqVK8vb2VuPGjbV582Y7nyAA4KZCrtE4BQC4JsNq2G3JrcWLF+vJJ5/U+PHjtW3bNtWtW1dRUVE6ceJEPpwpAOBmQK7ROAUAINdeeeUVDRo0SA888IBq1qyp2bNnq2jRonr33XcdXTUAAHLNWXKNxikAwDU5aPhTenq6tm7dqtatW5vr3Nzc1Lp1ayUkJNj7LAEANwtyjdl6AQCuKVMZkh0mJMxUhiQpJSXFZr2Xl5e8vLyu2P+vv/5SVlaWgoODbdYHBwfr559/znuFAAA3JXKNxikAwMV4enoqJCREG5O+sluZvr6+Kl++vM268ePHa8KECXY7BgAAV0Ou/Y3GKQDApXh7e+vgwYNKT0+3W5mGYchisdisu9rVZUkqWbKk3N3ddfz4cZv1x48fV0hIiN3qBAC4OZBrf6NxCgBwOd7e3vL29nbIsT09PdWgQQOtWbNGXbp0kSRZrVatWbNGjz32mEPqBABwbeRaNhqnAADk0pNPPqn+/furYcOGuu222/Taa6/p/PnzeuCBBxxdNQAAcs1Zco3GKQAAudSzZ0+dPHlS48aNU1JSkurVq6cVK1ZcMZkEAACuwFlyzWIYhh3mhAIAAAAA4MbxnFMAAAAAgMPROAUAAAAAOByNUwAAAACAw9E4BQAAAAA4HI1TAAAAAIDD0TgFAAAAADgcjVMAAAAAgMPROAUAAAAAOByNUwAAAACAw9E4BQAAAAA4HI1TAAAAAIDD0TgFAAAAADjc/wNN5t8iblBPygAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "_, ax = plt.subplots(1, 2, figsize=(10, 4), sharex=False, sharey=False)\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=[\"Below Average\", \"Above Average\"] \n", + " ).plot(ax=ax.flat[index])\n", + " disp.ax_.set_title(optimized_metrics.index[index])\n", + "\n", + "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.3)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В желтом квадрате мы видим значение 396, что обозначает количество правильно классифицированных объектов, отнесенных к классу \"Below Average\". Это свидетельствует о том, что модель успешно идентифицирует объекты этого класса, минимизируя количество ложных положительных срабатываний.\n", + "\n", + "В зеленом квадрате значение 124 указывает на количество правильно классифицированных объектов, отнесенных к классу \"Above Average\". Это также является показателем высокой точности модели в определении объектов данного класса." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Определение достижимого уровня качества модели для второй задачи (задача регрессии)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "__2. Прогнозирование цены закрытия акций:__\n", + "\n", + "\n", + "Описание: Оценить, какая будет цена закрытия акций Starbucks на следующий день или через несколько дней на основе исторических данных.\n", + "Целевая переменная: Цена закрытия (Close). (среднее значение)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Загрузка данных и создание целевой переменной" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Среднее значение поля 'Networth': 4.8607499999999995\n", + " Rank Name Networth Age Country \\\n", + "0 1 Elon Musk 219.0 50 United States \n", + "1 2 Jeff Bezos 171.0 58 United States \n", + "2 3 Bernard Arnault & family 158.0 73 France \n", + "3 4 Bill Gates 129.0 66 United States \n", + "4 5 Warren Buffett 118.0 91 United States \n", + "\n", + " Source Industry above_average_networth \n", + "0 Tesla, SpaceX Automotive 1 \n", + "1 Amazon Technology 1 \n", + "2 LVMH Fashion & Retail 1 \n", + "3 Microsoft Technology 1 \n", + "4 Berkshire Hathaway Finance & Investments 1 \n", + "Статистическое описание DataFrame:\n", + " Rank Networth Age above_average_networth\n", + "count 2600.000000 2600.000000 2600.000000 2600.000000\n", + "mean 1269.570769 4.860750 64.271923 0.225000\n", + "std 728.146364 10.659671 13.220607 0.417663\n", + "min 1.000000 1.000000 19.000000 0.000000\n", + "25% 637.000000 1.500000 55.000000 0.000000\n", + "50% 1292.000000 2.400000 64.000000 0.000000\n", + "75% 1929.000000 4.500000 74.000000 0.000000\n", + "max 2578.000000 219.000000 100.000000 1.000000\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn import set_config\n", + "\n", + "set_config(transform_output=\"pandas\")\n", + "\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "# Опция для настройки генерации случайных чисел (если это нужно для других частей кода)\n", + "random_state = 42\n", + "\n", + "# Вычисление среднего значения поля \"Networth\"\n", + "average_networth = df['Networth'].mean()\n", + "print(f\"Среднее значение поля 'Networth': {average_networth}\")\n", + "\n", + "# Создание новой колонки, указывающей, выше или ниже среднего значение чистого состояния\n", + "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", + "\n", + "# Вывод DataFrame с новой колонкой\n", + "print(df.head())\n", + "\n", + "# Примерный анализ данных\n", + "print(\"Статистическое описание DataFrame:\")\n", + "print(df.describe())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Разделение набора данных на обучающую и тестовые выборки (80/20) для задачи регрессии\n", + "\n", + "Целевой признак -- above_average_networth" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "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", + "
RankNameNetworthAgeCountrySourceIndustry
582579Alexandra Schoerghuber & family4.963Germanyreal estateReal Estate
4849He Xiangjian28.379Chinahome appliancesManufacturing
17721729Bruce Mathieson1.778AustraliahotelsFood & Beverage
964951Pansy Ho3.259Hong KongcasinosGambling & Casinos
22132190Sasson Dayan & family1.382BrazilbankingFinance & Investments
........................
16381579Wang Chou-hsiong1.981TaiwanfootwearManufacturing
10951096Jose Joao Abdalla Filho2.876BrazilinvestmentsFinance & Investments
11301096Lin Chen-hai2.875Taiwanreal estateReal Estate
12941292Banwari Lal Bawri2.469IndiapharmaceuticalsHealthcare
860851Kuok Khoon Hong3.572Singaporepalm oilManufacturing
\n", + "

2080 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " Rank Name Networth Age Country \\\n", + "582 579 Alexandra Schoerghuber & family 4.9 63 Germany \n", + "48 49 He Xiangjian 28.3 79 China \n", + "1772 1729 Bruce Mathieson 1.7 78 Australia \n", + "964 951 Pansy Ho 3.2 59 Hong Kong \n", + "2213 2190 Sasson Dayan & family 1.3 82 Brazil \n", + "... ... ... ... ... ... \n", + "1638 1579 Wang Chou-hsiong 1.9 81 Taiwan \n", + "1095 1096 Jose Joao Abdalla Filho 2.8 76 Brazil \n", + "1130 1096 Lin Chen-hai 2.8 75 Taiwan \n", + "1294 1292 Banwari Lal Bawri 2.4 69 India \n", + "860 851 Kuok Khoon Hong 3.5 72 Singapore \n", + "\n", + " Source Industry \n", + "582 real estate Real Estate \n", + "48 home appliances Manufacturing \n", + "1772 hotels Food & Beverage \n", + "964 casinos Gambling & Casinos \n", + "2213 banking Finance & Investments \n", + "... ... ... \n", + "1638 footwear Manufacturing \n", + "1095 investments Finance & Investments \n", + "1130 real estate Real Estate \n", + "1294 pharmaceuticals Healthcare \n", + "860 palm oil Manufacturing \n", + "\n", + "[2080 rows x 7 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", + "
above_average_networth
5821
481
17720
9640
22130
......
16380
10950
11300
12940
8600
\n", + "

2080 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " above_average_networth\n", + "582 1\n", + "48 1\n", + "1772 0\n", + "964 0\n", + "2213 0\n", + "... ...\n", + "1638 0\n", + "1095 0\n", + "1130 0\n", + "1294 0\n", + "860 0\n", + "\n", + "[2080 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", + "
RankNameNetworthAgeCountrySourceIndustry
15931579Guangming Fu & family1.968ChinapoultryFood & Beverage
196197Leon Black10.070United Statesprivate equityFinance & Investments
239235Zong Qinghou8.876ChinabeveragesFood & Beverage
21262076Kurt Krieger1.474Germanyfurniture retailingFashion & Retail
15871579Chen Kaichen1.964Chinahousehold chemicalsManufacturing
........................
17781729Jorge Perez1.772United Statesreal estateReal Estate
166167Brian Chesky11.540United StatesAirbnbTechnology
949913Zhong Ruonong & family3.359ChinaelectronicsManufacturing
4950Miriam Adelson27.576United StatescasinosGambling & Casinos
25112448Lou Boliang1.158United StatespharmaceuticalsHealthcare
\n", + "

520 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " Rank Name Networth Age Country \\\n", + "1593 1579 Guangming Fu & family 1.9 68 China \n", + "196 197 Leon Black 10.0 70 United States \n", + "239 235 Zong Qinghou 8.8 76 China \n", + "2126 2076 Kurt Krieger 1.4 74 Germany \n", + "1587 1579 Chen Kaichen 1.9 64 China \n", + "... ... ... ... ... ... \n", + "1778 1729 Jorge Perez 1.7 72 United States \n", + "166 167 Brian Chesky 11.5 40 United States \n", + "949 913 Zhong Ruonong & family 3.3 59 China \n", + "49 50 Miriam Adelson 27.5 76 United States \n", + "2511 2448 Lou Boliang 1.1 58 United States \n", + "\n", + " Source Industry \n", + "1593 poultry Food & Beverage \n", + "196 private equity Finance & Investments \n", + "239 beverages Food & Beverage \n", + "2126 furniture retailing Fashion & Retail \n", + "1587 household chemicals Manufacturing \n", + "... ... ... \n", + "1778 real estate Real Estate \n", + "166 Airbnb Technology \n", + "949 electronics Manufacturing \n", + "49 casinos Gambling & Casinos \n", + "2511 pharmaceuticals Healthcare \n", + "\n", + "[520 rows x 7 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", + "
above_average_networth
15930
1961
2391
21260
15870
......
17780
1661
9490
491
25110
\n", + "

520 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " above_average_networth\n", + "1593 0\n", + "196 1\n", + "239 1\n", + "2126 0\n", + "1587 0\n", + "... ...\n", + "1778 0\n", + "166 1\n", + "949 0\n", + "49 1\n", + "2511 0\n", + "\n", + "[520 rows x 1 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from typing import Tuple\n", + "import pandas as pd\n", + "from pandas import DataFrame\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "def split_into_train_test(\n", + " df_input: DataFrame,\n", + " target_colname: str = \"above_average_networth\", \n", + " frac_train: float = 0.8,\n", + " random_state: int = None,\n", + ") -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame]:\n", + " \n", + " if not (0 < frac_train < 1):\n", + " raise ValueError(\"Fraction must be between 0 and 1.\")\n", + " \n", + " # Проверка наличия целевого признака\n", + " if target_colname not in df_input.columns:\n", + " raise ValueError(f\"{target_colname} is not a column in the DataFrame.\")\n", + " \n", + " # Разделяем данные на признаки и целевую переменную\n", + " X = df_input.drop(columns=[target_colname]) # Признаки\n", + " y = df_input[[target_colname]] # Целевая переменная\n", + "\n", + " # Разделяем данные на обучающую и тестовую выборки\n", + " X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y,\n", + " test_size=(1.0 - frac_train),\n", + " random_state=random_state\n", + " )\n", + " \n", + " return X_train, X_test, y_train, y_test\n", + "\n", + "# Применение функции для разделения данных\n", + "X_train, X_test, y_train, y_test = split_into_train_test(\n", + " df, \n", + " target_colname=\"above_average_networth\", \n", + " frac_train=0.8, \n", + " random_state=42 \n", + ")\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)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Формирование конвейера для решения задачи регрессии" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Networth Age Country_Argentina Country_Australia \\\n", + "0 20.092595 -1.079729 0.0 0.0 \n", + "1 15.588775 -0.474496 0.0 0.0 \n", + "2 14.368991 0.660314 0.0 0.0 \n", + "3 11.647933 0.130736 0.0 0.0 \n", + "4 10.615808 2.022087 0.0 0.0 \n", + "... ... ... ... ... \n", + "2595 -0.362253 1.189893 0.0 0.0 \n", + "2596 -0.362253 1.341201 0.0 0.0 \n", + "2597 -0.362253 0.509006 0.0 0.0 \n", + "2598 -0.362253 0.282044 0.0 0.0 \n", + "2599 -0.362253 0.357698 0.0 0.0 \n", + "\n", + " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", + "0 0.0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 \n", + "... ... ... ... ... \n", + "2595 0.0 0.0 0.0 0.0 \n", + "2596 0.0 0.0 0.0 0.0 \n", + "2597 0.0 0.0 0.0 0.0 \n", + "2598 0.0 0.0 0.0 0.0 \n", + "2599 0.0 0.0 0.0 0.0 \n", + "\n", + " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", + "0 0.0 0.0 ... 0.0 \n", + "1 0.0 0.0 ... 0.0 \n", + "2 0.0 0.0 ... 0.0 \n", + "3 0.0 0.0 ... 0.0 \n", + "4 0.0 0.0 ... 0.0 \n", + "... ... ... ... ... \n", + "2595 0.0 0.0 ... 0.0 \n", + "2596 0.0 0.0 ... 0.0 \n", + "2597 0.0 0.0 ... 0.0 \n", + "2598 0.0 0.0 ... 0.0 \n", + "2599 0.0 0.0 ... 0.0 \n", + "\n", + " Industry_Media & Entertainment Industry_Metals & Mining \\\n", + "0 0.0 0.0 \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "... ... ... \n", + "2595 0.0 0.0 \n", + "2596 0.0 0.0 \n", + "2597 0.0 0.0 \n", + "2598 0.0 0.0 \n", + "2599 0.0 0.0 \n", + "\n", + " Industry_Real Estate Industry_Service Industry_Sports \\\n", + "0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "2595 0.0 0.0 0.0 \n", + "2596 0.0 0.0 0.0 \n", + "2597 0.0 0.0 0.0 \n", + "2598 0.0 0.0 0.0 \n", + "2599 0.0 0.0 0.0 \n", + "\n", + " Industry_Technology Industry_Telecom Industry_diversified \\\n", + "0 0.0 0.0 0.0 \n", + "1 1.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 \n", + "3 1.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "... ... ... ... \n", + "2595 0.0 0.0 0.0 \n", + "2596 0.0 0.0 0.0 \n", + "2597 0.0 0.0 0.0 \n", + "2598 0.0 0.0 0.0 \n", + "2599 0.0 0.0 0.0 \n", + "\n", + " Networth_per_Age \n", + "0 -18.608929 \n", + "1 -32.853309 \n", + "2 21.760834 \n", + "3 89.095063 \n", + "4 5.249926 \n", + "... ... \n", + "2595 -0.304441 \n", + "2596 -0.270096 \n", + "2597 -0.711686 \n", + "2598 -1.284383 \n", + "2599 -1.012732 \n", + "\n", + "[2600 rows x 988 columns]\n", + "(2600, 988)\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from sklearn.base import BaseEstimator, TransformerMixin\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.impute import SimpleImputer\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.ensemble import RandomForestRegressor \n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.pipeline import make_pipeline\n", + "\n", + "class ForbesBillionairesFeatures(BaseEstimator, TransformerMixin): \n", + " def __init__(self):\n", + " pass\n", + "\n", + " def fit(self, X, y=None):\n", + " return self\n", + "\n", + " def transform(self, X, y=None):\n", + " X[\"Networth_per_Age\"] = X[\"Networth\"] / X[\"Age\"]\n", + " return X\n", + "\n", + " def get_feature_names_out(self, features_in):\n", + " return np.append(features_in, [\"Networth_per_Age\"], axis=0) \n", + "\n", + "# Определите признаки для вашей задачи\n", + "columns_to_drop = [\"Rank \", \"Name\"] \n", + "num_columns = [\"Networth\", \"Age\"] \n", + "cat_columns = [\"Country\", \"Source\", \"Industry\"]\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", + "# Преобразование категориальных признаков\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", + "# Формирование конвейера\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", + " ],\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", + "# Окончательный конвейер\n", + "pipeline_end = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " (\"drop_columns\", drop_columns),\n", + " (\"custom_features\", ForbesBillionairesFeatures()), # Добавляем custom_features\n", + " ]\n", + ")\n", + "\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", + "\n", + "# Создаем целевой признак\n", + "average_networth = df['Networth'].mean()\n", + "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", + "\n", + "# Подготовка данных\n", + "X = df.drop('above_average_networth', axis=1)\n", + "y = df['above_average_networth'].values.ravel()\n", + "\n", + "# Применение конвейера\n", + "X_processed = pipeline_end.fit_transform(X)\n", + "\n", + "# Вывод\n", + "print(X_processed)\n", + "print(X_processed.shape)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Формирование набора моделей для регрессии" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\base.py:1473: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", + " return fit_method(estimator, *args, **kwargs)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\base.py:1473: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", + " return fit_method(estimator, *args, **kwargs)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\base.py:1473: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", + " return fit_method(estimator, *args, **kwargs)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\base.py:1473: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", + " return fit_method(estimator, *args, **kwargs)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\base.py:1473: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n", + " return fit_method(estimator, *args, **kwargs)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\ensemble\\_gb.py:668: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True) # TODO: Is this still required?\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\ensemble\\_gb.py:668: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True) # TODO: Is this still required?\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\ensemble\\_gb.py:668: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True) # TODO: Is this still required?\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\ensemble\\_gb.py:668: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True) # TODO: Is this still required?\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\ensemble\\_gb.py:668: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True) # TODO: Is this still required?\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\utils\\validation.py:1339: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\utils\\validation.py:1339: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\utils\\validation.py:1339: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\utils\\validation.py:1339: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True)\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\utils\\validation.py:1339: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", + " y = column_or_1d(y, warn=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Random Forest: Mean Score = 0.9999449765688064, Standard Deviation = 0.00010860474979394001\n", + "Linear Regression: Mean Score = -5.286122247142867e+21, Standard Deviation = 9.978968848315854e+21\n", + "Gradient Boosting: Mean Score = 0.9999999992916644, Standard Deviation = 2.7301021406313204e-12\n", + "Support Vector Regression: Mean Score = 0.6826855358064324, Standard Deviation = 0.020395315184745886\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "from sklearn.svm import SVR\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "def train_multiple_models(X, y, models):\n", + " results = {}\n", + " for model_name, model in models.items():\n", + " # Создаем конвейер для каждой модели\n", + " model_pipeline = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " (\"drop_columns\", drop_columns),\n", + " (\"model\", model) # Используем текущую модель\n", + " ]\n", + " )\n", + " \n", + " # Обучаем модель и вычисляем кросс-валидацию\n", + " scores = cross_val_score(model_pipeline, X, y, cv=5) # 5-кратная кросс-валидация\n", + " results[model_name] = {\n", + " \"mean_score\": scores.mean(),\n", + " \"std_dev\": scores.std()\n", + " }\n", + " \n", + " return results\n", + "\n", + "models = {\n", + " \"Random Forest\": RandomForestRegressor(),\n", + " \"Linear Regression\": LinearRegression(),\n", + " \"Gradient Boosting\": GradientBoostingRegressor(),\n", + " \"Support Vector Regression\": SVR()\n", + "}\n", + "\n", + "results = train_multiple_models(X_train, y_train, models)\n", + "\n", + "# Вывод результатов\n", + "for model_name, scores in results.items():\n", + " print(f\"{model_name}: Mean Score = {scores['mean_score']}, Standard Deviation = {scores['std_dev']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- Random Forest показала очень высокое среднее значение, близкое к 1, что указывает на ее высокую точность в предсказании. Стандартное отклонение также очень низкое, что говорит о стабильности модели.\n", + "- Линейная регрессия показала очень низкое среднее значение с огромным отрицательным числом, что указывает на ее неэффективность в данной задаче. Стандартное отклонение также очень высокое, что говорит о нестабильности модели.\n", + "- Gradient Boosting показала практически идеальное среднее значение, близкое к 1, что указывает на ее высокую точность в предсказании. Стандартное отклонение практически равно нулю, что говорит о чрезвычайной стабильности модели.\n", + "- Support Vector Regression показала среднее значение около 0.68, что указывает на ее умеренную точность в предсказании. Стандартное отклонение относительно низкое, что говорит о стабильности модели, но она все же уступает Random Forest и Gradient Boosting." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Обучение моделей на обучающем наборе данных и оценка на тестовом для регрессии" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: logistic\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE (train): 0.0125\n", + "MSE (test): 0.04038461538461539\n", + "MAE (train): 0.0125\n", + "MAE (test): 0.04038461538461539\n", + "R2 (train): 0.9275415718173158\n", + "R2 (test): 0.7776148582600195\n", + "STD (train): 0.11110243021644485\n", + "STD (test): 0.19685959012669935\n", + "----------------------------------------\n", + "Model: ridge\n", + "MSE (train): 0.004326923076923077\n", + "MSE (test): 0.013461538461538462\n", + "MAE (train): 0.004326923076923077\n", + "MAE (test): 0.013461538461538462\n", + "R2 (train): 0.9749182363983017\n", + "R2 (test): 0.9258716194200065\n", + "STD (train): 0.0656368860749005\n", + "STD (test): 0.11588034534756023\n", + "----------------------------------------\n", + "Model: decision_tree\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE (train): 0.0\n", + "MSE (test): 0.0\n", + "MAE (train): 0.0\n", + "MAE (test): 0.0\n", + "R2 (train): 1.0\n", + "R2 (test): 1.0\n", + "STD (train): 0.0\n", + "STD (test): 0.0\n", + "----------------------------------------\n", + "Model: knn\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE (train): 0.09278846153846154\n", + "MSE (test): 0.15384615384615385\n", + "MAE (train): 0.09278846153846154\n", + "MAE (test): 0.15384615384615385\n", + "R2 (train): 0.4621355138746903\n", + "R2 (test): 0.1528185076572175\n", + "STD (train): 0.29276240884468824\n", + "STD (test): 0.3684085396282311\n", + "----------------------------------------\n", + "Model: naive_bayes\n", + "MSE (train): 0.37740384615384615\n", + "MSE (test): 0.6096153846153847\n", + "MAE (train): 0.37740384615384615\n", + "MAE (test): 0.6096153846153847\n", + "R2 (train): -1.1876871585925808\n", + "R2 (test): -2.3569566634082757\n", + "STD (train): 0.4847372309428379\n", + "STD (test): 0.5672229402142737\n", + "----------------------------------------\n", + "Model: gradient_boosting\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE (train): 0.0\n", + "MSE (test): 0.0\n", + "MAE (train): 0.0\n", + "MAE (test): 0.0\n", + "R2 (train): 1.0\n", + "R2 (test): 1.0\n", + "STD (train): 0.0\n", + "STD (test): 0.0\n", + "----------------------------------------\n", + "Model: random_forest\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE (train): 0.0\n", + "MSE (test): 0.0\n", + "MAE (train): 0.0\n", + "MAE (test): 0.0\n", + "R2 (train): 1.0\n", + "R2 (test): 1.0\n", + "STD (train): 0.0\n", + "STD (test): 0.0\n", + "----------------------------------------\n", + "Model: mlp\n", + "MSE (train): 0.06778846153846153\n", + "MSE (test): 0.12692307692307692\n", + "MAE (train): 0.06778846153846153\n", + "MAE (test): 0.12692307692307692\n", + "R2 (train): 0.6070523702400588\n", + "R2 (test): 0.30107526881720437\n", + "STD (train): 0.2521427220700598\n", + "STD (test): 0.3370600353877945\n", + "----------------------------------------\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from sklearn import metrics\n", + "from sklearn.pipeline import Pipeline\n", + "\n", + "# Проверка наличия необходимых переменных\n", + "if 'class_models' not in locals():\n", + " raise ValueError(\"class_models is not defined\")\n", + "if 'X_train' not in locals() or 'X_test' not in locals() or 'y_train' not in locals() or 'y_test' not in locals():\n", + " raise ValueError(\"Train/test data is not defined\")\n", + "\n", + "\n", + "y_train = np.ravel(y_train) \n", + "y_test = np.ravel(y_test) \n", + "\n", + "# Инициализация списка для хранения результатов\n", + "results = []\n", + "\n", + "# Проход по моделям и оценка их качества\n", + "for model_name in class_models.keys():\n", + " print(f\"Model: {model_name}\")\n", + " \n", + " # Извлечение модели из словаря\n", + " model = class_models[model_name][\"model\"]\n", + " \n", + " # Создание пайплайна\n", + " model_pipeline = Pipeline([(\"pipeline\", pipeline_end), (\"model\", model)])\n", + " \n", + " # Обучение модели\n", + " model_pipeline.fit(X_train, y_train)\n", + "\n", + " # Предсказание для обучающей и тестовой выборки\n", + " y_train_predict = model_pipeline.predict(X_train)\n", + " y_test_predict = model_pipeline.predict(X_test)\n", + "\n", + " # Сохранение пайплайна и предсказаний\n", + " class_models[model_name][\"pipeline\"] = model_pipeline\n", + " class_models[model_name][\"preds\"] = y_test_predict\n", + "\n", + " # Вычисление метрик для регрессии\n", + " class_models[model_name][\"MSE_train\"] = metrics.mean_squared_error(y_train, y_train_predict)\n", + " class_models[model_name][\"MSE_test\"] = metrics.mean_squared_error(y_test, y_test_predict)\n", + " class_models[model_name][\"MAE_train\"] = metrics.mean_absolute_error(y_train, y_train_predict)\n", + " class_models[model_name][\"MAE_test\"] = metrics.mean_absolute_error(y_test, y_test_predict)\n", + " class_models[model_name][\"R2_train\"] = metrics.r2_score(y_train, y_train_predict)\n", + " class_models[model_name][\"R2_test\"] = metrics.r2_score(y_test, y_test_predict)\n", + "\n", + " # Дополнительные метрики\n", + " class_models[model_name][\"STD_train\"] = np.std(y_train - y_train_predict)\n", + " class_models[model_name][\"STD_test\"] = np.std(y_test - y_test_predict)\n", + "\n", + " # Вывод результатов для текущей модели\n", + " print(f\"MSE (train): {class_models[model_name]['MSE_train']}\")\n", + " print(f\"MSE (test): {class_models[model_name]['MSE_test']}\")\n", + " print(f\"MAE (train): {class_models[model_name]['MAE_train']}\")\n", + " print(f\"MAE (test): {class_models[model_name]['MAE_test']}\")\n", + " print(f\"R2 (train): {class_models[model_name]['R2_train']}\")\n", + " print(f\"R2 (test): {class_models[model_name]['R2_test']}\")\n", + " print(f\"STD (train): {class_models[model_name]['STD_train']}\")\n", + " print(f\"STD (test): {class_models[model_name]['STD_test']}\")\n", + " print(\"-\" * 40) # Разделитель для разных моделей" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Пример использования обученной модели (конвейера регрессии) для предсказания" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: RandomForest\n", + "MSE (train): 24.028673442957558\n", + "MSE (test): 68.96006650623248\n", + "MAE (train): 1.548185999451937\n", + "MAE (test): 3.372747412240537\n", + "R2 (train): 0.8231149198653249\n", + "R2 (test): -1.9013866015383956\n", + "----------------------------------------\n", + "Прогнозируемое чистое состояние: 1.3689999999999998\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1, 2] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn import metrics\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.ensemble import RandomForestRegressor \n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.impute import SimpleImputer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "# 1. Загрузка данных\n", + "data = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\") \n", + "\n", + "# 2. Подготовка данных для прогноза\n", + "average_networth = data['Networth'].mean()\n", + "data['above_average_networth'] = (data['Networth'] > average_networth).astype(int) \n", + "\n", + "# Предикторы и целевая переменная\n", + "X = data.drop('Networth', axis=1) \n", + "y = data['Networth']\n", + "\n", + "# 3. Инициализация модели и пайплайна\n", + "class_models = {\n", + " \"RandomForest\": {\n", + " \"model\": RandomForestRegressor(n_estimators=100, random_state=42),\n", + " }\n", + "}\n", + "\n", + "# Предобработка признаков\n", + "num_columns = ['Age']\n", + "cat_columns = ['Country', 'Source', 'Industry']\n", + "\n", + "# Преобразование числовых признаков\n", + "num_transformer = Pipeline(steps=[\n", + " ('imputer', SimpleImputer(strategy='median')),\n", + " ('scaler', StandardScaler())\n", + "])\n", + "\n", + "# Преобразование категориальных признаков\n", + "cat_transformer = Pipeline(steps=[\n", + " ('imputer', SimpleImputer(strategy='constant', fill_value='unknown')),\n", + " ('onehot', OneHotEncoder(handle_unknown='ignore', sparse_output=False, drop=\"first\"))\n", + "])\n", + "\n", + "# Создание конвейера предобработки\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', num_transformer, num_columns),\n", + " ('cat', cat_transformer, cat_columns)\n", + " ])\n", + "\n", + "# Создание конвейера модели\n", + "pipeline_end = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " # ('model', model) # Модель добавляется в цикле\n", + "])\n", + "\n", + "results = []\n", + "\n", + "# 4. Обучение модели и оценка\n", + "for model_name in class_models.keys():\n", + " print(f\"Model: {model_name}\")\n", + "\n", + " model = class_models[model_name][\"model\"]\n", + " model_pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + "\n", + " # Разделение данных\n", + " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", + "\n", + " # Обучение модели\n", + " model_pipeline.fit(X_train, y_train)\n", + "\n", + " # Предсказание\n", + " y_train_predict = model_pipeline.predict(X_train)\n", + " y_test_predict = model_pipeline.predict(X_test)\n", + "\n", + " # Сохранение результатов\n", + " class_models[model_name][\"preds\"] = y_test_predict\n", + "\n", + " # Вычисление метрик\n", + " class_models[model_name][\"MSE_train\"] = metrics.mean_squared_error(y_train, y_train_predict)\n", + " class_models[model_name][\"MSE_test\"] = metrics.mean_squared_error(y_test, y_test_predict)\n", + " class_models[model_name][\"MAE_train\"] = metrics.mean_absolute_error(y_train, y_train_predict)\n", + " class_models[model_name][\"MAE_test\"] = metrics.mean_absolute_error(y_test, y_test_predict)\n", + " class_models[model_name][\"R2_train\"] = metrics.r2_score(y_train, y_train_predict)\n", + " class_models[model_name][\"R2_test\"] = metrics.r2_score(y_test, y_test_predict)\n", + "\n", + " # Вывод результатов\n", + " print(f\"MSE (train): {class_models[model_name]['MSE_train']}\")\n", + " print(f\"MSE (test): {class_models[model_name]['MSE_test']}\")\n", + " print(f\"MAE (train): {class_models[model_name]['MAE_train']}\")\n", + " print(f\"MAE (test): {class_models[model_name]['MAE_test']}\")\n", + " print(f\"R2 (train): {class_models[model_name]['R2_train']}\")\n", + " print(f\"R2 (test): {class_models[model_name]['R2_test']}\")\n", + " print(\"-\" * 40)\n", + "\n", + "# Прогнозирование чистого состояния для нового миллиардера\n", + "new_billionaire_data = pd.DataFrame({\n", + " 'Age': [50],\n", + " 'Country': ['USA'],\n", + " 'Source': ['Self Made'], \n", + " 'Industry': ['Technology'], \n", + "})\n", + "\n", + "predicted_networth = model_pipeline.predict(new_billionaire_data)\n", + "print(f\"Прогнозируемое чистое состояние: {predicted_networth[0]}\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Подбор гиперпараметров методом поиска по сетке" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 3 folds for each of 36 candidates, totalling 108 fits\n", + "Лучшие параметры: {'max_depth': 30, 'min_samples_split': 2, 'n_estimators': 100}\n", + "Лучший результат (MSE): 5.88542132388105\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn import metrics\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.model_selection import train_test_split, GridSearchCV\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.preprocessing import StandardScaler, OneHotEncoder, LabelEncoder\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.impute import SimpleImputer\n", + "\n", + "# Удаление строк с пропущенными значениями (если необходимо)\n", + "df = df.dropna()\n", + "\n", + "# Создание целевой переменной (Networth)\n", + "target = df['Networth']\n", + "\n", + "# Удаление целевой переменной из исходных данных\n", + "features = df.drop(columns=['Networth'])\n", + "\n", + "# Удаление столбцов, которые не будут использоваться (например, имена)\n", + "features = features.drop(columns=['Name'])\n", + "\n", + "# Определение столбцов для обработки\n", + "num_columns = features.select_dtypes(include=['number']).columns\n", + "cat_columns = features.select_dtypes(include=['object']).columns\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", + "# Препроцессинг категориальных столбцов\n", + "cat_imputer = SimpleImputer(strategy=\"constant\", fill_value=\"unknown\") # Используем '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", + "# Объединение препроцессинга\n", + "features_preprocessing = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"preprocessing_num\", preprocessing_num, num_columns),\n", + " (\"preprocessing_cat\", preprocessing_cat, cat_columns),\n", + " ],\n", + " remainder=\"passthrough\"\n", + ")\n", + "\n", + "# Создание финального пайплайна\n", + "pipeline_end = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " ]\n", + ")\n", + "\n", + "# Разделение данных на обучающую и тестовую выборки\n", + "X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)\n", + "\n", + "# Применение пайплайна к данным\n", + "X_train_processed = pipeline_end.fit_transform(X_train)\n", + "X_test_processed = pipeline_end.transform(X_test)\n", + "\n", + "# 2. Создание и настройка модели случайного леса\n", + "model = RandomForestRegressor()\n", + "\n", + "# Установка параметров для поиска по сетке\n", + "param_grid = {\n", + " 'n_estimators': [50, 100, 200], # Количество деревьев\n", + " 'max_depth': [None, 10, 20, 30], # Максимальная глубина дерева\n", + " 'min_samples_split': [2, 5, 10] # Минимальное количество образцов для разбиения узла\n", + "}\n", + "\n", + "# 3. Подбор гиперпараметров с помощью Grid Search\n", + "grid_search = GridSearchCV(estimator=model, param_grid=param_grid,\n", + " scoring='neg_mean_squared_error', cv=3, n_jobs=-1, verbose=2)\n", + "\n", + "# Обучение модели на тренировочных данных\n", + "grid_search.fit(X_train_processed, y_train)\n", + "\n", + "# 4. Результаты подбора гиперпараметров\n", + "print(\"Лучшие параметры:\", grid_search.best_params_)\n", + "print(\"Лучший результат (MSE):\", -grid_search.best_score_) # Меняем знак, так как берем отрицательное значение среднеквадратичной ошибки" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Обучение модели с новыми гиперпараметрами и сравнение новых и старых данных" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 3 folds for each of 36 candidates, totalling 108 fits\n", + "Старые параметры: {'max_depth': 20, 'min_samples_split': 2, 'n_estimators': 50}\n", + "Лучший результат (MSE) на старых параметрах: 5.760387482085847\n", + "\n", + "Новые параметры: {'max_depth': 10, 'min_samples_split': 10, 'n_estimators': 200}\n", + "Лучший результат (MSE) на новых параметрах: 13.643983185514095\n", + "Среднеквадратическая ошибка (MSE) на тестовых данных: 0.024952019817877404\n", + "Корень среднеквадратичной ошибки (RMSE) на тестовых данных: 0.15796208348169316\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAHWCAYAAACi1sL/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABj9klEQVR4nO3dd3gU1fv38c+GhPRGCRBK6DWIFAuggKIERKqCEJAqKiJFioAKISBGRIoKoqAColQFVCx8ld4ldGlSQpFeE5KQBJJ5/uDJ/nZJArthUwjv13XtRebMmTP3DJNM7pwzZ0yGYRgCAAAAAEiSnHI6AAAAAADITUiSAAAAAMACSRIAAAAAWCBJAgAAAAALJEkAAAAAYIEkCQAAAAAskCQBAAAAgAWSJAAAAACwQJIEAAAAABZIkgAAAADAAkkScJ84cuSIXnvtNZUtW1Zubm7y8fFR/fr19cknn+j69es5Hd4DY/Xq1TKZTDKZTPruu+/SrVO/fn2ZTCYFBwdblSclJemTTz5RzZo15ePjIz8/P1WrVk2vvvqqDhw4YK43a9Ys8z7S+2zevDlLjxEAgAedc04HAODufv31V7Vr106urq7q0qWLgoODlZSUpPXr12vIkCHau3evpk+fntNhPlDc3Nw0d+5cde7c2ar82LFj2rhxo9zc3NJs88ILL+j3339Xx44d1atXL924cUMHDhzQsmXLVK9ePVWuXNmq/ujRo1WmTJk07ZQvX96xBwMAAKyQJAG5XFRUlDp06KCgoCCtXLlSxYoVM6/r06ePDh8+rF9//TUHI3wwPffcc/r555918eJFFSpUyFw+d+5cFSlSRBUqVNCVK1fM5Vu3btWyZcs0duxYvfPOO1ZtTZkyRVevXk2zj2bNmqlOnTpZdgwAACB9DLcDcrmPPvpIsbGx+vrrr60SpFTly5dX//79zcsmk0lvvvmmvv/+e1WqVElubm6qXbu21q5da7Xd8ePH9cYbb6hSpUpyd3dXwYIF1a5dOx07dsyq3u1Dvzw8PFS9enV99dVXVvW6desmLy+vNPH98MMPMplMWr16tVX5li1b1LRpU/n6+srDw0MNGzbUhg0brOqMGjVKJpNJFy9etCqPjIyUyWTSrFmzrPZfunRpq3onT56Uu7u7TCZTmuP6/fff9eSTT8rT01Pe3t5q3ry59u7dmyb+jLRq1Uqurq5atGiRVfncuXPVvn175cuXz6r8yJEjkm4Nxbtdvnz5VLBgQZv3bYtjx45lOFzv9nMhSY0aNUq3ruU5lqRp06YpODhYHh4eVvV++OGHu8Z06tQp9ezZU4GBgXJ1dVWZMmXUu3dvJSUl3XWIoWUsu3fvVrdu3cxDT4sWLaoePXro0qVLVvtLvX4OHDig9u3by8fHRwULFlT//v2VkJBgVTf1+yYjqfGlnruVK1fKyclJI0eOtKo3d+5cmUwmTZs27Y7nolGjRmrUqJFV2datW83HejeNGjVKM5xTkj7++ON0/48///xzVatWTa6urgoMDFSfPn3SJOa3XwOFChVS8+bN9c8//1jVy4lzdafrwvJYf/rpJzVv3tx8jZUrV05jxoxRcnJymjaDg4O1bds21atXT+7u7ipTpoy++OILq3pJSUkaOXKkateuLV9fX3l6eurJJ5/UqlWrrOpZfr8tXbrUal1CQoL8/f1lMpn08ccfW607deqUevTooSJFisjV1VXVqlXTN998Y15vObw3o8+oUaMk2Xe937x5U2PGjFG5cuXk6uqq0qVL65133lFiYqJVvdKlS5v34+TkpKJFi+qll17SiRMn7vh/BuQF9CQBudwvv/yismXLql69ejZvs2bNGi1YsED9+vWTq6urPv/8czVt2lR///23+RerrVu3auPGjerQoYNKlCihY8eOadq0aWrUqJH27dsnDw8PqzYnTZqkQoUKKSYmRt9884169eql0qVL65lnnrH7mFauXKlmzZqpdu3aCgsLk5OTk2bOnKmnn35a69at06OPPmp3m+kZOXJkml8OJGnOnDnq2rWrQkJCNG7cOMXHx2vatGl64okntGPHjjTJVno8PDzUqlUrzZs3T71795Yk7dq1S3v37tVXX32l3bt3W9UPCgqSJH3//feqX7++nJ3v/uM3Ojo6TYJoMpnsSqg6duyo5557TpL022+/ad68eRnWrVy5st59911J0sWLF/XWW29ZrV+wYIHeeOMNNWrUSH379pWnp6f279+vDz744K5xnD59Wo8++qiuXr2qV199VZUrV9apU6f0ww8/KD4+Xg0aNNCcOXPM9ceOHStJ5ngkmb8H/vzzTx09elTdu3dX0aJFzcNN9+7dq82bN6dJMtq3b6/SpUsrIiJCmzdv1qeffqorV67o22+/vWvcGXn66af1xhtvKCIi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dg+3W7hwoflFsg0bNlT37t114sQJ/fDDD2ratGlWxAgAAAAA2cbuJKlZs2b69ddf1bJlSyUmJqpTp0769ddfmRQBAAAAQJ5g93A7SXryySe1cuVKeXl5KSAgINMJ0tq1a9WiRQsFBgbKZDJp6dKlVusNw9DIkSNVrFgxubu765lnntGhQ4cytS8AAAAAsIXdPUlt27Y1fx0YGKgPP/xQGzdulL+/vyRp8eLFNrcVFxenGjVqqEePHlbtpvroo4/06aefavbs2SpTpoxGjBihkJAQ7du3T25ubvaGDgAAAAB3ZXeS5Ovra/66Zs2aqlmzZqZ33qxZMzVr1izddYZhaPLkyXrvvffUqlUrSdK3336rIkWKaOnSperQoUOm9wsAAAAAGbE7SZo5c2ZWxJFGVFSUzp49q2eeecZc5uvrq8cee0ybNm3KMElKTExUYmKieTkmJibLYwUAAACQd2T6ZbJHjx7Vvn37ZDKZVKVKFZUtW9aRcens2bOSpCJFiliVFylSxLwuPREREQoPD3doLAAAAAAeHHeduOHmzZsKDQ1VbGyspFs9M+3atVP58uXVpk0btW7dWhUqVFD79u117dq1LA/4boYPH67o6Gjz5+TJkzkdEgAAAID7yF2TJGdnZ/300086f/68JKl///76559/tG7dOiUkJCghIUFr1qzRP//8o7feesthgRUtWlSSdO7cOavyc+fOmdelx9XVVT4+PlYfAAAAALCVTVOAFypUSDdv3pQk/fzzz5oxY4bq16+vfPnyKV++fHriiSf05ZdfppnC+16UKVNGRYsW1YoVK8xlMTEx2rJli+rWreuw/QAAAACAJZueSSpfvry2bdumihUrKiUlRQUKFEhTx9/fX/Hx8XbtPDY2VocPHzYvR0VFaefOnSpQoIBKlSqlAQMG6P3331eFChXMU4AHBgaqdevWdu0HAAAAAGxlU09Sp06d9M477+jcuXOqX7++Ro0apYSEBPP669evKzw8XI8//rhdO4+MjLSaRnzgwIGqWbOmRo4cKUl6++231bdvX7366qt65JFHFBsbqz/++IN3JAEAAADIMibDMAxbKr722mv66aefFBwcrJUrV6pAgQKqUaOGJGnXrl1ycXHR77//rocffjgr47VbTEyMfH19FR0dzfNJAIDca64ppyMAgKwTalPKkeVszQ1sTpIkad26dfr1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T9kff/yhJ554Qn5+fipYsKCef/55HTlyxLz+2LFjMplMmj9/vurVqyc3NzcFBwdrzZo15jrJycnq2bOnObZKlSrpk08+sYol9d40ceJEq/I2bdpY3Wcl6eTJk2rfvr38/PxUoEABtWrVSseOHZN06+d4RveC1POV2hsYHh6uwoULy8fHR6+//rqSkpIyde6B25EkIU+4fPmy/vjjD/Xp00eenp5p1qcmD1u3btWZM2d05swZlShRQpMnTzYvv/TSS5IkJycnffrpp9q7d69mz56tlStX6u2337ZqLz4+XmPHjtW3336rDRs26OrVq+rQoUOmYl+3bp26dOmi/v37a9++ffryyy81a9YsjR079o7bNW3a1Bz7mTNnNHnyZKv1sbGxeu6557RixQrt2LFDTZs2VYsWLXTixAmreuPHj1eNGjW0Y8cODRs2TP3799eff/5pXm/L+fDw8NCmTZt06tQpc9n06dNVvHhxq3pvvvmmNm3apPnz52v37t1q166dmjZtqkOHDqlevXrmY/nxxx8lyer4Ujny3APAnWzbtk3t27dXhw4dtGfPHo0aNUojRoyw+mVfkkaPHq0zZ84oMjJSnp6e6tOnT6b2FxERoW+//VZffPGF9u7dq7feekudO3e2SlbSk7r/1E/79u2t1sfFxWngwIGKjIzUihUr5OTkpDZt2iglJcWq3pAhQzRo0CDt2LFDdevWVYsWLXTp0iVJtxK4EiVKaNGiRdq3b59Gjhypd955RwsXLrRqo3jx4poxY4Z5+fTp09qwYYM8PDzMZTdu3FBISIi8vb21bt06bdiwQV5eXmratKmSkpI0ePBg87EMGjRIdevWNS8vXrzY3M6KFSu0f/9+rV69WvPmzdPixYsVHh5u30kHMmIAecCWLVsMScbixYtt3iYoKMiYOXPmXestWrTIKFiwoHl55syZhiRj8+bN5rL9+/cbkowtW7YYhmEYYWFhRo0aNdJtb8mSJYblt17jxo2NDz74wKrOnDlzjGLFimUYU9euXY1WrVpZlc2cOdPw9fW947FUq1bN+Oyzz8zLQUFBRtOmTa3qvPTSS0azZs0ybCO98+Hr62v07dvXGD16tGEYhrFu3TqjevXqRqtWrYyuXbsahmEYx48fN/Lly2ecOnXKqr3GjRsbw4cPtypbtWqVkd6PJ0efewAPpq5duxr58uUzPD09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jRry9PQ0Lz/++OPKly+f9u3bp5iYGJ0+fTrdfe3fv9+qrG7duuavnZ2dVadOnTR17HXo0CF17NhRZcuWlY+Pj0qXLi1JOnHihF37njp1qmrXrq3ChQvLy8tL06dPT9OGJPXq1UvTp09XSkqKvv76a/Xq1ctq/a5du3T48GF5e3vLy8tLXl5eKlCggBISEqyGAd5NjRo1rHqo6tatq9jYWJ08eVJHjhzRjRs3rM65i4uLHn300TTns0SJEvL09FSFChX03HPPqWPHjjbHAAB5HRM3AADSdfToUZUpUybD9f7+/jp+/Hi660wmU1aFZbMWLVooKChIM2bMUGBgoFJSUhQcHGz1/M7dzJ8/X4MHD9aECRNUt25deXt7a/z48dqyZUuaup07d1ZYWJjmz5+vokWLqnr16lbrY2NjVbt2bX3//fdpti1cuLD9B3iP1q1bJ29vb0VFRenVV1/VxIkT0wypBIAHFT1JAPCAqVKlijZs2GBVtmHDBlWsWFH58uUzl61du1ZPPvlkhu1UrlxZu3btUlxcnLls8+bNSk5OVpUqVeTj46PAwMB091W1alWrss2bN5u/vnnzprZt26YqVapk6vikW71gBw8e1HvvvafGjRurSpUqunLlSrp177TvDRs2qF69enrjjTdUs2ZNlS9fPsNeHz8/P7Vs2VKvv/56ml4kSapVq5YOHTqkgIAAlS9f3urj6+tr87Ht2rVL169ft4rfy8tLJUuWVLly5ZQ/f36rc37jxg1t3bo1zTkvU6aMypcvr2effVYvvPCClixZYnMMAJDXkSQBwANm0KBBWrFihcaMGaN///1Xs2fP1pQpUzR48GBJ0vXr1/XZZ5/pyJEjatasmc6ePauzZ88qNjZWN2/eNE8AEBoaKhcXF3Xp0kV79uzRunXr1KtXL7Vt21bly5eXdGtShHHjxmnBggU6ePCghg0bpp07d6p///5WMU2dOlVLlizRgQMH1KdPH125csVqAgh7+fv7q2DBgpo+fboOHz6slStXauDAgenWvdO+K1SooMjISC1fvlz//vuvRowYYTVT3O2GDRumd955Ry+99FKadZ06dVKhQoXUqlUrrVu3TlFRUVq9erX69eun//77z+ZjS0pKUs+ePbVv3z799ttvCgsL05tvviknJyd5enqqd+/eGjJkiP744w/t27dPvXr1Unx8vHr27GnVzvnz53X27Flt2bJFv/zyiypXrmxzDACQ1zHcDgAeMLVq1dLChQs1cuRIjRkzRsWKFdPo0aPVrVs3SdKCBQvUr18/SdJjjz2WZvu2bdtq9erV8vb21u+//66BAwfqkUcekYeHh1q1aqXJkyeb6/br10/R0dEaNGiQzp8/r6pVq+rnn39WhQoVrNr88MMP9eGHH2rnzp0qX768fv75ZxUqVCjTx+jk5KT58+erX79+Cg4OVqVKlfTpp5+ap9K2dd+vvfaaduzYoZdeekkmk0kdO3bUG2+8od9//z3d/VaqVEnDhg1Ld52Hh4fWrl2roUOHqm3btrp27ZqKFy+uxo0b3/XZL0uNGzdWhQoV1KBBAyUmJqpjx44aNWqU1fGkpKTo5Zdf1rVr11SnTh0tX75c/v7+aWKVpEKFCqlJkyb66KOPbI4BAPI6k2EYRk4HAQDIPWbNmqXVq1enOyX4zp07NWDAAK1evdoh+zp27JjKlCmjHTt2WL2DKTvk5L4zq1u3brp69aqWLl2a06EAQJ7GcDsAgBV3d/cMn5FxcXFJ9+W0AADkJQy3AwBYeemll9J9pkaSqlWrZvViUwAA8iKG2wEAAACABYbbAQAAAIAFkiQAAAAAsECSBAAAAAAWSJIAAAAAwAJJEgAAAABYIEkCAAAAAAskSQAAAABggSQJAAAAACz8PyI0BN5yWyWVAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn import metrics\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.model_selection import train_test_split, GridSearchCV\n", + "from sklearn.preprocessing import StandardScaler, OneHotEncoder, LabelEncoder\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.impute import SimpleImputer\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "# Определение столбцов для обработки\n", + "num_columns = features.select_dtypes(include=['number']).columns\n", + "cat_columns = features.select_dtypes(include=['object']).columns\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", + "# Препроцессинг категориальных столбцов\n", + "cat_imputer = SimpleImputer(strategy=\"constant\", fill_value=\"unknown\") # Используем '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", + "# Объединение препроцессинга\n", + "features_preprocessing = ColumnTransformer(\n", + " verbose_feature_names_out=False,\n", + " transformers=[\n", + " (\"preprocessing_num\", preprocessing_num, num_columns),\n", + " (\"preprocessing_cat\", preprocessing_cat, cat_columns),\n", + " ],\n", + " remainder=\"passthrough\"\n", + ")\n", + "\n", + "# Создание финального пайплайна\n", + "pipeline_end = Pipeline(\n", + " [\n", + " (\"features_preprocessing\", features_preprocessing),\n", + " ]\n", + ")\n", + "\n", + "# Разделение данных на обучающую и тестовую выборки\n", + "X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42)\n", + "\n", + "# Применение пайплайна к данным\n", + "X_train_processed = pipeline_end.fit_transform(X_train)\n", + "X_test_processed = pipeline_end.transform(X_test)\n", + "\n", + "# 1. Настройка параметров для старых значений\n", + "old_param_grid = {\n", + " 'n_estimators': [50, 100, 200], # Количество деревьев\n", + " 'max_depth': [None, 10, 20, 30], # Максимальная глубина дерева\n", + " 'min_samples_split': [2, 5, 10] # Минимальное количество образцов для разбиения узла\n", + "}\n", + "\n", + "# Подбор гиперпараметров с помощью Grid Search для старых параметров\n", + "old_grid_search = GridSearchCV(estimator=RandomForestRegressor(), \n", + " param_grid=old_param_grid,\n", + " scoring='neg_mean_squared_error', cv=3, n_jobs=-1, verbose=2)\n", + "\n", + "# Обучение модели на тренировочных данных\n", + "old_grid_search.fit(X_train_processed, y_train)\n", + "\n", + "# 2. Результаты подбора для старых параметров\n", + "old_best_params = old_grid_search.best_params_\n", + "old_best_mse = -old_grid_search.best_score_ # Меняем знак, так как берем отрицательное значение MSE\n", + "\n", + "# 3. Настройка параметров для новых значений\n", + "new_param_grid = {\n", + " 'n_estimators': [200],\n", + " 'max_depth': [10],\n", + " 'min_samples_split': [10]\n", + "}\n", + "\n", + "# Подбор гиперпараметров с помощью Grid Search для новых параметров\n", + "new_grid_search = GridSearchCV(estimator=RandomForestRegressor(), \n", + " param_grid=new_param_grid,\n", + " scoring='neg_mean_squared_error', cv=2)\n", + "\n", + "# Обучение модели на тренировочных данных\n", + "new_grid_search.fit(X_train_processed, y_train)\n", + "\n", + "# 4. Результаты подбора для новых параметров\n", + "new_best_params = new_grid_search.best_params_\n", + "new_best_mse = -new_grid_search.best_score_ # Меняем знак, так как берем отрицательное значение MSE\n", + "\n", + "# 5. Обучение модели с лучшими параметрами для новых значений\n", + "model_best = RandomForestRegressor(**new_best_params)\n", + "model_best.fit(X_train_processed, y_train)\n", + "\n", + "# Прогнозирование на тестовой выборке\n", + "y_pred = model_best.predict(X_test_processed)\n", + "\n", + "# Оценка производительности модели\n", + "mse = metrics.mean_squared_error(y_test, y_pred)\n", + "rmse = np.sqrt(mse)\n", + "\n", + "# Вывод результатов\n", + "print(\"Старые параметры:\", old_best_params)\n", + "print(\"Лучший результат (MSE) на старых параметрах:\", old_best_mse)\n", + "print(\"\\nНовые параметры:\", new_best_params)\n", + "print(\"Лучший результат (MSE) на новых параметрах:\", new_best_mse)\n", + "print(\"Среднеквадратическая ошибка (MSE) на тестовых данных:\", mse)\n", + "print(\"Корень среднеквадратичной ошибки (RMSE) на тестовых данных:\", rmse)\n", + "\n", + "# Визуализация ошибок\n", + "plt.figure(figsize=(10, 5))\n", + "plt.bar(['Старые параметры', 'Новые параметры'], [old_best_mse, new_best_mse], color=['blue', 'orange'])\n", + "plt.xlabel('Подбор параметров')\n", + "plt.ylabel('Среднеквадратическая ошибка (MSE)')\n", + "plt.title('Сравнение MSE для старых и новых параметров')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Модель, обученная на новых параметрах, показала худший результат (MSE) на кросс-валидации, что указывает на ее меньшую точность по сравнению с моделью, обученной на старых параметрах. Однако, MSE на тестовых данных одинакова для обеих моделей, что говорит о том, что обе модели имеют одинаковую производительность на тестовых данных." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "aimenv", + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 534d5a38e7079b48f054f0dd7f6c3a5d54762613 Mon Sep 17 00:00:00 2001 From: kamilia Date: Sat, 9 Nov 2024 13:14:55 +0400 Subject: [PATCH 2/2] lab 4 --- lab_4/lab_4.ipynb | 2980 +-------------------------------------------- 1 file changed, 34 insertions(+), 2946 deletions(-) diff --git a/lab_4/lab_4.ipynb b/lab_4/lab_4.ipynb index 43d4dd4..0d521a6 100644 --- a/lab_4/lab_4.ipynb +++ b/lab_4/lab_4.ipynb @@ -1882,2930 +1882,6 @@ "В зеленом квадрате значение 117 указывает на количество правильно классифицированных объектов, отнесенных к классу \"Above Average\". Это также является показателем высокой точности модели в определении объектов данного класса." ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Определение достижимого уровня качества модели для второй задачи " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Подготовка данных__" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Загрузка данных и создание целевой переменной" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Среднее значение поля 'Networth': 4.8607499999999995\n", - " Rank Name Networth Age Country \\\n", - "0 1 Elon Musk 219.0 50 United States \n", - "1 2 Jeff Bezos 171.0 58 United States \n", - "2 3 Bernard Arnault & family 158.0 73 France \n", - "3 4 Bill Gates 129.0 66 United States \n", - "4 5 Warren Buffett 118.0 91 United States \n", - "\n", - " Source Industry above_average_networth \n", - "0 Tesla, SpaceX Automotive 1 \n", - "1 Amazon Technology 1 \n", - "2 LVMH Fashion & Retail 1 \n", - "3 Microsoft Technology 1 \n", - "4 Berkshire Hathaway Finance & Investments 1 \n", - "Статистическое описание DataFrame:\n", - " Rank Networth Age above_average_networth\n", - "count 2600.000000 2600.000000 2600.000000 2600.000000\n", - "mean 1269.570769 4.860750 64.271923 0.225000\n", - "std 728.146364 10.659671 13.220607 0.417663\n", - "min 1.000000 1.000000 19.000000 0.000000\n", - "25% 637.000000 1.500000 55.000000 0.000000\n", - "50% 1292.000000 2.400000 64.000000 0.000000\n", - "75% 1929.000000 4.500000 74.000000 0.000000\n", - "max 2578.000000 219.000000 100.000000 1.000000\n" - ] - } - ], - "source": [ - "import pandas as pd\n", - "from sklearn import set_config\n", - "\n", - "set_config(transform_output=\"pandas\")\n", - "\n", - "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", - "\n", - "random_state = 42\n", - "\n", - "# Вычисление среднего значения поля \"Networth\"\n", - "average_networth = df['Networth'].mean()\n", - "print(f\"Среднее значение поля 'Networth': {average_networth}\")\n", - "\n", - "# Создание новой колонки, указывающей, выше или ниже среднего значение чистого состояния\n", - "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", - "\n", - "# Вывод DataFrame с новой колонкой\n", - "print(df.head())\n", - "\n", - "# Примерный анализ данных\n", - "print(\"Статистическое описание DataFrame:\")\n", - "print(df.describe())\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Разделение набора данных на обучающую и тестовые выборки (80/20) для задачи регрессии\n", - "\n", - "Целевой признак -- above_average_close" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "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", - "
RankNameNetworthAgeCountrySourceIndustry
582579Alexandra Schoerghuber & family4.963Germanyreal estateReal Estate
4849He Xiangjian28.379Chinahome appliancesManufacturing
17721729Bruce Mathieson1.778AustraliahotelsFood & Beverage
964951Pansy Ho3.259Hong KongcasinosGambling & Casinos
22132190Sasson Dayan & family1.382BrazilbankingFinance & Investments
........................
16381579Wang Chou-hsiong1.981TaiwanfootwearManufacturing
10951096Jose Joao Abdalla Filho2.876BrazilinvestmentsFinance & Investments
11301096Lin Chen-hai2.875Taiwanreal estateReal Estate
12941292Banwari Lal Bawri2.469IndiapharmaceuticalsHealthcare
860851Kuok Khoon Hong3.572Singaporepalm oilManufacturing
\n", - "

2080 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " Rank Name Networth Age Country \\\n", - "582 579 Alexandra Schoerghuber & family 4.9 63 Germany \n", - "48 49 He Xiangjian 28.3 79 China \n", - "1772 1729 Bruce Mathieson 1.7 78 Australia \n", - "964 951 Pansy Ho 3.2 59 Hong Kong \n", - "2213 2190 Sasson Dayan & family 1.3 82 Brazil \n", - "... ... ... ... ... ... \n", - "1638 1579 Wang Chou-hsiong 1.9 81 Taiwan \n", - "1095 1096 Jose Joao Abdalla Filho 2.8 76 Brazil \n", - "1130 1096 Lin Chen-hai 2.8 75 Taiwan \n", - "1294 1292 Banwari Lal Bawri 2.4 69 India \n", - "860 851 Kuok Khoon Hong 3.5 72 Singapore \n", - "\n", - " Source Industry \n", - "582 real estate Real Estate \n", - "48 home appliances Manufacturing \n", - "1772 hotels Food & Beverage \n", - "964 casinos Gambling & Casinos \n", - "2213 banking Finance & Investments \n", - "... ... ... \n", - "1638 footwear Manufacturing \n", - "1095 investments Finance & Investments \n", - "1130 real estate Real Estate \n", - "1294 pharmaceuticals Healthcare \n", - "860 palm oil Manufacturing \n", - "\n", - "[2080 rows x 7 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", - "
above_average_networth
5821
481
17720
9640
22130
......
16380
10950
11300
12940
8600
\n", - "

2080 rows × 1 columns

\n", - "
" - ], - "text/plain": [ - " above_average_networth\n", - "582 1\n", - "48 1\n", - "1772 0\n", - "964 0\n", - "2213 0\n", - "... ...\n", - "1638 0\n", - "1095 0\n", - "1130 0\n", - "1294 0\n", - "860 0\n", - "\n", - "[2080 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", - "
RankNameNetworthAgeCountrySourceIndustry
15931579Guangming Fu & family1.968ChinapoultryFood & Beverage
196197Leon Black10.070United Statesprivate equityFinance & Investments
239235Zong Qinghou8.876ChinabeveragesFood & Beverage
21262076Kurt Krieger1.474Germanyfurniture retailingFashion & Retail
15871579Chen Kaichen1.964Chinahousehold chemicalsManufacturing
........................
17781729Jorge Perez1.772United Statesreal estateReal Estate
166167Brian Chesky11.540United StatesAirbnbTechnology
949913Zhong Ruonong & family3.359ChinaelectronicsManufacturing
4950Miriam Adelson27.576United StatescasinosGambling & Casinos
25112448Lou Boliang1.158United StatespharmaceuticalsHealthcare
\n", - "

520 rows × 7 columns

\n", - "
" - ], - "text/plain": [ - " Rank Name Networth Age Country \\\n", - "1593 1579 Guangming Fu & family 1.9 68 China \n", - "196 197 Leon Black 10.0 70 United States \n", - "239 235 Zong Qinghou 8.8 76 China \n", - "2126 2076 Kurt Krieger 1.4 74 Germany \n", - "1587 1579 Chen Kaichen 1.9 64 China \n", - "... ... ... ... ... ... \n", - "1778 1729 Jorge Perez 1.7 72 United States \n", - "166 167 Brian Chesky 11.5 40 United States \n", - "949 913 Zhong Ruonong & family 3.3 59 China \n", - "49 50 Miriam Adelson 27.5 76 United States \n", - "2511 2448 Lou Boliang 1.1 58 United States \n", - "\n", - " Source Industry \n", - "1593 poultry Food & Beverage \n", - "196 private equity Finance & Investments \n", - "239 beverages Food & Beverage \n", - "2126 furniture retailing Fashion & Retail \n", - "1587 household chemicals Manufacturing \n", - "... ... ... \n", - "1778 real estate Real Estate \n", - "166 Airbnb Technology \n", - "949 electronics Manufacturing \n", - "49 casinos Gambling & Casinos \n", - "2511 pharmaceuticals Healthcare \n", - "\n", - "[520 rows x 7 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", - "
above_average_networth
15930
1961
2391
21260
15870
......
17780
1661
9490
491
25110
\n", - "

520 rows × 1 columns

\n", - "
" - ], - "text/plain": [ - " above_average_networth\n", - "1593 0\n", - "196 1\n", - "239 1\n", - "2126 0\n", - "1587 0\n", - "... ...\n", - "1778 0\n", - "166 1\n", - "949 0\n", - "49 1\n", - "2511 0\n", - "\n", - "[520 rows x 1 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from typing import Tuple\n", - "import pandas as pd\n", - "from pandas import DataFrame\n", - "from sklearn.model_selection import train_test_split\n", - "\n", - "def split_into_train_test(\n", - " df_input: DataFrame,\n", - " target_colname: str = \"above_average_networth\", \n", - " frac_train: float = 0.8,\n", - " random_state: int = None,\n", - ") -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame]:\n", - " \n", - " if not (0 < frac_train < 1):\n", - " raise ValueError(\"Fraction must be between 0 and 1.\")\n", - " \n", - " # Проверка наличия целевого признака\n", - " if target_colname not in df_input.columns:\n", - " raise ValueError(f\"{target_colname} is not a column in the DataFrame.\")\n", - " \n", - " # Разделяем данные на признаки и целевую переменную\n", - " X = df_input.drop(columns=[target_colname]) # Признаки\n", - " y = df_input[[target_colname]] # Целевая переменная\n", - "\n", - " # Разделяем данные на обучающую и тестовую выборки\n", - " X_train, X_test, y_train, y_test = train_test_split(\n", - " X, y,\n", - " test_size=(1.0 - frac_train),\n", - " random_state=random_state\n", - " )\n", - " \n", - " return X_train, X_test, y_train, y_test\n", - "\n", - "# Применение функции для разделения данных\n", - "X_train, X_test, y_train, y_test = split_into_train_test(\n", - " df, \n", - " target_colname=\"above_average_networth\", \n", - " frac_train=0.8, \n", - " random_state=42 \n", - ")\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)\n", - "\n" - ] - }, - { - "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", - "pipeline_end -- основной конвейер предобработки данных и конструирования признаков" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Networth Age Country_Argentina Country_Australia \\\n", - "0 20.092595 -1.079729 0.0 0.0 \n", - "1 15.588775 -0.474496 0.0 0.0 \n", - "2 14.368991 0.660314 0.0 0.0 \n", - "3 11.647933 0.130736 0.0 0.0 \n", - "4 10.615808 2.022087 0.0 0.0 \n", - "... ... ... ... ... \n", - "2595 -0.362253 1.189893 0.0 0.0 \n", - "2596 -0.362253 1.341201 0.0 0.0 \n", - "2597 -0.362253 0.509006 0.0 0.0 \n", - "2598 -0.362253 0.282044 0.0 0.0 \n", - "2599 -0.362253 0.357698 0.0 0.0 \n", - "\n", - " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", - "0 0.0 0.0 0.0 0.0 \n", - "1 0.0 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 0.0 \n", - "... ... ... ... ... \n", - "2595 0.0 0.0 0.0 0.0 \n", - "2596 0.0 0.0 0.0 0.0 \n", - "2597 0.0 0.0 0.0 0.0 \n", - "2598 0.0 0.0 0.0 0.0 \n", - "2599 0.0 0.0 0.0 0.0 \n", - "\n", - " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", - "0 0.0 0.0 ... 0.0 \n", - "1 0.0 0.0 ... 0.0 \n", - "2 0.0 0.0 ... 0.0 \n", - "3 0.0 0.0 ... 0.0 \n", - "4 0.0 0.0 ... 0.0 \n", - "... ... ... ... ... \n", - "2595 0.0 0.0 ... 0.0 \n", - "2596 0.0 0.0 ... 0.0 \n", - "2597 0.0 0.0 ... 0.0 \n", - "2598 0.0 0.0 ... 0.0 \n", - "2599 0.0 0.0 ... 0.0 \n", - "\n", - " Industry_Media & Entertainment Industry_Metals & Mining \\\n", - "0 0.0 0.0 \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - "... ... ... \n", - "2595 0.0 0.0 \n", - "2596 0.0 0.0 \n", - "2597 0.0 0.0 \n", - "2598 0.0 0.0 \n", - "2599 0.0 0.0 \n", - "\n", - " Industry_Real Estate Industry_Service Industry_Sports \\\n", - "0 0.0 0.0 0.0 \n", - "1 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 \n", - "... ... ... ... \n", - "2595 0.0 0.0 0.0 \n", - "2596 0.0 0.0 0.0 \n", - "2597 0.0 0.0 0.0 \n", - "2598 0.0 0.0 0.0 \n", - "2599 0.0 0.0 0.0 \n", - "\n", - " Industry_Technology Industry_Telecom Industry_diversified \\\n", - "0 0.0 0.0 0.0 \n", - "1 1.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 \n", - "3 1.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 \n", - "... ... ... ... \n", - "2595 0.0 0.0 0.0 \n", - "2596 0.0 0.0 0.0 \n", - "2597 0.0 0.0 0.0 \n", - "2598 0.0 0.0 0.0 \n", - "2599 0.0 0.0 0.0 \n", - "\n", - " Networth_per_Age \n", - "0 -18.608929 \n", - "1 -32.853309 \n", - "2 21.760834 \n", - "3 89.095063 \n", - "4 5.249926 \n", - "... ... \n", - "2595 -0.304441 \n", - "2596 -0.270096 \n", - "2597 -0.711686 \n", - "2598 -1.284383 \n", - "2599 -1.012732 \n", - "\n", - "[2600 rows x 988 columns]\n", - "(2600, 988)\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "from sklearn.base import BaseEstimator, TransformerMixin\n", - "from sklearn.compose import ColumnTransformer\n", - "from sklearn.preprocessing import StandardScaler\n", - "from sklearn.impute import SimpleImputer\n", - "from sklearn.pipeline import Pipeline\n", - "from sklearn.preprocessing import OneHotEncoder\n", - "from sklearn.ensemble import RandomForestRegressor \n", - "from sklearn.model_selection import train_test_split\n", - "from sklearn.pipeline import make_pipeline\n", - "\n", - "class ForbesBillionairesFeatures(BaseEstimator, TransformerMixin): \n", - " def __init__(self):\n", - " pass\n", - "\n", - " def fit(self, X, y=None):\n", - " return self\n", - "\n", - " def transform(self, X, y=None):\n", - " X[\"Networth_per_Age\"] = X[\"Networth\"] / X[\"Age\"]\n", - " return X\n", - "\n", - " def get_feature_names_out(self, features_in):\n", - " return np.append(features_in, [\"Networth_per_Age\"], axis=0) \n", - "\n", - "# Определите признаки для вашей задачи\n", - "columns_to_drop = [\"Rank \", \"Name\"] \n", - "num_columns = [\"Networth\", \"Age\"] \n", - "cat_columns = [\"Country\", \"Source\", \"Industry\"]\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", - "# Преобразование категориальных признаков\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", - "# Формирование конвейера\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", - " ],\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", - "# Окончательный конвейер\n", - "pipeline_end = Pipeline(\n", - " [\n", - " (\"features_preprocessing\", features_preprocessing),\n", - " (\"drop_columns\", drop_columns),\n", - " (\"custom_features\", ForbesBillionairesFeatures()), \n", - " ]\n", - ")\n", - "\n", - "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\")\n", - "\n", - "# Создаем целевой признак\n", - "average_networth = df['Networth'].mean()\n", - "df['above_average_networth'] = (df['Networth'] > average_networth).astype(int)\n", - "\n", - "# Подготовка данных\n", - "X = df.drop('above_average_networth', axis=1)\n", - "y = df['above_average_networth'].values.ravel() \n", - "\n", - "# Применение конвейера\n", - "X_processed = pipeline_end.fit_transform(X)\n", - "\n", - "# Вывод\n", - "print(X_processed)\n", - "print(X_processed.shape)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Демонстрация работы конвейера__" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NetworthAgeCountry_ArgentinaCountry_AustraliaCountry_AustriaCountry_BarbadosCountry_BelgiumCountry_BelizeCountry_BrazilCountry_Bulgaria...Industry_ManufacturingIndustry_Media & EntertainmentIndustry_Metals & MiningIndustry_Real EstateIndustry_ServiceIndustry_SportsIndustry_TechnologyIndustry_TelecomIndustry_diversifiedNetworth_per_Age
582-0.013606-0.1099340.00.00.00.00.00.00.00.0...0.00.00.01.00.00.00.00.00.00.123766
481.9940831.0790790.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.01.847949
1772-0.2881621.0047660.01.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.0-0.286795
964-0.159464-0.4071870.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.391623
2213-0.3224811.3020190.00.00.00.00.00.01.00.0...0.00.00.00.00.00.00.00.00.0-0.247678
..................................................................
1638-0.2710021.2277060.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.0-0.220739
1095-0.1937830.8561390.00.00.00.00.00.01.00.0...0.00.00.00.00.00.00.00.00.0-0.226346
1130-0.1937830.7818260.00.00.00.00.00.00.00.0...0.00.00.01.00.00.00.00.00.0-0.247860
1294-0.2281030.3359460.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.0-0.678986
860-0.1337240.5588860.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.0-0.239269
\n", - "

2080 rows × 857 columns

\n", - "
" - ], - "text/plain": [ - " Networth Age Country_Argentina Country_Australia \\\n", - "582 -0.013606 -0.109934 0.0 0.0 \n", - "48 1.994083 1.079079 0.0 0.0 \n", - "1772 -0.288162 1.004766 0.0 1.0 \n", - "964 -0.159464 -0.407187 0.0 0.0 \n", - "2213 -0.322481 1.302019 0.0 0.0 \n", - "... ... ... ... ... \n", - "1638 -0.271002 1.227706 0.0 0.0 \n", - "1095 -0.193783 0.856139 0.0 0.0 \n", - "1130 -0.193783 0.781826 0.0 0.0 \n", - "1294 -0.228103 0.335946 0.0 0.0 \n", - "860 -0.133724 0.558886 0.0 0.0 \n", - "\n", - " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", - "582 0.0 0.0 0.0 0.0 \n", - "48 0.0 0.0 0.0 0.0 \n", - "1772 0.0 0.0 0.0 0.0 \n", - "964 0.0 0.0 0.0 0.0 \n", - "2213 0.0 0.0 0.0 0.0 \n", - "... ... ... ... ... \n", - "1638 0.0 0.0 0.0 0.0 \n", - "1095 0.0 0.0 0.0 0.0 \n", - "1130 0.0 0.0 0.0 0.0 \n", - "1294 0.0 0.0 0.0 0.0 \n", - "860 0.0 0.0 0.0 0.0 \n", - "\n", - " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", - "582 0.0 0.0 ... 0.0 \n", - "48 0.0 0.0 ... 1.0 \n", - "1772 0.0 0.0 ... 0.0 \n", - "964 0.0 0.0 ... 0.0 \n", - "2213 1.0 0.0 ... 0.0 \n", - "... ... ... ... ... \n", - "1638 0.0 0.0 ... 1.0 \n", - "1095 1.0 0.0 ... 0.0 \n", - "1130 0.0 0.0 ... 0.0 \n", - "1294 0.0 0.0 ... 0.0 \n", - "860 0.0 0.0 ... 1.0 \n", - "\n", - " Industry_Media & Entertainment Industry_Metals & Mining \\\n", - "582 0.0 0.0 \n", - "48 0.0 0.0 \n", - "1772 0.0 0.0 \n", - "964 0.0 0.0 \n", - "2213 0.0 0.0 \n", - "... ... ... \n", - "1638 0.0 0.0 \n", - "1095 0.0 0.0 \n", - "1130 0.0 0.0 \n", - "1294 0.0 0.0 \n", - "860 0.0 0.0 \n", - "\n", - " Industry_Real Estate Industry_Service Industry_Sports \\\n", - "582 1.0 0.0 0.0 \n", - "48 0.0 0.0 0.0 \n", - "1772 0.0 0.0 0.0 \n", - "964 0.0 0.0 0.0 \n", - "2213 0.0 0.0 0.0 \n", - "... ... ... ... \n", - "1638 0.0 0.0 0.0 \n", - "1095 0.0 0.0 0.0 \n", - "1130 1.0 0.0 0.0 \n", - "1294 0.0 0.0 0.0 \n", - "860 0.0 0.0 0.0 \n", - "\n", - " Industry_Technology Industry_Telecom Industry_diversified \\\n", - "582 0.0 0.0 0.0 \n", - "48 0.0 0.0 0.0 \n", - "1772 0.0 0.0 0.0 \n", - "964 0.0 0.0 0.0 \n", - "2213 0.0 0.0 0.0 \n", - "... ... ... ... \n", - "1638 0.0 0.0 0.0 \n", - "1095 0.0 0.0 0.0 \n", - "1130 0.0 0.0 0.0 \n", - "1294 0.0 0.0 0.0 \n", - "860 0.0 0.0 0.0 \n", - "\n", - " Networth_per_Age \n", - "582 0.123766 \n", - "48 1.847949 \n", - "1772 -0.286795 \n", - "964 0.391623 \n", - "2213 -0.247678 \n", - "... ... \n", - "1638 -0.220739 \n", - "1095 -0.226346 \n", - "1130 -0.247860 \n", - "1294 -0.678986 \n", - "860 -0.239269 \n", - "\n", - "[2080 rows x 857 columns]" - ] - }, - "execution_count": 45, - "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 -- многослойный персептрон (нейронная сеть)" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "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": 48, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: logistic\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: ridge\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: decision_tree\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: knn\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: naive_bayes\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: gradient_boosting\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: random_forest\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: mlp\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\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" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Матрица неточностей__" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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x/j444/x4MEDNGrUCLNmzZI6heq4tv9yd3fHoUOH8OzZM5VvC4v774TKFoePEhUi706YEELal5qami+4CmJjY4OAgABs3LgR69evh4mJCXr06KFSp0+fPoiMjMSePXvyvT8lJQU5OTklanNOTg5++OEH6XVWVhZ++OEHODg4wNfXt8DrOnXqFCIjI196zHfffRdXr17F+PHjYWhoiH79+uW7hrt372L58uX53vv8+XNpCEtycnK+8gYNGgBAvkdXEBGR9jE0NET79u2xbds2lTlqsbGx2LVrV7GPIZPJVB5fcOvWLWml6jx5HZYFCxao7C/OqtwBAQGwsrLC7NmzkZ2dna/84cOHxWrri/I6NikpKSV+b55169bhyZMn0uvNmzcjMTFRutbGjRvD0dERy5YtU8nFXbt2ITo6Wlp51cXFBQ0aNMDatWtV2nP58mXs3bsXXbp0AZA7B/S/00IcHR3h6uqqcnxzc/NCp8S8ioCAAGRnZ6v8baBUKrF48WK1nofUg98UEhWiY8eOMDExQdeuXfHhhx8iPT0dy5cvh6OjIxITE4t1jL59+2LgwIFYsmQJAgICpMVW8owfPx7bt2/HW2+9hcGDB8PX1xdPnz7FpUuXsHnzZty6dUtluGlRXF1d8fXXX+PWrVuoWbMmNmzYgKioKPz4448wNjYGALz11lvYunUrevbsicDAQNy8eRPLli2Dj48P0tPT8x0zMDAQdnZ22LRpEzp37gxHR0eV8nfffRcbN27ERx99hEOHDqF58+ZQKBT466+/sHHjRuzZsweNGzdGSEgIjh49isDAQLi7u+PBgwdYsmQJKleujBYtWhT7GomISHOmTZuGvXv3onnz5hg+fDgUCgUWLVqEOnXqICoqqsj3BwYG4rvvvkOnTp0wYMAAPHjwAIsXL4anpycuXrwo1WvQoAH69++PJUuWIDU1Fc2aNcOBAweK9U2TlZUVli5dinfffReNGjVCv3794ODggPj4eOzcuRPNmzdXeV5wcZiZmcHHxwcbNmxAzZo1YWtrizp16qBOnTrFPoatrS1atGiBIUOG4P79+5g/fz48PT2lxViMjY3x9ddfY8iQIfD390f//v2lR1JUrVoVY8eOlY71zTffoHPnzvDz88PQoUOlR1JYW1tLz0988uQJKleujLfffhv169eHhYUF9u/fjzNnzmDu3LnSsXx9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b28v7t+/L4QQYuzYsaJTp05CCCFUKpVwcHAQTk5OYseOHUIIIb7//ntRuXLlImtPSEgQcrlcpKamivv37wtzc3Nx7do1IYQQqampwszMTOzdu1da//79+2rzDh06JGxsbERkZKRITEwUu3fvFtWrVxfTpk2T3gNAVKpUSaxZs0YkJiaK69evi+zsbDFlyhRx4sQJcfXqVfH9998LCwsLsX79eul9M2fOFA4ODuLnn38WcXFxYujQocLGxkbtHM2cOVO4urqK2rVri8TERDF69GgBQOzfv19aZ//+/QKA8PHxEbt37xbnz58XnTt3FtWrVxfZ2dlCCCFOnjwpjIyMRHh4uIiPjxdr164VCoVCrF27VgghxJ9//ikAiISEBGm7+fOuXLkinW83NzexceNGcfXqVbFx40bh4OAgIiMji/wZREREiMaNGwshhNiyZYuoVauWUKlUQgghtm7dKhQKhXj06JG0/pYtW4RCoRAPHz6UzkGdOnXEzp07RWJioli7dq2Qy+XiwIEDasffoEEDsXv3bpGQkCDu378vzp49K5YvXy4uXLggLl++LD7//HNhbm4url+/Lu2rffv2omHDhuLYsWPi1KlTIiAgQCgUCrFgwQK1dbp06SJOnDghLl++LD755BPh6Ogo/T8lItIGZjOzOf98M5uZzaXFRiG9lJCQEGFsbCwsLS2FpaWlACDc3NzEqVOnpHW+++474e3tLX2gCCFEVlaWUCgUYteuXdJ28j9UMzIyhKmpqYiOjpbWz87OFu7u7mLu3LlCCCF+/fVXYWtrK3Jzc8XZs2eFq6urGD16tBg/frwQQojBgweLfv36FVn7xIkTRbdu3aTXXbt2FVOnTlV7/f7770uvV6xYIdzd3aVAbdeunZg9e7baNr/77jvh5uYmvQYgPv744yLrEEKI4cOHi549e0qvXVxcxLx586TXubm5omrVqtI5yszMFBYWFqJ+/fpi4cKFQgghcnJyhLm5uWjbtq30vvwP3nXr1knz7t+/LxQKhRR0/fr1E4GBgWr1fPrpp6Ju3brSa19fXxEeHi69njBhgmjWrJn0ulatWiImJkZtGzNmzBD+/v5FHnfz5s3V6ndycpKCM/91VFSUtH7fvn1F79691c7B77//rrbNQYMGib59+6od/+bNm4usQwgh6tWrJ77++mshhBBxcXECgDhx4oS0/MqV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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", - "\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=[\"Below Average\", \"Above Average\"] \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()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Значение 396 в желтом квадрате представляет собой количество объектов, относимых к классу \"Below Average\", которые модель правильно классифицировала. Это свидетельствует о высоком уровне точности в идентификации этого класса.\n", - "Значение 124 в голубом квадрате указывает на количество правильно классифицированных объектов класса \"Above Average\". Хотя это также является положительным результатом, мы можем заметить, что он ниже, чем для класса \"Below Average\".\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__Точность, полнота, верность (аккуратность), F-мера__" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "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
decision_tree1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
random_forest1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
ridge0.9808510.9606301.0000000.9838710.9956730.9865380.9903330.972112
logistic1.0000001.0000000.9436010.8306450.9875000.9596150.9709820.907489
mlp0.9907980.9531250.7006510.4919350.9322120.8730770.8208390.648936
knn0.9685310.9074070.6008680.3951610.9072120.8461540.7416330.550562
naive_bayes0.3699840.2605461.0000000.8467740.6225960.3903850.5401290.398482
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 51, - "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": [ - "Многие модели, включая логистическую регрессию, дерево решений,градиентный бустинг и случайный лес, показали выдающиеся результаты по всем метрикам:\n", - "\n", - "- Accuracy: Все модели, кроме MLP, достигли идеальной точности (1.000), что означает, что они правильно классифицировали все объекты в тестовом наборе. MLP показала высокую точность 0.996, что все равно является отличным результатом.\n", - "- F1: Аналогично, все модели показали идеальное значение F1-меры (1.000), кроме MLP, которая показала значение 0.991.\n", - "- ROC AUC: Все модели достигли максимального значения ROC AUC (1.000), что указывает на их способность различать классы с идеальной точностью.\n", - "- Cohen's Kappa: Идеальное значение Cohen's Kappa (1.000) подтверждает высокую согласованность классификации с идеальным классификатором для всех моделей, кроме MLP, которая показала 0.989.\n", - "- MCC: Идеальное значение MCC (1.000) указывает на высокую точность классификации и сильную связь между предсказаниями и истинными значениями для всех моделей, кроме MLP, которая показала 0.989.\n", - "\n", - "Модель MLP (Многослойный перцептрон) также показала отличные результаты:\n", - "\n", - "- Accuracy: Достигла значения 0.996, что немного ниже идеального, но все еще очень высокий результат.\n", - "- F1: Значение F1-меры равно 0.991, что также указывает на высокую эффективность модели.\n", - "- ROC AUC: MLP достигает идеального значения ROC AUC (1.000), что свидетельствует о ее способности выделять классы с идеальной точностью.\n", - "- Cohen's Kappa: Высокое значение Cohen's Kappa (0.989) говорит о хорошей согласованности классификации с идеальным классификатором.\n", - "- MCC: Высокое значение MCC (0.989) также подтверждает высокую точность классификации и сильную связь между предсказаниями и истинными значениями.\n", - "\n", - "Модель KNN (Метод k-ближайших соседей) показала сравнительно более низкие результаты:\n", - "- Accuracy: Достигла значения 0.958, что ниже идеального, но все еще является приемлемым результатом.\n", - "- F1: Значение F1-меры равно 0.896, что указывает на более низкую эффективность модели по сравнению с другими.\n", - "- ROC AUC: KNN достигает значения ROC AUC 0.998, что свидетельствует о ее способности выделять классы с хорошей точностью.\n", - "- Cohen's Kappa: Значение Cohen's Kappa (0.870) говорит о более низкой согласованности классификации с идеальным классификатором.\n", - "- MCC: Значение MCC (0.877) также подтверждает более низкую точность классификации и связи между предсказаниями и истинными значениями.\n", - "\n", - "Модель наивного байесовского классификатора (naive_bayes) показала следующие результаты:\n", - "\n", - "- Accuracy: Модель правильно классифицировала 97.88% объектов в тестовом наборе. Это довольно хороший результат, но не идеальный.\n", - "- F1-мера: Значение F1-меры 0.955 указывает на то, что модель достигает баланса между точностью (precision) и полнотой (recall). Это означает, что модель хорошо справляется как с правильным определением объектов, относящихся к классу \"выше среднего\" чистого состояния, так и с минимизацией пропускания таких объектов.\n", - "- ROC AUC: Модель достигла значения ROC AUC 0.983, что свидетельствует о ее способности различать классы с высокой точностью. \n", - "- Cohen's Kappa: Значение 0.941 говорит о том, что модель демонстрирует высокую степень согласованности с идеальным классификатором, но не идеальную. \n", - "- MCC: MCC 0.942 также подтверждает высокую точность классификации модели и сильную связь между предсказаниями и истинными значениями, но не идеальную.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__ROC-кривая, каппа Коэна, коэффициент корреляции Мэтьюса__" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "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
decision_tree1.0000001.0000001.0000001.0000001.000000
gradient_boosting1.0000001.0000001.0000001.0000001.000000
random_forest1.0000001.0000001.0000001.0000001.000000
ridge0.9865380.9721120.9994710.9632410.963361
logistic0.9596150.9074890.9994300.8819410.888152
mlp0.8730770.6489360.9334470.5808910.628281
knn0.8461540.5505620.8832070.4745350.534367
naive_bayes0.3903850.3984820.5471240.0531660.096181
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 52, - "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": "markdown", - "metadata": {}, - "source": [ - "- Decision Tree, Gradient Boosting и Random Forest показали идеальные результаты, что может указывать на переобучение или на то, что данные были простыми для классификации.\n", - "\n", - "- Ridge и Logistic Regression показали высокие результаты, что указывает на их эффективность в данной задаче классификации.\n", - "\n", - "- MLP показала средние результаты, что может указывать на необходимость настройки гиперпараметров или использования более сложной архитектуры.\n", - "\n", - "- KNN и Naive Bayes показали низкие результаты, что указывает на их неэффективность в данной задаче классификации." - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'decision_tree'" - ] - }, - "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": 55, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n" - ] - }, - { - "data": { - "text/plain": [ - "'Error items count: 0'" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Преобразование тестовых данных\n", - "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", - "# Получение предсказаний лучшей модели\n", - "y_pred = class_models[best_model][\"preds\"]\n", - "\n", - "# Нахождение индексов ошибок\n", - "error_index = y_test[y_test[\"above_average_networth\"] != y_pred].index.tolist() # Изменено на \"above_average_networth\"\n", - "display(f\"Error items count: {len(error_index)}\")\n", - "\n", - "# Создание DataFrame с ошибочными объектами\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 = error_df.sort_index() # Сортировка по индексу" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Пример использования обученной модели (конвейера) для предсказания" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "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", - "
RankNameNetworthAgeCountrySourceIndustry
17011645Zugen Ni1.865ChinaappliancesManufacturing
\n", - "
" - ], - "text/plain": [ - " Rank Name Networth Age Country Source Industry\n", - "1701 1645 Zugen Ni 1.8 65 China appliances Manufacturing " - ] - }, - "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", - "
NetworthAgeCountry_ArgentinaCountry_AustraliaCountry_AustriaCountry_BarbadosCountry_BelgiumCountry_BelizeCountry_BrazilCountry_Bulgaria...Industry_ManufacturingIndustry_Media & EntertainmentIndustry_Metals & MiningIndustry_Real EstateIndustry_ServiceIndustry_SportsIndustry_TechnologyIndustry_TelecomIndustry_diversifiedNetworth_per_Age
1701-0.2795820.0386930.00.00.00.00.00.00.00.0...1.00.00.00.00.00.00.00.00.0-7.22566
\n", - "

1 rows × 857 columns

\n", - "
" - ], - "text/plain": [ - " Networth Age Country_Argentina Country_Australia \\\n", - "1701 -0.279582 0.038693 0.0 0.0 \n", - "\n", - " Country_Austria Country_Barbados Country_Belgium Country_Belize \\\n", - "1701 0.0 0.0 0.0 0.0 \n", - "\n", - " Country_Brazil Country_Bulgaria ... Industry_Manufacturing \\\n", - "1701 0.0 0.0 ... 1.0 \n", - "\n", - " Industry_Media & Entertainment Industry_Metals & Mining \\\n", - "1701 0.0 0.0 \n", - "\n", - " Industry_Real Estate Industry_Service Industry_Sports \\\n", - "1701 0.0 0.0 0.0 \n", - "\n", - " Industry_Technology Industry_Telecom Industry_diversified \\\n", - "1701 0.0 0.0 0.0 \n", - "\n", - " Networth_per_Age \n", - "1701 -7.22566 \n", - "\n", - "[1 rows x 857 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'predicted: 0 (proba: [1. 0.])'" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "'real: 0'" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "# Выбираем лучшую модель\n", - "model = class_models[best_model][\"pipeline\"]\n", - "\n", - "# Выбираем позицию объекта для анализа\n", - "example_position = 127\n", - "\n", - "# Получаем исходные данные для объекта по позиции\n", - "test = pd.DataFrame(X_test.iloc[example_position, :]).T\n", - "display(test)\n", - "\n", - "# Получаем преобразованные данные для объекта по позиции\n", - "test_preprocessed = pd.DataFrame(preprocessed_df.iloc[example_position, :]).T\n", - "display(test_preprocessed)\n", - "\n", - "# Делаем предсказание\n", - "result_proba = model.predict_proba(test)[0]\n", - "result = model.predict(test)[0]\n", - "\n", - "# Получаем реальное значение\n", - "real = int(y_test.iloc[example_position].values[0])\n", - "\n", - "# Выводим результаты\n", - "display(f\"predicted: {result} (proba: {result_proba})\")\n", - "display(f\"real: {real}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Подбор гиперпараметров методом поиска по сетке" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'model__criterion': 'gini',\n", - " 'model__max_depth': 5,\n", - " 'model__max_features': 'sqrt',\n", - " 'model__n_estimators': 50}" - ] - }, - "execution_count": 60, - "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, 50, 100],\n", - " \"model__max_features\": [\"sqrt\", \"log2\"],\n", - " \"model__max_depth\": [5, 7, 10],\n", - " \"model__criterion\": [\"gini\", \"entropy\"],\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": 61, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", - " warnings.warn(\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", - " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n" - ] - } - ], - "source": [ - "optimized_model = ensemble.RandomForestClassifier(\n", - " random_state=random_state,\n", - " criterion=\"gini\",\n", - " max_depth=5,\n", - " max_features=\"log2\",\n", - " n_estimators=10,\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": 62, - "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": 63, - "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        
Old1.0000001.0000001.0000001.0000001.0000001.0000001.0000001.000000
New0.0000000.0000000.0000000.0000000.7783650.7615380.0000000.000000
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 63, - "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": "markdown", - "metadata": {}, - "source": [ - "Как для обучающей (Precision_train), так и для тестовой (Precision_test) выборки обе модели достигли идеальных значений 1.000000. Это указывает на то, что модели очень точно классифицируют положительные образцы, не пропуская их." - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "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     
Old1.0000001.0000001.0000001.0000001.000000
New0.7615380.0000000.9995720.0000000.000000
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 64, - "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": "markdown", - "metadata": {}, - "source": [ - "Оба варианта модели продемонстрировали безупречную точность классификации, достигнув значения 1.000000. Это свидетельствует о том, что модели точно классифицировали все тестовые примеры, не допустив никаких ошибок в предсказаниях." - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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rklu/70LAAAAAAD564Yap/Hx8erbt68iIyP1559/SpLee+89nvMGACg4hh0XSYMGDSLXAACOY+dcc0W5bpx++umnioqKko+Pj7Zv3660tDRJUnJysp5//nm7VxAAgKuyc4h7e3uTawAAx6FxmvvG6ZQpUzR79my988478vDwMNffeeed2rZtm10rBwBAQZkxYwa5BgCAA+V6QqT9+/erWbNmV6wPCAjQ2bNn7VEnAAD+U35PHEGuAQAKEhMi3UDPaUhIiA4cOHDF+o0bN6pKlSp2qRQAAP/JsNhvuQpyDQBQoPI511xBrhungwYN0uOPP64ffvhBFotFR48eVVxcnEaMGKHBgwfnRx0BAMh3P/74I7kGAIAD5XpY7zPPPCOr1apWrVrpwoULatasmby8vDRixAgNHTo0P+oIAMCV7Pyw8k6dOunixYvkGgDAMeyca64o141Ti8WiZ599ViNHjtSBAweUmpqqmjVrytfXNz/qBwBAgTh06JBOnDhBrgEA4CC5bpxe5unpqZo1a9qzLgAA5Ji9J44g1wAAjsSESDfQOG3ZsqUslmvfZPvtt9/mqUIAAOSInYc/dezYUUWKXBmL5BoAoEAwrDf3jdN69erZvM7IyNCOHTv0008/qX///vaqFwAABapWrVry8vIi1wAAcJBcN05fffXVq66fMGGCUlNT81whAAByxE7Dny5fYX7hhRfk7+9vribXAAAFys655opy/SiZa+nbt6/effddexUHAMD1GXZcroJcAwAUqHzONVdgt8ZpQkKCvL297VUcAAAORa4BAFCwcj2st1u3bjavDcPQsWPH9OOPP2rs2LF2qxgAANdl54kjoqOj5eHhQa4BAByDCZFy3zgNCAiwee3m5qawsDBNmjRJbdu2tVvFAAC4HntPue/v7y9PT09yDQDgEDxKJpeN06ysLD3wwAOqXbu2ihcvnl91AgCgwM2aNctmQiQAAFCwcnXPqbu7u9q2bauzZ8/mU3UAAAAAADejXE+IVKtWLf3222/5URcAAAAAwE0q143TKVOmaMSIEVq2bJmOHTumlJQUmwUAgAJh5yn3V6xYQa4BAByHR8nk/J7TSZMm6amnntLdd98tSbrnnntksVjM7YZhyGKxKCsry/61BADgX+w9cUTPnj3l5vb3NVtyDQBQkJgQKReN04kTJ+qRRx7R2rVr87M+AAA4xPLly1WsWDFHVwMAgJtWjhunhpHdBG/evHm+VQYAgFyx49XhJk2aMFsvAMCxXLjX0x5y9SiZfw7jBQDAoXhYOQCgMCHXctc4rVGjxn82UE+fPp2nCgEA4AgVK1a8asaRawAAFIxcNU4nTpyogICA/KoLAAA5Zu+JI2JiYuTj45P3AgEAuAFMiJTLxmmvXr1UunTp/KoLAAA5Z+fhT3369OGeUwCA4zCsN+fPOeV+UwAAAABAfsn1bL0AADgDhj8BAAoTci0XjVOr1Zqf9QAAIHcY/gQAKEzItZwP6wUAAAAAIL/kakIkAACcBleYAQCFCblGzykAAAAAwPHoOQUAuCQmjgAAFCbkGo1TAICrYvgTAKAwIdcY1gsAAAAAcDx6TgEArokrzACAwoRco3EKAHBN3JsDAChMyDWG9QIAkCsbNmxQp06dFBoaKovFos8//9xm+4ABA2SxWGyWdu3a2exz+vRpRUdHy9/fX4GBgRo4cKBSU1ML8CwAAMjmTLlG4xQA4JoMOy65cP78edWtW1dvvvnmNfdp166djh07Zi4ffPCBzfbo6Gjt2bNHq1at0rJly7RhwwY9/PDDuasIAKBwIdcY1gsAcE2OGv7Uvn17tW/f/rr7eHl5KSQk5Krb9u3bpxUrVmjLli1q2LChJGnGjBm6++679fLLLys0NDR3FQIAFArkGj2nAABIklJSUmyWtLS0Gy5r3bp1Kl26tMLCwjR48GCdOnXK3JaQkKDAwEAzwCWpdevWcnNz0w8//JCncwAA4DJXzDUapwAA12Tn4U/ly5dXQECAucTExNxQtdq1a6eFCxdqzZo1evHFF7V+/Xq1b99eWVlZkqSkpCSVLl3a5j1FihRRUFCQkpKSbuiYAIBCgFxjWC8AAJJ05MgR+fv7m6+9vLxuqJxevXqZ/1+7dm3VqVNHVatW1bp169SqVas81xMAgJxwxVyj5xQA4JrsfIXZ39/fZrnREP+3KlWqqGTJkjpw4IAkKSQkRCdOnLDZJzMzU6dPn77m/TwAgJsAuUbjFADgmix2XPLTH3/8oVOnTqlMmTKSpMjISJ09e1Zbt2419/n2229ltVrVuHHjfK4NAMBZkWsM6wUAIFdSU1PNq8WSdPDgQe3YsUNBQUEKCgrSxIkT1b17d4WEhCgxMVFPP/20qlWrpqioKElSRESE2rVrp0GDBmn27NnKyMjQY489pl69ejFTLwCgwDlTrtFzCgBwTQ56HtyPP/6oW2+9Vbfeeqsk6cknn9Stt96qcePGyd3dXbt27dI999yjGjVqaODAgWrQoIHi4+NthlPFxcUpPDxcrVq10t13360mTZpozpw5N/6zAAC4PnKNnlMAgGty1PPgWrRoIcO49ptWrlz5n2UEBQVp0aJFuTswAKBQI9foOQUAAAAAOAF6TgEArukGhi5dsxwAAByNXKNxCgBwYS4cwAAAXOEmzzWG9QIAAAAAHI6eUwCAS3LUxBEAAOQHco3GKQDAVXFvDgCgMCHXaJwC9tBpwF+6d/AJBZXK1G97ffTWc2W1f0dRR1cL+ejWSkd1f9OdCg89qVL+FzTi/Sit31dZkuTulqXBbbbozhqHVTYoRamXPLU5sZxmrmysv84Vu6IsD/cszR/8mWqUOaXomffql2MlC/p0ANwk+OxCXvGdB/nJ6e85XbdunSwWi86ePevoqgBX1fyeM3p4/FHFvRKiIVE19Nteb01d9JsCSmQ4umrIRz6emfrlWAlNW9r0im3eHpkKDz2p2LX1df+b9+rpRVGqWPKspt+/4qplDWuXoJMpBHtuXR7+ZI+lIJFrcCQ+u5AXfOfJX66aa/bkFI3ThIQEubu7q0OHDo6uyg1x9fojb7o9/JdWLArSN4uDdPhXb70xqpzSLloU1fu0o6uGfPTdLxU0e/VtWre38hXbzqd56bF5nbT6p2o69FegfjoSrJeWNlHNsicVHHDOZt87ahxW42p/6PWvIwuq6igArp4Lrl5/XBufXcgLvvMgvzlF4zQ2NlZDhw7Vhg0bdPToUUdXJ9cKsv6GYSgzMzNfj4GcK+JhVfU6F7Qt3s9cZxgWbY/3U80GFxxYMzgbX+90Wa1S6iUvc11QsQsa02W9xn9yly5lcJdFrhl2XOyMXMs5cs258dmFy/jOUwCcONcKisMbp6mpqVq8eLEGDx6sDh06aP78+Vfdb9OmTapTp468vb11++2366effrLZ/umnn+qWW26Rl5eXKlWqpOnTp5vbxowZo8aNG19RZt26dTVp0iTz9dy5cxURESFvb2+Fh4frrbfeylP9+/Tpo549e9rsn5GRoZIlS2rhwoWSJKvVqpiYGFWuXFk+Pj6qW7euPvnkE3P/y8O/vv76azVo0EBeXl7auHGjEhMT1blzZwUHB8vX11eNGjXS6tWrbY517NgxdejQQT4+PqpcubIWLVqkSpUq6bXXXjP3OXv2rB566CGVKlVK/v7+uuuuu7Rz587/PG9k8w/KknsR6exJ23A+81cRFS/Fly1k8yySqceivtc3u6rpfJrn/9YaGn/vWn22uab2/VnaofVzVc46/IlcI9cKCz678E9858l/zpprBcnhjdOPPvpI4eHhCgsLU9++ffXuu+/KMK78iY4cOVLTp0/Xli1bVKpUKXXq1EkZGdnj27du3aoePXqoV69e2r17tyZMmKCxY8eagRodHa3NmzcrMTHRLG/Pnj3atWuX+vTpI0mKi4vTuHHjNHXqVO3bt0/PP/+8xo4dqwULFtxw/aOjo7V06VKlpqaa+69cuVIXLlxQ165dJUkxMTFauHChZs+erT179mj48OHq27ev1q9fb3OcZ555Ri+88IL27dunOnXqKDU1VXfffbfWrFmj7du3q127durUqZMOHz5svqdfv346evSo1q1bp08//VRz5szRiRMnbMq97777dOLECX399dfaunWr6tevr1atWun06asPz0hLS1NKSorNAuDa3N2yFNNrlSwW6YUvm5nre0b+pKKeGZq//lYH1g75gVwj1woDPrsAOILDx2LExsaqb9++kqR27dopOTlZ69evV4sWLWz2Gz9+vNq0aSNJWrBggcqVK6clS5aoR48eeuWVV9SqVSuNHTtWklSjRg3t3btXL730kgYMGKBbbrlFdevW1aJFi8x94uLi1LhxY1WrVs0sf/r06erWrZskqXLlytq7d6/efvtt9e/f/4bqHxUVpWLFimnJkiW6//77JUmLFi3SPffcIz8/P6Wlpen555/X6tWrFRmZfc9GlSpVtHHjRr399ttq3ry5eZxJkyaZ5y9JQUFBqlu3rvl68uTJWrJkib788ks99thj+vnnn7V69Wpt2bJFDRs2lJR9Bb169ermezZu3KjNmzfrxIkT8vLKHq7z8ssv6/PPP9cnn3yihx9++IrzjYmJ0cSJE6/587jZpJx2V1amFPivK4bFS2bqzEmH//OCg7m7ZSmm9yqFBKbq0dhO/+h5kBpW+VO1KxzXponv2LxnweBPtWJndU389K6Crq7rcdIp98k1cs3V8dmFq+E7TwFw0lwrSA7tOd2/f782b96s3r17S5KKFCminj17KjY29op9L4eclB1gYWFh2rdv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TN16663avn27Bg0apGLFiql///65rhMKGM+DA1wWuXYlcg3kGo1TwKkZhqE1a9Zo5cqVGjp0qLm+WLFimjt3rjns6f3335fVatXcuXNlsVgkSfPmzVNgYKDWrVuntm3b6rXXXtPo0aPVrVs3SdLs2bO1cuXKax77l19+0UcffaRVq1apdevWkqQqVaqY2y8PlSpdurQCAwMlZV+Rfv7557V69WpFRkaa79m4caPefvttNW/eXLNmzVLVqlU1ffp0SVJYWJh2796tF198MVc/m+eee878/0qVKmnEiBH68MMPbUL80qVLWrhwocqWLStJmjFjhjp06KDp06crJCRE48eP1/Tp082fSeXKlbV37169/fbbhDgA5ANy7drINYDGKeCUli1bJl9fX2VkZMhqtapPnz6aMGGCub127do29+Ps3LlTBw4ckJ+fn005ly5dUmJiopKTk3Xs2DE1btzY3FakSBE1bNjwiiFQl+3YsUPu7u5q3rx5jut94MABXbhwQW3atLFZn56erltvvVWStG/fPpt6SDIDPzcWL16sN954Q4mJiUpNTVVmZqb8/f1t9qlQoYIZ4JePY7VatX//fvn5+SkxMVEDBw7UoEGDzH0yMzMVEBCQ6/rAAQzZ6Qpz3osAcH3k2n8j10Cu0TgFnFLLli01a9YseXp6KjQ0VEWK2P5TLVasmM3r1NRUNWjQwBzW80+lSpW6oTpcHs6UG6mpqZKk5cuX24SnlH2/kb0kJCQoOjpaEydOVFRUlAICAvThhx+aV61zU9d33nnnii8V7u7udqsr8hHDnwCXQa5dH7kGSeSaaJwCTqlYsWKqVq1ajvevX7++Fi9erNKlS19xlfWyMmXK6IcfflCzZs0kZV9J3bp1q+rXr3/V/WvXri2r1ar169ebw5/+6fIV7qysLHNdzZo15eXlpcOHD1/zynRERIQ5CcZl33///X+f5D989913qlixop599llz3aFDh67Y7/Dhwzp69KhCQ0PN47i5uSksLEzBwcEKDQ3Vb7/9pujo6FwdHwCQO+Ta9ZFrQDZm6wUKgejoaJUsWVKdO3dWfHy8Dh48qHXr1mnYsGH6448/JEmPP/64XnjhBX3++ef6+eef9eijj173WW6VKlVS//799eCDD+rzzz83y/zoo48kSRUrVpTFYtGyZct08uRJpaamys/PTyNGjNDw4cO1YMECJSYmatu2bZoxY4YWLFggSXrkkUf066+/auTIkdq/f78WLVqk+fPn5+p8q1evrsOHD+vDDz9UYmKi3njjDS1ZsuSK/by9vdW/f3/t3LlT8fHxGjZsmHr06KGQkBBJ0sSJExUTE6M33nhDv/zyi3bv3q158+bplVdeyVV94CBWq/0WAE6FXCPXbkrkGo1ToDAoWrSoNmzYoAoVKqhbt26KiIjQwIEDdenSJfOK81NPPaX7779f/fv3V2RkpPz8/NS1a9frljtr1izde++9evTRRxUeHq5Bgwbp/PnzkqSyZctq4sSJeuaZZxQcHKzHHntMkjR58mSNHTtWMTExioiIULt27bR8+XJVrlxZUvb9Mp9++qk+//xz1a1bV7Nnz9bzzz+fq/O95557NHz4cD322GOqV6+evvvuO40dO/aK/apVq6Zu3brp7rvvVtu2bVWnTh2bKfUfeughzZ07V/PmzVPt2rXVvHlzzZ8/36wrAMAxyDVyDTcni3Gtu8YBAHBCKSkpCggIUOtSA1XEzfO/3/AfMq3pWn0yVsnJydccPggAQH4h1/7GPacAANfExBEAgMKEXGNYLwAAAADA8eg5BQC4JqshuzzMzeq6V5gBAIUIuUbjFADgmgzDKsPI+4yE9igDAIC8ItcY1gsAAAAAcAL0nAIAXJNh2GfokgtPHAEAKETINRqnAAAXZdjp3hwXDnEAQCFCrjGsFwAAAADgePScAgBck9UqWeww6YMLTxwBAChEyDUapwAAF8XwJwBAYUKuMawXAAAAAOB49JwCAFySYbXKsMPwJ1d+HhwAoPAg1+g5BQAAAAA4AXpOAQCuiXtzAACFCblG4xQA4KKshmS5uUMcAFCIkGsM6wUAAAAAOB49pwAA12QYkuzxPDjXvcIMAChEyDUapwAA12RYDRl2GP5kuHCIAwAKD3KNYb0AAAAAACdA4xQA4JoMq/2WG/Dmm2+qUqVK8vb2VuPGjbV582Y7nyAA4KZCrtE4BQC4JsNq2G3JrcWLF+vJJ5/U+PHjtW3bNtWtW1dRUVE6ceJEPpwpAOBmQK7ROAUAINdeeeUVDRo0SA888IBq1qyp2bNnq2jRonr33XcdXTUAAHLNWXKNxikAwDU5aPhTenq6tm7dqtatW5vr3Nzc1Lp1ayUkJNj7LAEANwtyjdl6AQCuKVMZkh0mJMxUhiQpJSXFZr2Xl5e8vLyu2P+vv/5SVlaWgoODbdYHBwfr559/znuFAAA3JXKNxikAwMV4enoqJCREG5O+sluZvr6+Kl++vM268ePHa8KECXY7BgAAV0Ou/Y3GKQDApXh7e+vgwYNKT0+3W5mGYchisdisu9rVZUkqWbKk3N3ddfz4cZv1x48fV0hIiN3qBAC4OZBrf6NxCgBwOd7e3vL29nbIsT09PdWgQQOtWbNGXbp0kSRZrVatWbNGjz32mEPqBABwbeRaNhqnAADk0pNPPqn+/furYcOGuu222/Taa6/p/PnzeuCBBxxdNQAAcs1Zco3GKQAAudSzZ0+dPHlS48aNU1JSkurVq6cVK1ZcMZkEAACuwFlyzWIYhh3mhAIAAAAA4MbxnFMAAAAAgMPROAUAAAAAOByNUwAAAACAw9E4BQAAAAA4HI1TAAAAAIDD0TgFAAAAADgcjVMAAAAAgMPROAUAAAAAOByNUwAAAACAw9E4BQAAAAA4HI1TAAAAAIDD0TgFAAAAADjc/wNN5t8iblBPygAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "_, ax = plt.subplots(1, 2, figsize=(10, 4), sharex=False, sharey=False)\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=[\"Below Average\", \"Above Average\"] \n", - " ).plot(ax=ax.flat[index])\n", - " disp.ax_.set_title(optimized_metrics.index[index])\n", - "\n", - "plt.subplots_adjust(top=1, bottom=0, hspace=0.4, wspace=0.3)\n", - "plt.show()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "В желтом квадрате мы видим значение 396, что обозначает количество правильно классифицированных объектов, отнесенных к классу \"Below Average\". Это свидетельствует о том, что модель успешно идентифицирует объекты этого класса, минимизируя количество ложных положительных срабатываний.\n", - "\n", - "В зеленом квадрате значение 124 указывает на количество правильно классифицированных объектов, отнесенных к классу \"Above Average\". Это также является показателем высокой точности модели в определении объектов данного класса." - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -4813,17 +1889,6 @@ "## Определение достижимого уровня качества модели для второй задачи (задача регрессии)" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "__2. Прогнозирование цены закрытия акций:__\n", - "\n", - "\n", - "Описание: Оценить, какая будет цена закрытия акций Starbucks на следующий день или через несколько дней на основе исторических данных.\n", - "Целевая переменная: Цена закрытия (Close). (среднее значение)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -6431,14 +3496,14 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 92, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1] during transform. These unknown categories will be encoded as all zeros\n", + "c:\\Users\\Admin\\Desktop\\5 semestr\\mii\\AIM-PIbd-32-Safiulova-K-N\\aimenv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0, 1, 2] during transform. These unknown categories will be encoded as all zeros\n", " warnings.warn(\n" ] }, @@ -6448,17 +3513,17 @@ "text": [ "Fitting 3 folds for each of 36 candidates, totalling 108 fits\n", "Старые параметры: {'max_depth': 20, 'min_samples_split': 2, 'n_estimators': 50}\n", - "Лучший результат (MSE) на старых параметрах: 5.760387482085847\n", + "Лучший результат (MSE) на старых параметрах: 72.77165438366572\n", "\n", "Новые параметры: {'max_depth': 10, 'min_samples_split': 10, 'n_estimators': 200}\n", - "Лучший результат (MSE) на новых параметрах: 13.643983185514095\n", - "Среднеквадратическая ошибка (MSE) на тестовых данных: 0.024952019817877404\n", - "Корень среднеквадратичной ошибки (RMSE) на тестовых данных: 0.15796208348169316\n" + "Лучший результат (MSE) на новых параметрах: 198.80731577162513\n", + "Среднеквадратическая ошибка (MSE) на тестовых данных: 521.3309669218118\n", + "Корень среднеквадратичной ошибки (RMSE) на тестовых данных: 22.83267323205524\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAHWCAYAAACi1sL/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABj9klEQVR4nO3dd3gU1fv38c+GhPRGCRBK6DWIFAuggKIERKqCEJAqKiJFioAKISBGRIoKoqAColQFVCx8ld4ldGlSQpFeE5KQBJJ5/uDJ/nZJArthUwjv13XtRebMmTP3DJNM7pwzZ0yGYRgCAAAAAEiSnHI6AAAAAADITUiSAAAAAMACSRIAAAAAWCBJAgAAAAALJEkAAAAAYIEkCQAAAAAskCQBAAAAgAWSJAAAAACwQJIEAAAAABZIkgAAAADAAkkScJ84cuSIXnvtNZUtW1Zubm7y8fFR/fr19cknn+j69es5Hd4DY/Xq1TKZTDKZTPruu+/SrVO/fn2ZTCYFBwdblSclJemTTz5RzZo15ePjIz8/P1WrVk2vvvqqDhw4YK43a9Ys8z7S+2zevDlLjxEAgAedc04HAODufv31V7Vr106urq7q0qWLgoODlZSUpPXr12vIkCHau3evpk+fntNhPlDc3Nw0d+5cde7c2ar82LFj2rhxo9zc3NJs88ILL+j3339Xx44d1atXL924cUMHDhzQsmXLVK9ePVWuXNmq/ujRo1WmTJk07ZQvX96xBwMAAKyQJAG5XFRUlDp06KCgoCCtXLlSxYoVM6/r06ePDh8+rF9//TUHI3wwPffcc/r555918eJFFSpUyFw+d+5cFSlSRBUqVNCVK1fM5Vu3btWyZcs0duxYvfPOO1ZtTZkyRVevXk2zj2bNmqlOnTpZdgwAACB9DLcDcrmPPvpIsbGx+vrrr60SpFTly5dX//79zcsmk0lvvvmmvv/+e1WqVElubm6qXbu21q5da7Xd8ePH9cYbb6hSpUpyd3dXwYIF1a5dOx07dsyq3u1Dvzw8PFS9enV99dVXVvW6desmLy+vNPH98MMPMplMWr16tVX5li1b1LRpU/n6+srDw0MNGzbUhg0brOqMGjVKJpNJFy9etCqPjIyUyWTSrFmzrPZfunRpq3onT56Uu7u7TCZTmuP6/fff9eSTT8rT01Pe3t5q3ry59u7dmyb+jLRq1Uqurq5atGiRVfncuXPVvn175cuXz6r8yJEjkm4Nxbtdvnz5VLBgQZv3bYtjx45lOFzv9nMhSY0aNUq3ruU5lqRp06YpODhYHh4eVvV++OGHu8Z06tQp9ezZU4GBgXJ1dVWZMmXUu3dvJSUl3XWIoWUsu3fvVrdu3cxDT4sWLaoePXro0qVLVvtLvX4OHDig9u3by8fHRwULFlT//v2VkJBgVTf1+yYjqfGlnruVK1fKyclJI0eOtKo3d+5cmUwmTZs27Y7nolGjRmrUqJFV2datW83HejeNGjVKM5xTkj7++ON0/48///xzVatWTa6urgoMDFSfPn3SJOa3XwOFChVS8+bN9c8//1jVy4lzdafrwvJYf/rpJzVv3tx8jZUrV05jxoxRcnJymjaDg4O1bds21atXT+7u7ipTpoy++OILq3pJSUkaOXKkateuLV9fX3l6eurJJ5/UqlWrrOpZfr8tXbrUal1CQoL8/f1lMpn08ccfW607deqUevTooSJFisjV1VXVqlXTN998Y15vObw3o8+oUaMk2Xe937x5U2PGjFG5cuXk6uqq0qVL65133lFiYqJVvdKlS5v34+TkpKJFi+qll17SiRMn7vh/BuQF9CQBudwvv/yismXLql69ejZvs2bNGi1YsED9+vWTq6urPv/8czVt2lR///23+RerrVu3auPGjerQoYNKlCihY8eOadq0aWrUqJH27dsnDw8PqzYnTZqkQoUKKSYmRt9884169eql0qVL65lnnrH7mFauXKlmzZqpdu3aCgsLk5OTk2bOnKmnn35a69at06OPPmp3m+kZOXJkml8OJGnOnDnq2rWrQkJCNG7cOMXHx2vatGl64okntGPHjjTJVno8PDzUqlUrzZs3T71795Yk7dq1S3v37tVXX32l3bt3W9UPCgqSJH3//feqX7++nJ3v/uM3Ojo6TYJoMpnsSqg6duyo5557TpL022+/ad68eRnWrVy5st59911J0sWLF/XWW29ZrV+wYIHeeOMNNWrUSH379pWnp6f279+vDz744K5xnD59Wo8++qiuXr2qV199VZUrV9apU6f0ww8/KD4+Xg0aNNCcOXPM9ceOHStJ5ngkmb8H/vzzTx09elTdu3dX0aJFzcNN9+7dq82bN6dJMtq3b6/SpUsrIiJCmzdv1qeffqorV67o22+/vWvcGXn66af1xhtvKCIi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dg+3W7hwoflFsg0bNlT37t114sQJ/fDDD2ratGlWxAgAAAAA2cbuJKlZs2b69ddf1bJlSyUmJqpTp0769ddfmRQBAAAAQJ5g93A7SXryySe1cuVKeXl5KSAgINMJ0tq1a9WiRQsFBgbKZDJp6dKlVusNw9DIkSNVrFgxubu765lnntGhQ4cytS8AAAAAsIXdPUlt27Y1fx0YGKgPP/xQGzdulL+/vyRp8eLFNrcVFxenGjVqqEePHlbtpvroo4/06aefavbs2SpTpoxGjBihkJAQ7du3T25ubvaGDgAAAAB3ZXeS5Ovra/66Zs2aqlmzZqZ33qxZMzVr1izddYZhaPLkyXrvvffUqlUrSdK3336rIkWKaOnSperQoUOm9wsAAAAAGbE7SZo5c2ZWxJFGVFSUzp49q2eeecZc5uvrq8cee0ybNm3KMElKTExUYmKieTkmJibLYwUAAACQd2T6ZbJHjx7Vvn37ZDKZVKVKFZUtW9aRcens2bOSpCJFiliVFylSxLwuPREREQoPD3doLAAAAAAeHHeduOHmzZsKDQ1VbGyspFs9M+3atVP58uXVpk0btW7dWhUqVFD79u117dq1LA/4boYPH67o6Gjz5+TJkzkdEgAAAID7yF2TJGdnZ/300086f/68JKl///76559/tG7dOiUkJCghIUFr1qzRP//8o7feesthgRUtWlSSdO7cOavyc+fOmdelx9XVVT4+PlYfAAAAALCVTVOAFypUSDdv3pQk/fzzz5oxY4bq16+vfPnyKV++fHriiSf05ZdfppnC+16UKVNGRYsW1YoVK8xlMTEx2rJli+rWreuw/QAAAACAJZueSSpfvry2bdumihUrKiUlRQUKFEhTx9/fX/Hx8XbtPDY2VocPHzYvR0VFaefOnSpQoIBKlSqlAQMG6P3331eFChXMU4AHBgaqdevWdu0HAAAAAGxlU09Sp06d9M477+jcuXOqX7++Ro0apYSEBPP669evKzw8XI8//rhdO4+MjLSaRnzgwIGqWbOmRo4cKUl6++231bdvX7366qt65JFHFBsbqz/++IN3JAEAAADIMibDMAxbKr722mv66aefFBwcrJUrV6pAgQKqUaOGJGnXrl1ycXHR77//rocffjgr47VbTEyMfH19FR0dzfNJAIDca64ppyMAgKwTalPKkeVszQ1sTpIkad26dfr1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T9kff/yhJ554Qn5+fipYsKCef/55HTlyxLz+2LFjMplMmj9/vurVqyc3NzcFBwdrzZo15jrJycnq2bOnObZKlSrpk08+sYol9d40ceJEq/I2bdpY3Wcl6eTJk2rfvr38/PxUoEABtWrVSseOHZN06+d4RveC1POV2hsYHh6uwoULy8fHR6+//rqSkpIyde6B25EkIU+4fPmy/vjjD/Xp00eenp5p1qcmD1u3btWZM2d05swZlShRQpMnTzYvv/TSS5IkJycnffrpp9q7d69mz56tlStX6u2337ZqLz4+XmPHjtW3336rDRs26OrVq+rQoUOmYl+3bp26dOmi/v37a9++ffryyy81a9YsjR079o7bNW3a1Bz7mTNnNHnyZKv1sbGxeu6557RixQrt2LFDTZs2VYsWLXTixAmreuPHj1eNGjW0Y8cODRs2TP3799eff/5pXm/L+fDw8NCmTZt06tQpc9n06dNVvHhxq3pvvvmmNm3apPnz52v37t1q166dmjZtqkOHDqlevXrmY/nxxx8lyer4Ujny3APAnWzbtk3t27dXhw4dtGfPHo0aNUojRoyw+mVfkkaPHq0zZ84oMjJSnp6e6tOnT6b2FxERoW+//VZffPGF9u7dq7feekudO3e2SlbSk7r/1E/79u2t1sfFxWngwIGKjIzUihUr5OTkpDZt2iglJcWq3pAhQzRo0CDt2LFDdevWVYsWLXTp0iVJtxK4EiVKaNGiRdq3b59Gjhypd955RwsXLrRqo3jx4poxY4Z5+fTp09qwYYM8PDzMZTdu3FBISIi8vb21bt06bdiwQV5eXmratKmSkpI0ePBg87EMGjRIdevWNS8vXrzY3M6KFSu0f/9+rV69WvPmzdPixYsVHh5u30kHMmIAecCWLVsMScbixYtt3iYoKMiYOXPmXestWrTIKFiwoHl55syZhiRj8+bN5rL9+/cbkowtW7YYhmEYYWFhRo0aNdJtb8mSJYblt17jxo2NDz74wKrOnDlzjGLFimUYU9euXY1WrVpZlc2cOdPw9fW947FUq1bN+Oyzz8zLQUFBRtOmTa3qvPTSS0azZs0ybCO98+Hr62v07dvXGD16tGEYhrFu3TqjevXqRqtWrYyuXbsahmEYx48fN/Lly2ecOnXKqr3GjRsbw4cPtypbtWqVkd6PJ0efewAPpq5duxr58uUzPD09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jRry9PQ0Lz/++OPKly+f9u3bp5iYGJ0+fTrdfe3fv9+qrG7duuavnZ2dVadOnTR17HXo0CF17NhRZcuWlY+Pj0qXLi1JOnHihF37njp1qmrXrq3ChQvLy8tL06dPT9OGJPXq1UvTp09XSkqKvv76a/Xq1ctq/a5du3T48GF5e3vLy8tLXl5eKlCggBISEqyGAd5NjRo1rHqo6tatq9jYWJ08eVJHjhzRjRs3rM65i4uLHn300TTns0SJEvL09FSFChX03HPPqWPHjjbHAAB5HRM3AADSdfToUZUpUybD9f7+/jp+/Hi660wmU1aFZbMWLVooKChIM2bMUGBgoFJSUhQcHGz1/M7dzJ8/X4MHD9aECRNUt25deXt7a/z48dqyZUuaup07d1ZYWJjmz5+vokWLqnr16lbrY2NjVbt2bX3//fdpti1cuLD9B3iP1q1bJ29vb0VFRenVV1/VxIkT0wypBIAHFT1JAPCAqVKlijZs2GBVtmHDBlWsWFH58uUzl61du1ZPPvlkhu1UrlxZu3btUlxcnLls8+bNSk5OVpUqVeTj46PAwMB091W1alWrss2bN5u/vnnzprZt26YqVapk6vikW71gBw8e1HvvvafGjRurSpUqunLlSrp177TvDRs2qF69enrjjTdUs2ZNlS9fPsNeHz8/P7Vs2VKvv/56ml4kSapVq5YOHTqkgIAAlS9f3urj6+tr87Ht2rVL169ft4rfy8tLJUuWVLly5ZQ/f36rc37jxg1t3bo1zTkvU6aMypcvr2effVYvvPCClixZYnMMAJDXkSQBwANm0KBBWrFihcaMGaN///1Xs2fP1pQpUzR48GBJ0vXr1/XZZ5/pyJEjatasmc6ePauzZ88qNjZWN2/eNE8AEBoaKhcXF3Xp0kV79uzRunXr1KtXL7Vt21bly5eXdGtShHHjxmnBggU6ePCghg0bpp07d6p///5WMU2dOlVLlizRgQMH1KdPH125csVqAgh7+fv7q2DBgpo+fboOHz6slStXauDAgenWvdO+K1SooMjISC1fvlz//vuvRowYYTVT3O2GDRumd955Ry+99FKadZ06dVKhQoXUqlUrrVu3TlFRUVq9erX69eun//77z+ZjS0pKUs+ePbVv3z799ttvCgsL05tvviknJyd5enqqd+/eGjJkiP744w/t27dPvXr1Unx8vHr27GnVzvnz53X27Flt2bJFv/zyiypXrmxzDACQ1zHcDgAeMLVq1dLChQs1cuRIjRkzRsWKFdPo0aPVrVs3SdKCBQvUr18/SdJjjz2WZvu2bdtq9erV8vb21u+//66BAwfqkUcekYeHh1q1aqXJkyeb6/br10/R0dEaNGiQzp8/r6pVq+rnn39WhQoVrNr88MMP9eGHH2rnzp0qX768fv75ZxUqVCjTx+jk5KT58+erX79+Cg4OVqVKlfTpp5+ap9K2dd+vvfaaduzYoZdeekkmk0kdO3bUG2+8od9//z3d/VaqVEnDhg1Ld52Hh4fWrl2roUOHqm3btrp27ZqKFy+uxo0b3/XZL0uNGzdWhQoV1KBBAyUmJqpjx44aNWqU1fGkpKTo5Zdf1rVr11SnTh0tX75c/v7+aWKVpEKFCqlJkyb66KOPbI4BAPI6k2EYRk4HAQDIPWbNmqXVq1enOyX4zp07NWDAAK1evdoh+zp27JjKlCmjHTt2WL2DKTvk5L4zq1u3brp69aqWLl2a06EAQJ7GcDsAgBV3d/cMn5FxcXFJ9+W0AADkJQy3AwBYeemll9J9pkaSqlWrZvViUwAA8iKG2wEAAACABYbbAQAAAIAFkiQAAAAAsECSBAAAAAAWSJIAAAAAwAJJEgAAAABYIEkCAAAAAAskSQAAAABggSQJAAAAACz8PyI0BN5yWyWVAAAAAElFTkSuQmCC", + "image/png": "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SAkhhChxunXrxty5c/WCiQoVKvD111/TrVs3UlJS8l1/9mBNpVLpBFO5BWvm4ujoqLcQvUZQUBCnT5/Ocf+JEyeIi4tj2rRp+Pj4AHDkyBG9cocPH0alUukkXjDE398fNzc3AgICePXVV9m/f7/Ofh8fH522ZA/6NLy9vbVlhg8fTqdOnUhPT9d7XtevX8fKygo/P79c2/Q4Td2ff/459erV4/bt23h4eADqoW/Z2+fu7q5z7N69e/n++++1PZBXrlzh9u3bOmWGDBlC//79uXbtGoqiMHr0aG1WyBo1amBra0t0dHSew/g01zI3Gzdu5Pz582zevNng/qZNm/Lyyy+za9culixZwrp165gyZUqudQohCoYEUkIIIUqkx4dJffjhh3z11VdmC266devG6tWrDS76qwnWisLo0aNp2rQpQ4cOZeDAgTg6OnL69Gm2bt3Kt99+i6+vLzY2NsybN4933nmHkydPMnnyZJ06tm/fzpAhQ3jhhRfynEuWmppKSkoKUVFR/PXXX7Rs2dLkNqenp5OSksK9e/dYsmQJVapUwdraWqdMu3btaNasGV26dGH69OlUqVKFa9eusXnzZrp27UrDhg316t2xYweZmZlUrlyZO3fuMHHiRHx8fLRBlDECAwO1WQ4TEhL46KOP9BI8gDrhR+XKlQFwdnbWZuBzdnZm1KhRjBw5kqysLFq2bEl8fDx79+7FxcWFvn37mnClYPr06cybNy/HYXtr1qxh0aJFHD16FF9f36diLqAQJZVk7RNCCFEinTp1SuexlZWV2XuIunXrRlRUFNu3b2fZsmVs376dyMjIIguiAOrUqcPOnTs5f/48rVq1on79+owfP147RK9MmTIsWrSIVatWUaNGDaZNm8bMmTN16ujfvz+tWrViyZIleZ7P29sbe3t7WrVqRd26dZk6darJbe7Rowf29vZUqVKF2NhYVq5cqVdGpVJp55y99dZbVKlShddff53Lly/j5eVlsN67d+/y/vvvU716ddq3b096enqOPTk5+fnnn7l79y5BQUG8+eabDBs2zOTgZPLkyYwbN46pU6dSvXp1QkND2bx5M/7+/ibVA+retZyCr/PnzzNw4ECWLVuGr6+vyXULIcxLpZi6uMVTKCEhAVdXV+Lj43FxcSnq5gghhDBCr169WL58OeXKlePatWt0795dZ+2elJQUIiMj8ff3lzkkQgghdOT2N8LY2EB6pIQQQpRIp0+fBqBTp04AeWZ2E0IIIcxJAikhhBAlTmZmJmfPngXg5ZdfBtRpqGWQhRBCiMIigZQQQogS59KlS6SmpmJvb09wcDAqlYrExERu3bpV1E0TQgjxjJBASgghRImjGdZXvXp1HBwctBn8Ll68WJTNEkII8QyRQEoIIUSJo8nYV7NmTeDROkIyT0oIIURhkUBKCCFEiaPpkapRowaAdn0f6ZESQghRWCSQEkIIUeI8HkhJj5QQQojCJoGUEEKIEiUzM5MzZ84Aj4b2SY+UEEKIwiaBlBBCiBIlKiqKlJQU7Ozs8PPzA6RHSgghROGTQEoIIUSJohnWV61aNSwtLYFHPVK3b98mPj6+yNomhDCPtLQ0AgIC2LdvX1E3RZQwaWlp+Pn5ceTIkQI/lwRSQgghShRNxj7N/CgAZ2dnypQpA5ivV2rCBJg82fC+yZPV+wtCv379UKlUOd7u3btXMCcWohj54Ycf8Pf3p3nz5kXdFFHC2NjYMGrUKEaPHl3g55JASgghRImi6ZHSzI/SMPfwPktLGD9eP5iaPFm9/WFnWIEIDQ0lNjZW57ZmzZqCO6EQxYiiKHz77bcMGDCgqJsiSqjevXuzZ88e7T/eCooEUkIIIUqUxzP2aRibcCIpKedbSsqjcuPGwdix6qBp3Dj1/nHj1I/HjoVRo4yrNz9sbW3x9vbWubm7u+uUWbRoEW5ubqxfv57AwEDs7OwICQnhypUrOuU2bNhAUFAQdnZ2VKpUiYkTJ5KRkaFTZsKECXo9X126dNEps3fvXoKDg3FwcKBUqVKEhIRw9+5dAIKDgxkxYoS27IIFC3Bzc+PYsWOAOkHIgAED8Pf3x97enqpVqzJ37lyd+j/55BPKlSuHjY0N5cuXZ/To0WRlZRl9fL9+/fTarLlG2Z9nvXr1dMrs2LFDp6fv8WOyCwsLQ6VSERUVpd22Z88eWrVqhb29PT4+PgwbNoykXF74uXPn4uvri62tLV5eXgwcOJDk5GRAPf9PpVIRFhamc4yfnx9ff/219vHs2bOpXbs2jo6O+Pj48N5775GYmJjrtVCpVKxfv177+MqVK/To0QM3Nzfc3d3p3LmzzvPKz/XUDMd7vOd04cKFVK1aFRsbG+37K/v75XFHjx4lIiKCF198UWd7TEwMPXv2xN3dHUdHRxo2bMjBgwdZtGhRjj24mnmUERERdO7cGS8vL5ycnGjUqBH//POPTv1+fn5MnjyZnj174ujoSPny5fnuu+9yvY7Z1atXjwnZuqrv3bvHwIEDKVOmDC4uLjz//POEh4fn+Lw1r7+hmymvvzG/G4y9HiqVSvs5BkhPT8fLy8ukz0FwcHCOz0tzvcx97UuVKkWLFi1YsWJFjtfbHCSQEkIIUWJkZWVpM/Y9HkgZ2yPl5JTzrXt33bKzZ6t/fvGFev8XXzx63LGjblk/P8N1FqTk5GS+/PJLFi9ezN69e7l37x6vv/66dv/u3bvp06cPw4cP5/Tp0/z4448sWrSIL7/8Uq+umjVranu/evToobMvLCyMtm3bUqNGDfbv38+ePXvo1KkTmZmZevX8/vvvjBw5ko0bNxIUFASoX7cKFSqwatUqTp8+zfjx4xkzZgy///679rgOHTqwadMmLl68yIIFC/jpp59YsmSJ0ccXhYiICEJDQ+nevTvHjx9n5cqV7Nmzh6FDh+Z4TOPGjVm1ahUXLlxg9erVbNu2jZkzZ5p0XgsLC7755htOnTrFr7/+yr///svHH39s9PHp6emEhITg7OzM7t272bt3L05OToSGhpKWlmZSW7L79ttvuXHjhs62s2fPMnDgQPr378/FixeJjY2lWbNmudaze/duqlSpgrOzs3ZbYmIirVu35urVq2zcuJHw8HA+/vhjsrKyeO2117Tv3a+//poKFSpoHx8+fFh7/AsvvMC2bdv477//CA0NpVOnTkRHR+uce8aMGdStW5f//vuPTz75hOHDh7N169Z8XY9XX32Vmzdv8tdff3H06FGCgoJo27Ytd+7cyfW4f/75R6c3ukKFCjr7jXn98/rdYOz1KF++PD/99JP28bp167C2ttYpk9fnYO3atdrn0qxZMz788EPt41HZ/iNlzmsP6s/a7t278328URShxMfHK4ASHx9f1E0RQgiRi0uXLimAYmtrq6Snp+vs++233xRAad26taIoivLgwQPl9OnTyoMHD3TKQc63F17QPZ+DQ85lH55Gy8PDcDlT9e3bV+ncubPe9u3btyuAcvfuXUVRFGXhwoUKoBw4cEBb5syZMwqgHDx4UFEURWnbtq0yZcoUnXp+++03pWzZsjrbPvnkE6Vhw4Y5tqFnz55KixYtcmxz69atleHDhyt//vmn4uDgoGzevDnP5zlkyBCle/fuBvddunRJKVu2rPLLL78Yfbyh67Zw4ULF1dVV+/jzzz9X6tatq1PG0HXNfkx2//33nwIokZGRiqIoyoABA5RBgwbplNm9e7diYWGh974z5MaNG0qdOnWU8ePHK4qiKJGRkQqg/PfffzrlKlasqMyZMyfHelatWqWULl1a+/idd95ROnTooFMGUNatW6coivo9ULVqVSUrK0u7PzU1VbG3t1f+/vtvRVFMv55xcXFKqVKllMmTJ+tcz5UrVyrW1tY69WjeLzkZPny48vzzz+ts+/HHHxVnZ2clLi4ux+M0baxYsWKuZTRq1qypzJs3T/u4YsWKSmhoqE6Z1157TenYsaP2cfbr+Li6desqn3/+uaIo6veBi4uLkpKSolOmcuXKyo8//mjweHO9/sb8bjDE0PX45JNPlNKlSyuJiYmKoqh/p4wbNy7fn4PWrVtrr9Hjz9Fc115j7ty5ip+fX47PN6e/EYpifGwgPVJCCCFKDM2wvqpVq2JlZaWzz9geqcTEnG+PT0O6eVM9jA/Axkb9c+xYddm//tItGxVluM6CZGVlRaNGjbSPq1Wrhpubm7bXLjw8nEmTJuHk5KS9vf3228TGxmqHkwHExcXh4uKS43k0PVK5OXToEN27d8fR0ZEmTZro7f/uu+9o0KABZcqUwcnJiZ9++knvv99TpkzBwcGBSpUq0b17d/r06WPS8Zs2bdJ5ru+8845eO06cOKFTpuPjXYtAfHw8Tk5OuLi4EBgYyKhRo0hPT9crFx4ezqJFi3TqCwkJISsri8jIyByv1dKlS3F0dMTLy4vAwEC9SfHNmzfXqfPx5/nPP//Qtm1bypcvj7OzM2+++SZxcXHa17RWrVocOHAgxzaEh4dz8eJFnJ2dtedwd3cnJSVF5/NjzPXUmDRpEm3atKFly5Y62/39/UlPT2fVqlWovwvn7cGDB9jZ2elsCwsLo379+npDXI2VmJjIqFGjqF69Om5ubjg5OXHmzBm9a/t4b1mzZs20nyeNnj174uTkRNmyZXnxxRe1v5eyCw8PJzExkdKlS+tcw8jIyCeex5nX6w95/24w9np4eXkRHBzMihUriIiI4PTp03Tq1Envuebnc/A4c117DXt7e51rUhCs8i4ihBBCFA+GMvZpaOZIxcTE8ODBA1QqlcE6HB2NP9/s2ephfJMmqedHaRJN2NioH+e33sKSmJjIxIkT6datm96+7F9UL126hL+/f4712Nvb53mu/fv3M3/+fFavXs3QoUNZvny5dt+KFSsYNWoUs2bNolmzZjg7OzNjxgwOHjyoU8c777xDt27dOHr0KCNGjKBbt260adPG6OPbtGnD/PnztY/Xrl3LlClTdMpUrVqVjRs3ah8fPHiQN954Q6eMs7Mzx44dQ1EUTp8+Td++ffH29qZdu3Y65RITExk8eDDDhg3Tux6+vr45XquXX36ZRo0acfbsWYYMGcK6devo3bu3dv/KlSupXr269nFwcLD2flRUFC+99BLvvvsuX375Je7u7uzZs4cBAwaQlpaGg4MD/fv3Z926dVSqVAlHA2/MxMREGjRowNKlS/X2abJfgnHXE+DChQssWLCAsLAwYmJidPY1atSISZMm8dZbb/HGG29gbW3NgwcP9OaqZefh4cGJEyd0thnzHszNqFGj2Lp1KzNnziQgIAB7e3teeeWVfA1lnDNnDu3atePevXuMGTOGHj16cPLkSZ0yiYmJlC1blh07dugdn9McPGMY8/obw5TrMWjQIMaPH8/58+fp27ev3tC+/H4O8sOYa69x584dnfdzQZBASgghRImRU8Y+UH/5cnFxISEhgcjISCpVqvRE59IETZogCh79HD9e93FRycjI4MiRIzRu3BiAc+fOce/ePe2X8KCgIM6dO6ftrTMkJSWFQ4cO8eabb+ZYpk6dOmzbto2JEyfmWObNN9/knXfeoWPHjtSqVYt169bRtWtXQJ2oonnz5rz33nva8ob+K+/u7o67uzvVqlVj9erVrFmzhjZt2hh9vKOjo85z9fT01CtjY2OjU+bxL/6gnoOiKRMYGEj79u0JCwvTC6SCgoI4ffp0rtfXEGdnZ5ydnalSpQrbt29n+fLlOoGUj4+PTp3Ze1+PHj1KVlYWs2bNwsJCPbDo8bli9vb2/PPPP9y4cYP79+9rn0f2dq9cuRJPT89ceyKNuZ4Ao0ePZuDAgQQEBBi8nsOGDWPx4sUMGDCAV155Ree5GlK/fn3mz5+Poijaf4jUqVOHBQsWcOfOnXz1Su3du5d+/fpp35OJiYk6yRI0Dhw4oPc4e1AL4O3trb0uw4cPp1OnTno9lkFBQVy/fh0rKyttwgtzMOb1h7x/Nxh7PQDat2/Pu+++yw8//MCxY8e07ymN/H4OHmeua69x8uRJ6tev/0RtyosM7RNCCFFi5JSxD9QZnYzN3GeMzEzdIEpj3Dj1dgN5FgqdtbU177//PgcPHuTo0aP069ePpk2bar88jR8/nsWLFzNx4kROnTrFmTNnWLFiBWMfjldMTExk/MOosGXLlly/fp3r16/z4MEDUlNTtYsbf/rppxw+fJj33nuP48ePc/bsWebPn8/t27e1bdF8ua1YsSIzZszg3XffJS4uDlB/iT9y5Ah///0358+fZ9y4cdokABrff/89p06dIioqiiVLlrB161btlyBjjje3lJQUHjx4wNGjR9mzZw+1atXSKzN69Gj27dvH0KFDCQsL48KFC2zYsCHXZBMLFy4kPDycy5cvs3HjRpYvX27Sl72AgADS09OZN28ely5d4rfffuOHH34wWNbLy4uAgAC9L7i9e/fGw8ODzp07s3v3biIjI9mxYwfDhg0zGAjl5uLFi+zYsUP7Pnqcoij06dOHoKAgPvnkE23vR27atGlDYmKiTurqnj174u3tTZcuXdi7dy+XLl1izZo17N+/36h2BgYGsnbtWsLCwggPD6dXr17arJDZ7d27l+nTp3P+/Hm+++47Vq1axfDhw3XKpKenk5KSwvXr11myZAlVqlTR66Vp164dzZo1o0uXLmzZsoWoqCj27dvHZ5999kQLxRr7+uf1u8HY6wHq360//PADM2fO1P6OzS4/nwNDzHXtNXbv3k2HDh1MaoOpJJASQghRImRlZeUaSIF515KaMCHnHqdx4wpuQV5TODg4MHr0aHr16kWLFi1wcnJi5cqV2v0hISFs2rSJLVu20KhRI5o2bcqcOXOoWLEiADNnzmTGjBncv3+fgIAAypYtS9myZfn999/53//+p/0SU6VKFbZs2UJ4eDiNGzemWbNmbNiwQW+emsbgwYOpVasW77//vvZxt27deO2112jSpAlxcXE6vUsAmzdvJjg4mGrVqjFx4kTGjBlD//79jT7enOLj47G3t8fR0ZGXXnqJrl278sEHH+iVq1OnDjt37uT8+fO0atWK+vXrM378eMqVK5dj3fv37yc0NJQqVarw/vvv07t3b8aZ0LVZt25dZs+ezVdffUWtWrVYunQpU6dONen5OTg4sGvXLnx9fenWrRvVq1dnwIABpKSk5NpDZUhSUhKfffZZjr1E06ZN48KFC/z8889G11m6dGm6du2qM/TQ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", "text/plain": [ "
" ] @@ -6476,8 +3541,21 @@ "from sklearn.preprocessing import StandardScaler, OneHotEncoder, LabelEncoder\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.impute import SimpleImputer\n", + "from sklearn.pipeline import Pipeline\n", "import matplotlib.pyplot as plt\n", "\n", + "df = pd.read_csv(\"..//static//csv//Forbes Billionaires.csv\").head(100)\n", + "\n", + "df = df.dropna()\n", + "\n", + "# Создание целевой переменной (Networth)\n", + "target = df['Networth']\n", + "\n", + "# Удаление целевой переменной из исходных данных\n", + "features = df.drop(columns=['Networth'])\n", + "\n", + "# Удаление столбцов, которые не будут использоваться (например, имена)\n", + "features = features.drop(columns=['Name'])\n", "\n", "# Определение столбцов для обработки\n", "num_columns = features.select_dtypes(include=['number']).columns\n", @@ -6584,12 +3662,22 @@ "print(\"Среднеквадратическая ошибка (MSE) на тестовых данных:\", mse)\n", "print(\"Корень среднеквадратичной ошибки (RMSE) на тестовых данных:\", rmse)\n", "\n", + "# Обучение модели с лучшими параметрами для старых значений\n", + "model_old = RandomForestRegressor(**old_best_params)\n", + "model_old.fit(X_train_processed, y_train)\n", + "\n", + "# Прогнозирование на тестовой выборке для старых параметров\n", + "y_pred_old = model_old.predict(X_test_processed)\n", + "\n", "# Визуализация ошибок\n", "plt.figure(figsize=(10, 5))\n", - "plt.bar(['Старые параметры', 'Новые параметры'], [old_best_mse, new_best_mse], color=['blue', 'orange'])\n", - "plt.xlabel('Подбор параметров')\n", - "plt.ylabel('Среднеквадратическая ошибка (MSE)')\n", - "plt.title('Сравнение MSE для старых и новых параметров')\n", + "plt.plot(y_test.values, label='Реальные значения', marker='o', linestyle='-', color='black')\n", + "plt.plot(y_pred_old, label='Предсказанные значения (старые параметры)', marker='x', linestyle='--', color='blue')\n", + "plt.plot(y_pred, label='Предсказанные значения (новые параметры)', marker='s', linestyle='--', color='orange')\n", + "plt.xlabel('Объекты')\n", + "plt.ylabel('Значения')\n", + "plt.title('Сравнение реальных и предсказанных значений')\n", + "plt.legend()\n", "plt.show()" ] },