{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Датасет: [Tesla Insider Trading](https://www.kaggle.com/datasets/ilyaryabov/tesla-insider-trading).\n", "\n", "### Описание датасета:\n", "Датасет представляет собой выборку операций с ценными бумагами компании Tesla, совершённых инсайдерами, и является частью более крупного проекта \"Insider Trading S&P500 – Inside Info\". Данные охватывают транзакции с участием крупных акционеров и должностных лиц компании, включая такие операции, как покупка, продажа и опционы, начиная с 10 ноября 2021 года и до 27 июля 2022 года.\n", "\n", "---\n", "\n", "### Анализ сведений:\n", "**Проблемная область:**\n", "Проблемная область данного датасета касается анализа инсайдерских сделок в публичных компаниях, а также их влияния на ценообразование акций. Инсайдерские транзакции, совершаемые людьми с доступом к непубличной информации (такими как руководители, крупные акционеры или члены совета директоров), могут быть индикаторами будущих изменений стоимости акций. Исследование таких транзакций помогает понять, как информация внутри компании отражается в действиях ключевых участников, и может выявить паттерны поведения, которые влияют на рынки.\n", "\n", "**Актуальность:**\n", "Анализ инсайдерских сделок становится особенно важным в условиях высокой волатильности рынка и неопределенности. Инвесторы, аналитики и компании используют такие данные, чтобы лучше понимать сигналы от крупных акционеров и должностных лиц. Действия инсайдеров, такие как покупки и продажи акций, нередко рассматриваются как индикаторы доверия к компании, что может оказывать значительное влияние на рыночные ожидания и прогнозы.\n", "\n", "**Объекты наблюдений:**\n", "Объектами наблюдений в датасете являются инсайдеры компании Tesla — лица, имеющие значительное влияние на управление и информацию компании. Каждый объект характеризуется различными параметрами, включая должность, тип транзакции, количество акций и общую стоимость сделок.\n", "\n", "**Атрибуты объектов:**\n", "- Insider Trading: ФИО лица, совершившего транзакцию.\n", "- Relationship: Должность или статус данного лица в компании Tesla.\n", "- Date: Дата завершения транзакции.\n", "- Transaction: Тип транзакции.\n", "- Cost: Цена одной акции на момент совершения транзакции.\n", "- Shares: Количество акций, участвующих в транзакции.\n", "- Value ($): Общая стоимость транзакции в долларах США.\n", "- Shares Total: Общее количество акций, принадлежащих этому лицу после завершения данной транзакции.\n", "- SEC Form 4: Дата записи транзакции в форме SEC Form 4, обязательной для отчётности о сделках инсайдеров.\n", "\n", "---\n", "\n", "### Бизнес-цели:\n", "1. **Для решения задачи регрессии:**\n", "Предсказать будущую стоимость акций компании Tesla на основе инсайдерских транзакций. Стоимость акций (\"Cost\") зависит от множества факторов, включая объём и тип транзакций, совершаемых инсайдерами. Если выявить зависимости между параметрами транзакций (количество акций, общий объём сделки, должность инсайдера) и стоимостью акций, это может помочь инвесторам принимать обоснованные решения о покупке или продаже.\n", "2. **Для решения задачи классификации:**\n", "Классифицировать тип инсайдерской транзакции (продажа акций или исполнение опционов) на основе характеристик сделки. Тип транзакции (\"Transaction\") может быть индикатором доверия инсайдера к текущей рыночной цене или будущей прибыльности компании. Модель, которая предсказывает тип транзакции, может помочь в оценке поведения инсайдеров и выявлении аномалий.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Выгрузка данных из файла в DataFrame:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "from typing import Any, Tuple\n", "from math import ceil\n", "\n", "import pandas as pd\n", "from pandas import DataFrame\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "df: DataFrame = pd.read_csv(\"./datasets/TIT/Tesla.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Краткая информация о DataFrame:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 156 entries, 0 to 155\n", "Data columns (total 9 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Insider Trading 156 non-null object \n", " 1 Relationship 156 non-null object \n", " 2 Date 156 non-null object \n", " 3 Transaction 156 non-null object \n", " 4 Cost 156 non-null float64\n", " 5 Shares 156 non-null object \n", " 6 Value ($) 156 non-null object \n", " 7 Shares Total 156 non-null object \n", " 8 SEC Form 4 156 non-null object \n", "dtypes: float64(1), object(8)\n", "memory usage: 11.1+ KB\n" ] }, { "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", "
countmeanstdmin25%50%75%max
Cost156.0478.785641448.9229030.050.5225240.225934.10751171.04
\n", "
" ], "text/plain": [ " count mean std min 25% 50% 75% max\n", "Cost 156.0 478.785641 448.922903 0.0 50.5225 240.225 934.1075 1171.04" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Краткая информация о DataFrame\n", "df.info()\n", "\n", "# Статистическое описание числовых столбцов\n", "df.describe().transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Предобработка данных:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Выборка данных:\n" ] }, { "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", "
Insider TradingRelationshipTransactionCostSharesValue ($)Shares TotalYearMonthDay
0Kirkhorn ZacharyChief Financial OfficerSale196.72104552056775203073202236
1Taneja VaibhavChief Accounting OfficerSale195.792466482718100458202236
2Baglino Andrew DSVP Powertrain and Energy Eng.Sale195.79129825423265547202236
3Taneja VaibhavChief Accounting OfficerOption Exercise0.0071380102923202235
4Baglino Andrew DSVP Powertrain and Energy Eng.Option Exercise0.002586066845202235
5Kirkhorn ZacharyChief Financial OfficerOption Exercise0.00168670213528202235
6Baglino Andrew DSVP Powertrain and Energy Eng.Option Exercise20.9110500219555747592022227
7Baglino Andrew DSVP Powertrain and Energy Eng.Sale202.00105002121000642592022227
8Kirkhorn ZacharyChief Financial OfficerSale193.003750723750196661202226
9Baglino Andrew DSVP Powertrain and Energy Eng.Option Exercise20.9110500219555747592022127
\n", "
" ], "text/plain": [ " Insider Trading Relationship Transaction Cost \\\n", "0 Kirkhorn Zachary Chief Financial Officer Sale 196.72 \n", "1 Taneja Vaibhav Chief Accounting Officer Sale 195.79 \n", "2 Baglino Andrew D SVP Powertrain and Energy Eng. Sale 195.79 \n", "3 Taneja Vaibhav Chief Accounting Officer Option Exercise 0.00 \n", "4 Baglino Andrew D SVP Powertrain and Energy Eng. Option Exercise 0.00 \n", "5 Kirkhorn Zachary Chief Financial Officer Option Exercise 0.00 \n", "6 Baglino Andrew D SVP Powertrain and Energy Eng. Option Exercise 20.91 \n", "7 Baglino Andrew D SVP Powertrain and Energy Eng. Sale 202.00 \n", "8 Kirkhorn Zachary Chief Financial Officer Sale 193.00 \n", "9 Baglino Andrew D SVP Powertrain and Energy Eng. Option Exercise 20.91 \n", "\n", " Shares Value ($) Shares Total Year Month Day \n", "0 10455 2056775 203073 2022 3 6 \n", "1 2466 482718 100458 2022 3 6 \n", "2 1298 254232 65547 2022 3 6 \n", "3 7138 0 102923 2022 3 5 \n", "4 2586 0 66845 2022 3 5 \n", "5 16867 0 213528 2022 3 5 \n", "6 10500 219555 74759 2022 2 27 \n", "7 10500 2121000 64259 2022 2 27 \n", "8 3750 723750 196661 2022 2 6 \n", "9 10500 219555 74759 2022 1 27 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Преобразование типов данных\n", "df['Insider Trading'] = df['Insider Trading'].astype('category') # Преобразование в категорию\n", "df['Relationship'] = df['Relationship'].astype('category') # Преобразование в категорию\n", "df['Transaction'] = df['Transaction'].astype('category') # Преобразование в категорию\n", "df['Cost'] = pd.to_numeric(df['Cost'], errors='coerce') # Преобразование в float\n", "df['Shares'] = pd.to_numeric(df['Shares'].str.replace(',', ''), errors='coerce') # Преобразование в float с удалением запятых\n", "df['Value ($)'] = pd.to_numeric(df['Value ($)'].str.replace(',', ''), errors='coerce') # Преобразование в float с удалением запятых\n", "df['Shares Total'] = pd.to_numeric(df['Shares Total'].str.replace(',', ''), errors='coerce') # Преобразование в float с удалением запятых\n", "\n", "df['Date'] = pd.to_datetime(df['Date'], errors='coerce') # Преобразование в datetime\n", "df['Year'] = df['Date'].dt.year # Год\n", "df['Month'] = df['Date'].dt.month # Месяц\n", "df['Day'] = df['Date'].dt.day # День\n", "df: DataFrame = df.drop(columns=['Date', 'SEC Form 4']) # Удаление столбцов с датами\n", "\n", "print('Выборка данных:')\n", "df.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Бизнес-цель №1 (Задача регрессии).\n", "\n", "### Достижимый уровень качества модели:\n", "**Основные метрики для регрессии:**\n", "- **Средняя абсолютная ошибка (Mean Absolute Error, MAE)** – показывает среднее абсолютное отклонение между предсказанными и фактическими значениями.\n", "Легко интерпретируется, особенно в финансовых данных, где каждая ошибка в долларах имеет значение.\n", "- **Среднеквадратичная ошибка (Mean Squared Error, MSE)** – показывает, насколько отклоняются прогнозы модели от истинных значений в квадрате. Подходит для оценки общего качества модели.\n", "- **Коэффициент детерминации (R²)** – указывает, какую долю дисперсии зависимой переменной объясняет модель. R² варьируется от 0 до 1 (чем ближе к 1, тем лучше).\n", "\n", "---\n", "\n", "### Выбор ориентира:\n", "В качестве базовой модели для оценки качества предсказаний выбрано использование среднего значения целевой переменной (Cost) на обучающей выборке. Это простой и интуитивно понятный метод, который служит минимальным ориентиром для сравнения с более сложными моделями. Базовая модель помогает установить начальный уровень ошибок (MAE, MSE) и показатель качества (R²), которые сложные модели должны улучшить, чтобы оправдать своё использование.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Разбиение данных:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Baseline MAE: 417.78235887096776\n", "Baseline MSE: 182476.07973024843\n", "Baseline R²: -0.027074997920953914\n" ] } ], "source": [ "from pandas.core.frame import DataFrame\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n", "\n", "\n", "# Разбить данные на обучающую и тестовую выборки\n", "def split_into_train_test(\n", " df_input: DataFrame,\n", " stratify_colname: str = \"y\", \n", " frac_train: float = 0.8,\n", " random_state: int = 42,\n", ") -> Tuple[DataFrame, DataFrame, DataFrame, DataFrame]:\n", "\n", " if stratify_colname not in df_input.columns:\n", " raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n", " \n", " if not (0 < frac_train < 1):\n", " raise ValueError(\"Fraction must be between 0 and 1.\")\n", " \n", " X: DataFrame = df_input # Contains all columns.\n", " y: DataFrame = df_input[\n", " [stratify_colname]\n", " ] # Dataframe of just the column on which to stratify.\n", "\n", " # Split original dataframe into train and test dataframes.\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", "# Определяем целевой признак и входные признаки\n", "y_feature: str = 'Cost'\n", "X_features: list[str] = df.drop(columns=y_feature, axis=1).columns.tolist()\n", "\n", "# Разбиваем данные на обучающую и тестовую выборки\n", "X_df_train, X_df_test, y_df_train, y_df_test = split_into_train_test(\n", " df, \n", " stratify_colname=y_feature, \n", " frac_train=0.8, \n", " random_state=42 \n", ")\n", "\n", "# Вычисляем предсказания базовой модели (среднее значение целевой переменной)\n", "baseline_predictions: list[float] = [y_df_train.mean()] * len(y_df_test) # type: ignore\n", "\n", "# Оцениваем базовую модель\n", "print('Baseline MAE:', mean_absolute_error(y_df_test, baseline_predictions))\n", "print('Baseline MSE:', mean_squared_error(y_df_test, baseline_predictions))\n", "print('Baseline R²:', r2_score(y_df_test, baseline_predictions))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Выбор моделей обучения:\n", "\n", "Для обучения были выбраны следующие модели:\n", "1. **Случайный лес (Random Forest)**: Ансамблевая модель, которая использует множество решающих деревьев. Она хорошо справляется с нелинейными зависимостями и шумом в данных, а также обладает устойчивостью к переобучению.\n", "2. **Линейная регрессия (Linear Regression)**: Простая модель, предполагающая линейную зависимость между признаками и целевой переменной. Она быстро обучается и предоставляет легкую интерпретацию результатов.\n", "3. **Градиентный бустинг (Gradient Boosting)**: Мощная модель, создающая ансамбль деревьев, которые корректируют ошибки предыдущих. Эта модель эффективна для сложных наборов данных и обеспечивает высокую точность предсказаний.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Построение конвейера:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from sklearn.impute import SimpleImputer\n", "from sklearn.discriminant_analysis import StandardScaler\n", "from sklearn.preprocessing import OneHotEncoder\n", "from sklearn.compose import ColumnTransformer\n", "from sklearn.pipeline import Pipeline\n", "\n", "\n", "# Числовые столбцы\n", "num_columns: list[str] = [\n", " column\n", " for column in df.columns\n", " if df[column].dtype not in (\"category\", \"object\")\n", "]\n", "\n", "# Категориальные столбцы\n", "cat_columns: list[str] = [\n", " column\n", " for column in df.columns\n", " if df[column].dtype in (\"category\", \"object\")\n", "]\n", "\n", "# Заполнение пропущенных значений\n", "num_imputer = SimpleImputer(strategy=\"median\")\n", "# Стандартизация\n", "num_scaler = StandardScaler()\n", "# Конвейер для обработки числовых данных\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", "# Унитарное кодирование\n", "cat_encoder = OneHotEncoder(handle_unknown=\"ignore\", sparse_output=False, drop=\"first\")\n", "# Конвейер для обработки категориальных данных\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", "# Основной конвейер предобработки данных\n", "pipeline_end = Pipeline(\n", " [\n", " (\"features_preprocessing\", features_preprocessing),\n", " ]\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Демонстрация работы конвейера:" ] }, { "cell_type": "code", "execution_count": 6, "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", "
CostSharesValue ($)Shares TotalYearMonthDayInsider Trading_DENHOLM ROBYN MInsider Trading_Kirkhorn ZacharyInsider Trading_Musk ElonInsider Trading_Musk KimbalInsider Trading_Taneja VaibhavInsider Trading_Wilson-Thompson KathleenRelationship_Chief Accounting OfficerRelationship_Chief Financial OfficerRelationship_DirectorRelationship_SVP Powertrain and Energy Eng.Transaction_Sale
0-0.966516-0.361759-0.450022-0.3435990.715678-0.506108-0.4006230.00.00.00.01.00.01.00.00.00.00.0
1-1.0748941.225216-0.414725-0.319938-1.3972760.8013380.9066730.00.01.00.00.00.00.00.00.00.00.0
2-1.0748941.211753-0.415027-0.320141-1.3972761.062828-0.0989390.00.01.00.00.00.00.00.00.00.00.0
31.1671420.0374991.023612-0.325853-1.3972761.062828-0.5011840.00.01.00.00.00.00.00.00.00.01.0
41.217886-0.0752870.632973-0.330205-1.3972761.062828-0.5011840.00.01.00.00.00.00.00.00.00.01.0
50.505872-0.361021-0.443679-0.3436980.715678-0.7675981.3089180.00.00.00.00.00.00.00.00.01.01.0
6-1.088674-0.357532-0.450389-0.3428630.7156780.278360-0.9034290.00.00.00.01.00.01.00.00.00.00.0
7-0.692146-0.355855-0.445383-0.3432200.7156780.8013381.4094800.00.00.00.00.00.00.00.00.01.01.0
8-1.088674-0.361181-0.450389-0.343649-1.3972761.062828-0.9034290.00.00.00.01.00.01.00.00.00.00.0
91.091997-0.2045310.1147121.5381660.715678-1.0290871.2083570.00.01.00.00.00.00.00.00.00.01.0
\n", "
" ], "text/plain": [ " Cost Shares Value ($) Shares Total Year Month Day \\\n", "0 -0.966516 -0.361759 -0.450022 -0.343599 0.715678 -0.506108 -0.400623 \n", "1 -1.074894 1.225216 -0.414725 -0.319938 -1.397276 0.801338 0.906673 \n", "2 -1.074894 1.211753 -0.415027 -0.320141 -1.397276 1.062828 -0.098939 \n", "3 1.167142 0.037499 1.023612 -0.325853 -1.397276 1.062828 -0.501184 \n", "4 1.217886 -0.075287 0.632973 -0.330205 -1.397276 1.062828 -0.501184 \n", "5 0.505872 -0.361021 -0.443679 -0.343698 0.715678 -0.767598 1.308918 \n", "6 -1.088674 -0.357532 -0.450389 -0.342863 0.715678 0.278360 -0.903429 \n", "7 -0.692146 -0.355855 -0.445383 -0.343220 0.715678 0.801338 1.409480 \n", "8 -1.088674 -0.361181 -0.450389 -0.343649 -1.397276 1.062828 -0.903429 \n", "9 1.091997 -0.204531 0.114712 1.538166 0.715678 -1.029087 1.208357 \n", "\n", " Insider Trading_DENHOLM ROBYN M Insider Trading_Kirkhorn Zachary \\\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", "5 0.0 0.0 \n", "6 0.0 0.0 \n", "7 0.0 0.0 \n", "8 0.0 0.0 \n", "9 0.0 0.0 \n", "\n", " Insider Trading_Musk Elon Insider Trading_Musk Kimbal \\\n", "0 0.0 0.0 \n", "1 1.0 0.0 \n", "2 1.0 0.0 \n", "3 1.0 0.0 \n", "4 1.0 0.0 \n", "5 0.0 0.0 \n", "6 0.0 0.0 \n", "7 0.0 0.0 \n", "8 0.0 0.0 \n", "9 1.0 0.0 \n", "\n", " Insider Trading_Taneja Vaibhav Insider Trading_Wilson-Thompson Kathleen \\\n", "0 1.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", "5 0.0 0.0 \n", "6 1.0 0.0 \n", "7 0.0 0.0 \n", "8 1.0 0.0 \n", "9 0.0 0.0 \n", "\n", " Relationship_Chief Accounting Officer \\\n", "0 1.0 \n", "1 0.0 \n", "2 0.0 \n", "3 0.0 \n", "4 0.0 \n", "5 0.0 \n", "6 1.0 \n", "7 0.0 \n", "8 1.0 \n", "9 0.0 \n", "\n", " Relationship_Chief Financial Officer Relationship_Director \\\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", "5 0.0 0.0 \n", "6 0.0 0.0 \n", "7 0.0 0.0 \n", "8 0.0 0.0 \n", "9 0.0 0.0 \n", "\n", " Relationship_SVP Powertrain and Energy Eng. Transaction_Sale \n", "0 0.0 0.0 \n", "1 0.0 0.0 \n", "2 0.0 0.0 \n", "3 0.0 1.0 \n", "4 0.0 1.0 \n", "5 1.0 1.0 \n", "6 0.0 0.0 \n", "7 1.0 1.0 \n", "8 0.0 0.0 \n", "9 0.0 1.0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Применение конвейера\n", "preprocessing_result = pipeline_end.fit_transform(X_df_train)\n", "preprocessed_df = pd.DataFrame(\n", " preprocessing_result,\n", " columns=pipeline_end.get_feature_names_out(),\n", ")\n", "\n", "preprocessed_df.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Обучение моделей:\n", "\n", "Оценка результатов обучения:\n", "1. **Случайный лес (Random Forest)**:\n", " - Показатели:\n", " - Средний балл: 0.9993.\n", " - Стандартное отклонение: 0.00046.\n", " - Вывод: Очень высокая точность, что свидетельствует о хорошей способности модели к обобщению. Низкое значение стандартного отклонения указывает на стабильность модели.\n", "2. **Линейная регрессия (Linear Regression)**:\n", " - Показатели:\n", " - Средний балл: 1.0.\n", " - Стандартное отклонение: 0.0.\n", " - Вывод: Идеальная точность, однако есть вероятность переобучения, так как стандартное отклонение равно 0. Это может указывать на то, что модель идеально подгоняет данные, но может не работать на новых данных.\n", "3. **Градиентный бустинг (Gradient Boosting)**:\n", " - Показатели:\n", " - Средний балл: 0.9998.\n", " - Стандартное отклонение: 0.00014.\n", " - Вывод: Отличные результаты с высокой точностью и низкой вариабельностью. Модель также демонстрирует хорошую устойчивость." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0] during transform. These unknown categories will be encoded as all zeros\n", " warnings.warn(\n", "c:\\Users\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0] during transform. These unknown categories will be encoded as all zeros\n", " warnings.warn(\n", "c:\\Users\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\Lib\\site-packages\\sklearn\\preprocessing\\_encoders.py:242: UserWarning: Found unknown categories in columns [0] during transform. These unknown categories will be encoded as all zeros\n", " warnings.warn(\n", "c:\\Users\\HomePC\\Desktop\\MII_Lab1\\.venv\\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\\HomePC\\Desktop\\MII_Lab1\\.venv\\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" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Модель: Random Forest\n", "\tmean_score: 0.9992641178787792\n", "\tstd_dev: 0.0004713845802993347\n", "\n", "Модель: Linear Regression\n", "\tmean_score: 1.0\n", "\tstd_dev: 0.0\n", "\n", "Модель: Gradient Boosting\n", "\tmean_score: 0.999764624420808\n", "\tstd_dev: 0.00014612642026943173\n", "\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.model_selection import cross_val_score\n", "\n", "\n", "# Обучить модели\n", "def train_models(X: DataFrame, y: DataFrame, \n", " models: dict[str, Any]) -> dict[str, dict[str, Any]]:\n", " results: dict[str, dict[str, Any]] = {}\n", " \n", " for model_name, model in models.items():\n", " # Создание конвейера для текущей модели\n", " model_pipeline = Pipeline(\n", " [\n", " (\"features_preprocessing\", features_preprocessing),\n", " (\"model\", model)\n", " ]\n", " )\n", " \n", " # Обучаем модель и вычисляем кросс-валидацию\n", " scores = cross_val_score(model_pipeline, X, y, cv=5) # 5-кратная кросс-валидация\n", " \n", " # Вычисление метрик для текущей модели\n", " metrics_dict: dict[str, Any] = {\n", " \"mean_score\": scores.mean(),\n", " \"std_dev\": scores.std()\n", " }\n", " \n", " # Сохранениерезультатов\n", " results[model_name] = metrics_dict\n", " \n", " return results\n", "\n", "\n", "# Выбранные модели для регрессии\n", "models_regression: dict[str, Any] = {\n", " \"Random Forest\": RandomForestRegressor(),\n", " \"Linear Regression\": LinearRegression(),\n", " \"Gradient Boosting\": GradientBoostingRegressor(),\n", "}\n", "\n", "results: dict[str, Any] = train_models(X_df_train, y_df_train, models_regression)\n", "\n", "# Вывод результатов\n", "for model_name, metrics_dict in results.items():\n", " print(f\"Модель: {model_name}\")\n", " for metric_name, value in metrics_dict.items():\n", " print(f\"\\t{metric_name}: {value}\")\n", " print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Проверка на тестовом наборе данных:\n", "\n", "Оценка результатов обучения:\n", "1. Случайный лес (Random Forest):\n", " - Показатели:\n", " - MAE (обучение): 1.858\n", " - MAE (тест): 4.489\n", " - MSE (обучение): 10.959\n", " - MSE (тест): 62.649\n", " - R² (обучение): 0.9999\n", " - R² (тест): 0.9997\n", " - STD (обучение): 3.310\n", " - STD (тест): 7.757\n", " - Вывод: Случайный лес показывает великолепные значения R2 на обучающей и тестовой выборках, что свидетельствует о сильной способности к обобщению. Однако MAE и MSE на тестовой выборке значительно выше, чем на обучающей, что может указывать на некоторые проблемы с переобучением.\n", "2. Линейная регрессия (Linear Regression):\n", " - Показатели:\n", " - MAE (обучение): 3.069e-13\n", " - MAE (тест): 2.762e-13\n", " - MSE (обучение): 1.437e-25\n", " - MSE (тест): 1.196e-25\n", " - R² (обучение): 1.0\n", " - R² (тест): 1.0\n", " - STD (обучение): 3.730e-13\n", " - STD (тест): 3.444e-13\n", " - Вывод: Высокие показатели точности и нулевые ошибки (MAE, MSE) указывают на то, что модель идеально подгоняет данные как на обучающей, так и на тестовой выборках. Однако это также может быть признаком переобучения.\n", "3. Градиентный бустинг (Gradient Boosting):\n", " - Показатели:\n", " - MAE (обучение): 0.156\n", " - MAE (тест): 3.027\n", " - MSE (обучение): 0.075\n", " - MSE (тест): 41.360\n", " - R² (обучение): 0.9999996\n", " - R² (тест): 0.9998\n", " - STD (обучение): 0.274\n", " - STD (тест): 6.399\n", " - Вывод: Градиентный бустинг демонстрирует отличные результаты на обучающей выборке, однако MAE и MSE на тестовой выборке довольно высокие, что может указывать на определенное переобучение или необходимость улучшения настройки модели." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Модель: Random Forest\n", "\tMAE_train: 1.9988314516128252\n", "\tMAE_test: 4.010856249999925\n", "\tMSE_train: 10.983866485886617\n", "\tMSE_test: 58.68365207937593\n", "\tR2_train: 0.9999464407393277\n", "\tR2_test: 0.9996696963682773\n", "\tSTD_train: 3.3009782014625797\n", "\tSTD_test: 7.6501610687267165\n", "\n", "Модель: Linear Regression\n", "\tMAE_train: 3.0690862038154006e-13\n", "\tMAE_test: 2.761679773755077e-13\n", "\tMSE_train: 1.4370485712253764e-25\n", "\tMSE_test: 1.19585889812782e-25\n", "\tR2_train: 1.0\n", "\tR2_test: 1.0\n", "\tSTD_train: 3.7295840825107354e-13\n", "\tSTD_test: 3.4438670391637766e-13\n", "\n", "Модель: Gradient Boosting\n", "\tMAE_train: 0.1561377276044754\n", "\tMAE_test: 3.092805281270868\n", "\tMSE_train: 0.0749964021123172\n", "\tMSE_test: 44.42701739500285\n", "\tR2_train: 0.9999996343043813\n", "\tR2_test: 0.9997499404915644\n", "\tSTD_train: 0.27385470985965754\n", "\tSTD_test: 6.639923865179299\n", "\n" ] } ], "source": [ "import numpy as np\n", "\n", "from sklearn import metrics\n", "\n", "\n", "# Оценка качества различных моделей на основе метрик\n", "def evaluate_models(models: dict[str, Any], \n", " pipeline_end: Pipeline, \n", " X_train: DataFrame, y_train, \n", " X_test: DataFrame, y_test) -> dict[str, dict[str, Any]]:\n", " results: dict[str, dict[str, Any]] = {}\n", " \n", " for model_name, model in models.items():\n", " # Создание конвейера для текущей модели\n", " model_pipeline = Pipeline(\n", " [\n", " (\"pipeline\", pipeline_end), \n", " (\"model\", model),\n", " ]\n", " )\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", " metrics_dict: dict[str, Any] = {\n", " \"MAE_train\": metrics.mean_absolute_error(y_train, y_train_predict),\n", " \"MAE_test\": metrics.mean_absolute_error(y_test, y_test_predict),\n", " \"MSE_train\": metrics.mean_squared_error(y_train, y_train_predict),\n", " \"MSE_test\": metrics.mean_squared_error(y_test, y_test_predict),\n", " \"R2_train\": metrics.r2_score(y_train, y_train_predict),\n", " \"R2_test\": metrics.r2_score(y_test, y_test_predict),\n", " \"STD_train\": np.std(y_train - y_train_predict),\n", " \"STD_test\": np.std(y_test - y_test_predict),\n", " }\n", "\n", " # Сохранение результатов\n", " results[model_name] = metrics_dict\n", " \n", " return results\n", "\n", "\n", "y_train = np.ravel(y_df_train) \n", "y_test = np.ravel(y_df_test) \n", "\n", "results: dict[str, dict[str, Any]] = evaluate_models(models_regression,\n", " pipeline_end,\n", " X_df_train, y_train,\n", " X_df_test, y_test)\n", "\n", "# Вывод результатов\n", "for model_name, metrics_dict in results.items():\n", " print(f\"Модель: {model_name}\")\n", " for metric_name, value in metrics_dict.items():\n", " print(f\"\\t{metric_name}: {value}\")\n", " print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Подбор гиперпараметров:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 3 folds for each of 36 candidates, totalling 108 fits\n", "Лучшие параметры: {'max_depth': 10, 'min_samples_split': 5, 'n_estimators': 50}\n", "Лучший результат (MSE): 177.54067170950785\n" ] } ], "source": [ "from sklearn.model_selection import GridSearchCV\n", "\n", "\n", "# Применение конвейера к данным\n", "X_train_processing_result = pipeline_end.fit_transform(X_df_train)\n", "X_test_processing_result = pipeline_end.transform(X_df_test)\n", "\n", "# Создание и настройка модели случайного леса\n", "model = RandomForestRegressor()\n", "\n", "# Установка параметров для поиска по сетке\n", "param_grid: dict[str, list[int | None]] = {\n", " 'n_estimators': [50, 100, 200], # Количество деревьев\n", " 'max_depth': [None, 10, 20, 30], # Максимальная глубина дерева\n", " 'min_samples_split': [2, 5, 10] # Минимальное количество образцов для разбиения узла\n", "}\n", "\n", "# Подбор гиперпараметров с помощью поиска по сетке\n", "grid_search = GridSearchCV(estimator=model, \n", " 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_processing_result, y_train)\n", "\n", "# Результаты подбора гиперпараметров\n", "print(\"Лучшие параметры:\", grid_search.best_params_)\n", "# Меняем знак, так как берем отрицательное значение среднеквадратичной ошибки\n", "print(\"Лучший результат (MSE):\", -grid_search.best_score_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Сравнение наборов гиперпараметров:\n", "\n", "Результаты анализа показывают, что параметры из старой сетки обеспечивают значительно лучшее качество модели. Среднеквадратическая ошибка (MSE) на кросс-валидации для старых параметров составила 179.369, что существенно ниже, чем для новых параметров (1290.656). На тестовой выборке модель с новыми параметрами показала MSE 172.574, что сопоставимо с результатами модели со старыми параметрами, однако этот результат является случайным, так как новые параметры продемонстрировали плохую кросс-валидационную ошибку, указывая на недообучение. Таким образом, параметры из старой сетки более предпочтительны, так как они обеспечивают лучшее обобщение и меньшую ошибку." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "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': 50}\n", "Лучший результат (MSE) на старых параметрах: 187.46140289397786\n", "\n", "Новые параметры: {'max_depth': 5, 'min_samples_split': 10, 'n_estimators': 50}\n", "Лучший результат (MSE) на новых параметрах: 1286.8137432762346\n", "Среднеквадратическая ошибка (MSE) на тестовых данных: 153.3412173634401\n", "Корень среднеквадратичной ошибки (RMSE) на тестовых данных: 12.383102089680118\n" ] }, { "data": { "image/png": "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hSxdurTJx2uJz67GaCgprdKc96QQ7ZIihOiQCgoKFECZMWNGo28DKIDyxx9/VG87dOiQ4ufnp5x11lnV20pLS2vcduPGjQqgvPPOO9Xb3nrrLQVQEhMTq7ft3btXAZTHHnusetu8efMUo9FY45iffPKJAihr165VFEVRXC6X0qtXL2Xq1KmKy+VyiychIUE55ZRTqrfdd999CqDk5OS4HXPLli0KoLz11ltu99+tW7fq3//++29Fq9Uq06ZNc4u/qKhICQoKUi6//HK3Y2ZmZiqBgYE1th+t6vE47rjjlMrKyurtjz32mAIon3/+eZPvp7bn4sMPP1QAZf369TX2denSRbn44ourf1+7dq3bY6woitKtWzfl9NNPr/dvSUxMVABl6dKlNfYNGDBAGT9+fI37+OSTT+o83tHPgaIoyl9//aXo9XrlsssuU6xWq9KlSxdlxIgRit1urzc2RVFfy/fdd1/177fffrsSERGhHHfccW6x1Xf7a665psb2008/3S3OqsfB399fSU1Nrd6+adMmBVBuuumm6m0nn3yyMmjQIKW8vLx6m8vlUsaMGaP06tWrxn1dcMEFislkcttmNBqVefPmVf9us9kUs9msjBo1SikrK3Nre+R7ZPz48dV/99dff634+Pgot9xyS437rO31tGTJEkWj0SiHDh2qsa9Kdna2AiiPP/54k4/V2Pd/1d8xYMCAGm2XLl1a47Omoddxba99p9OpjB07VomMjFRyc3OVa665RvHx8VG2bNlS53HqUttj0pT4a3v8rrjiCiUgIMDtNaTRaJRFixa5tTv6s7cpnylNfT6OfD998803CqCceuqpytGnmMf6nhSivZJhhEJ0UIWFhQCYzeYm3W706NEcd9xx1b937dqVGTNm8P3331cPX/H396/eb7fbycvLo2fPngQFBbFt27Yax7RareTm5nLw4EGeeuopdDod48ePr9EuNzfX7efoKlU7duxg3759XHDBBeTl5VW3Kykp4eSTT2b9+vW4XC632+Tn57sds6CgoMHH4K677mL48OGcffbZbttXr16NzWbj/PPPdzumTqdj1KhRrF27tsFjgzoUztfXt/r3q666Ch8fH7755psm38+Rz0V5eTm5ubmccMIJALU+F5WVlRgMhgZjtNvt5ObmkpeXh8PhqLNdaWlpjeft6GFOVYqKisjNzcVmszV4/6AOR7z//vt5/fXXmTp1Krm5ubz99tv4+DRtUEZaWhrPPfccCxcurHV4VEuYOXMmXbp0qf79+OOPZ9SoUdXPaX5+PmvWrOGcc86pfhyqHt+pU6eyb98+0tLS3I5ZXl6On59fvfe7evVqioqKuPPOO2u0ra1Xc/PmzZxzzjnMnj271t6RI19PJSUl5ObmMmbMGBRFYfv27W5tq14jBw4c4P/+7//QarWceOKJzToWNPz+r+J0Omu0LS0trbVtY1/HVbRaLcuWLaO4uJhp06bx4osvctdddzFixIgGb3vk/dX1mDQl/iMfv6rXzLhx4ygtLWXPnj3V+yIiIkhNTa03ruZ8djX2+aiiKAp33XUXs2fPZtSoUfW2bYv3pBDeQoYRCtFBWSwWgCaX1e3Vq1eNbb1796a0tJScnByioqIoKytjyZIlvPXWW6SlpaEcUWentmRm+PDh1f83GAw8//zzNYbVlJSUEB4eXm9s+/btA2DevHl1tikoKCA4OLj69z59+tR7zKP98ssvfPnll/z0008kJyfXev+TJk2q9bZVj3lDjn6MTSYT0dHR1fMrmnI/+fn53H///Xz00UdkZ2e7tavtuSgoKGjUyc0PP/xQ/XzodDoGDx7M//3f/zFlyhS3dvfddx/33XdfjdtXDZ070iWXXFL9f5PJxBlnnMFTTz1Va9sqt912Gx999BGbN2/mkUceoX///g3GfrT77ruPmJgYrrjiinrnjR2Lut43H3/8MaAWo1EUhYULF7Jw4cJaj5Gdne2WsOXm5hIYGFjv/R44cACg1nlAR0tLS+P000+npKSEvLy8WpOx5ORkFi1axBdffFFjuOTRr6effvqJadOmAeprcsWKFdWJflOP1Zj3f5U9e/Y0um1jX8dH6tGjB4sXL+a2225j4MCBdT5ftWnoMWlK/Lt27eLee+9lzZo11RfPqhz5+I0ZM4YVK1ZwzjnnMHz4cDQaDcXFxW7tm/rZ1ZTno8r777/Prl27+Pjjj93mAdamLd6TQngLSbaE6KAsFgsxMTG1TtI/Vtdddx1vvfUWN954I6NHjyYwMBCNRsN5551Xo2cJ4L333iMyMpLy8nLWrFnDNddcg5+fn9tEfz8/P7788ku3223YsMFtnkTVsZcuXcrQoUNrje3oRGLlypVuJxJ79+7lmmuuqfNvu+OOO5g6dSqTJk1yK6Jx5P2/++67REVF1bhtU3tc6tKU+znnnHP47bffuO222xg6dCgmkwmXy8Wpp55aay9fZWVlrcc82qhRo3jooYcASE9P59FHH+Wss85i165dbnM7FixYUKMH8PLLL6/1mIsWLWLcuHHY7Xa2bt3KAw88gM1mq+79qc3BgwerTxT/+uuvBuM+2j///MOyZct477333HoT21rVc3HrrbcyderUWtv07NnT7fekpKRak7jm2r9/P8OHD+epp57if//7H2+//bbbhQun08kpp5xCfn4+d9xxB3379sVoNJKWlsb8+fNrvJ5GjhzJ6tWrsVqtvPfee1xyySXExcUxYsSIJh+rMe//KvHx8bz22mtu2z755JNal7Co73Vcnx9++KH6Nnl5eY16z0D9j0lT4rfZbIwfPx6LxcIDDzxAjx498PPzY9u2bdxxxx1uj99jjz3GaaedxqmnnlpnXE397GrK8wFqj/nChQu59NJL6d27d51xgPe8J4VoK5JsCdGBTZ8+nVdffZWNGzcyevToRt2m6sT2SHv37iUgIKD6SueKFSuYN28eTzzxRHWb8vLyOoeHnXjiidUn6NOnT2fXrl0sWbLELdnS6XQ1CmYcfbwePXoAaiLZ2OIaJ510EmFhYdW/BwUF1dl21apVbNy4sdbhd0fef0RERLOKe1TZt28fEydOrP69uLiYjIwMTjvttCbdj9Vq5aeffuL+++9n0aJFbsevze7duwEaVW45LCzM7b579uzJiSeeyPr1692SrV69etWI0Wg01nrMQYMGVbedNm0aycnJvP3223UO73K5XMyfPx+LxcKNN97II488wpw5c5g1a1aD8Ve56667GDp0KOeee26jb9Mcdb1vqh6r7t27A+Dr69uo105OTg7Jycmcf/759bareq38/fffNZK1o0VHR/PNN98QGRnJ559/zi233MJpp51W/b7+66+/2Lt3L2+//bZbYZDVq1fXerzQ0NDqv2X27Nn06dOHpUuXsnz58iYfqzHv/ypGo7FG2x07dtTatr7XcdeuXWu9zcsvv8zq1at5+OGHWbJkCVdccQWff/55rW2PVt9j0pT4161bR15eHp9++iknnXRS9fbExMQa99mzZ0927drFX3/9RX5+PqAmi0cOE23qZ1dTng+AF198kezs7BpVEWvTVu9JIbyFzNkSogO7/fbbMRqNXHbZZWRlZdXYf+DAAZ555hm3bUcnGykpKXz++edMmTIFnU4HqF/EylFL9D333HN1ztU5WllZGRUVFU39czjuuOPo0aMHjz/+eI1hMqCeoDaX0+nk7rvv5oILLqiz12zq1KlYLBYeeeQR7HZ7s+//1Vdfdbv9Sy+9hMPhqB5+1Nj7qXo+jn4unn766Vrv96OPPkKv1zN27NhGxXmkqivjVffZElwuF1qtttbhbABPPvkkv/32G6+++ioPPvggY8aM4aqrrqpRzr8uGzdu5PPPP+f//u//6ryPlrJq1Sq3OVebN29m06ZN1c9pREQEEyZM4JVXXiEjI6PG7Y9+7VRV65sxY0a99ztlyhTMZjNLliypUT3z6NdF7969q4dsPvfcc7hcLrelH2p7PSmKUuMzojbl5eWUlJRUv6+P5VitqaHXcWJiIrfddhuzZ8/m7rvv5vHHH+eLL77gnXfeafJ9Hf2YNEVtj19lZSUvvvhire19fX0ZPnw4kydPZvLkyTWG27bUZ1dtioqKePjhh7npppsa7AFsy/ekEN5CeraE6MB69OjBBx98wLnnnku/fv246KKLGDhwIJWVlfz222988sknNdbsGThwIFOnTnUr/Q5w//33V7eZPn067777LoGBgfTv35+NGzfy448/EhoaWmscq1atIiwsrHoY4YYNG7jxxhub/PdotVpef/11pk2bxoABA7j44ovp0qULaWlprF27FovFUmPoS2Olpqai1+vrHdJmsVh46aWX+N///sfw4cM577zzCA8PJzk5ma+//poTTzyR559/vsH7qqys5OSTT+acc87h33//5cUXX2Ts2LGceeaZTbofi8XCSSedxGOPPYbdbqdLly788MMPNa5+79u3j/vuu48PP/yQO++8s1Fzy3Jycvjuu+8AyMjI4NFHHyUwMNCtR66pduzYgclkwuFwsHXrVt555x1mzJhR64nvP//8w8KFC5k/fz5nnHEGoJbCHjp0KFdffXX1XKj6/PDDD5xyyinH1AvZWD179mTs2LFcddVVVFRU8PTTTxMaGsrtt99e3eaFF15g7NixDBo0iMsvv5zu3buTlZXFxo0bSU1NrV477IUXXuDee+8lPDycAwcOVM/LAnA4HBw8eJDVq1dzyimnYLFYeOqpp7jssssYOXIkF1xwAcHBwezcuZPS0lLefvvtWuONiopi6dKlXHbZZVx44YWcdtpp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1uDBkZx7wnu8e9XFlP44Dv2MNa0W35GUsgw0QGZBf8zdjm34cakSBBRjL6x5su0NNBpNo4byWa3ljBo1hYiIWHJy0mqdb6XRaIiNjWXKlCnu85sVBVdFAFqNQlGFb7OHDk6cOJGXXnoJvV5PTEwMPkdUGisuLuaKK67g+uuvr97myv8brUbBP7InJSUlTJ06lalTp/L+++8THh5OcnIyU6dOpbLyvxPFqvlmMTH1P+8bNmzAbDaTlJTEZZddxj333MPzzz9fvX/58uX069ev+vcJEybUOMZTTz3F5MmTsdls3H333Zxzzjn8/bf7GobFxcVER0fX2jNV15wkH4MvlMKOde+TZDPx4ksvcffdd/P9999Xt5k7dy733HNP9e/PPvss69evr/593rx55OXl8cwzz9CtWzcMBgOjR4+ufqxCQkJ48sknuemmm7jnnnvQ6XRUVFRUFxCrWof066+/pksX9zUuq3roqlQ9llV69ap9yPAtt9zCrbfeWuuwzjfeeIN58+ZhNpvx9/fH4XDg5+dX63FE0yiKgk6rvt81Pkc8dxot6QVRlFf44/LxnikFpaUKENjwNAft4c8olyyR0NKaPaD0uOOOY926daxatYo77riDp556iieffJKTTjqpJeMTLSw3N5N7P/mZ4447jrPDZBhhS8gsiMDp8iEzu22Gngl1WJPFT/1C0BhacEidIQKKINxcQm5ubqsmW/kp/xIJpOZfRlBQ46rz+fn5YivV4OvjwFXUdgsbl9sy8QcybNH0nRp0bMciDkilNL99L2xcXu5Cp9Nx++1PcNtt56HRaNwSrqoTm6effrpGISk0GhwuH/Q6O676SrU3wGg00rNnz1r3DR8+nN27d/+3X1HYb3cBLsyBJvbs2UNeXh7/93//V53s//HHHzWOs2XLFjQajVuxiNokJCQQFBREz549Ofvss9m4caPb/ri4OLdYfWopQR0VFVXd5oYbbuCMM87Abncf0jR8+HAyMzPx8fEhPj6+3piqaLVaMgoiMQTF0j9Gx3333cfQoUPJzc0lLOzwYuaBgW7xHT3369dff+XFF1/ktNNOAyAlJYXc3Fy3Ntdccw2XXHIJ6enpKIrCHXfcUT3ap3///hgMBpKTkxscMlj1WNbniy++YO/evXz99de17j/hhBM488wzWb9+Pe+99x6fffZZjd460TxOp5NDufEk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jHm00uSGDRvweDy89NJLyOXid/bo2jcQHZNffvmF4uJiqqqqvH/H0XZ/8sknxMfHtxjR1Ov1Dexo6ngCzJo1ixtuuIHMzMwmj+ddd93FkiVLuP7667n44osb/K1NMXz4cBYsWIAgCN40xyFDhvDuu+9SXl7eoejW6tWrmTFjhvc7abVavQIPdpsDt1p0sv5a17CFzl9//dXA8QVAM4Dw6JEMHBLBzJkzOffccxtFPkeMGEFRURFKpdIr0uEL6j//u+9+DYOhkj59jI0+f6i7NvzzD2PGjAHEa4PFUkn/PhnIBFeLx+NYTj/9dG699VbeeustNm7c6P1OHf23duQ8OJZjhfiaOvaJiYneeZo79vVs376d4cP9mYzfiT5bIHqiZ511FpdeeqlfHC0J31FRUcADH63m1fUCijBJ+t0flFrjKLbEYyn3bzj6eKe4qJaoOmdLru1Yqkhr1HjEhwWDqgV5347gtHh7/GzPvqRTQ6WlySgy16X2+UmRsMZUAECROYZevXzrbLlU4oOuzN51zhdBEHC7xYctrVa8fbrdDR2teh57THy9xTIbmQynW3xA9rShkL6jqFQqbrxvHn9v2s6GDRuYMWMGJ5xwgvcB6/HHH2fJkiXMnj2bHTt2sGvXLj7++GNvporVauXxOs/xpJNOoqioiKKiImpra7Hb7VgsYor6Qw89xPr167ntttvYunUru3fvZsGCBQ2Es+ofgHv06MELL7zArbfeiskk9rPLysrin3/+4ccff2Tv3r089thjXuGCet5880127NhBTk4OH3zwAT///LP3Qakt+zvdKmodWqpqOxcBqcdms1FbW8uGDRtYtWoVgwYNarTNrFmzWLNmDXfccQebN29m3759fP311y0KZCxatIgtW7Zw6NAhli9fzkcffdSuB8LMzEycTievvfYa2dnZvP/++80qOSckJJCZmdnoIXj69OnExsYybdo0/vzzTw4ePMjKlSu56667mnSWWmL//v2sXLnS+z06FkEQuPrqqxkxYgQPPvigN4rSEpMmTcJqtTaQ7b7iiitITEzk/PPPZ/Xq1WRnZ/P55597e6+2RlZWFl988QWbN29my5Yt/Otf//KqXdba5GzJHYbTrWL16tU8//zz7N27lzfeeIPPPvuMmTNnNhjLXK3FYlVx+PBhPvjgA/r06dMo2nPaaacxbtw4zj//fH76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uIHrrruO/fv3U1hYyLhxLfeq/PPPP+nTp4+3rKWteDwepk2bRnl5Ob///js///wz2dnZXHbZZQ22q/+ub9++nbtuupz7n3iVvfv3t2sut0fLgYP5XDHjhnZ9/kfP31zU2mazMXLkSL777ju2b9/OTTfdxFVXXcX69X8B4KyrM3vvvfdQKpWsW7eOV199lXnz5vHuu+96x3E6nTz55JNs2bKFr776ipycHK699lpkMnGxxeEQFzPKy8v566+/vPu9/fbbpKQ0LE+ZO3cuS5Ys4a233mLHjh3cc889XHnllfz++++kpaV5/5Z169YBsG7dOu9raWlHWqL8+9//5qWXXmL9+vXExcVx7rnn4uxgiC09PZ2EhAT+/PPPDu3vC3yWV3DsappE6BCjFyMB6oikIFvS/RG0opR1orGWv/YXNboQSXSO0nIrD/0X/v3vixndxsaSHSU5WY5CsR23ez8mUyZJSZ07fy5f9DqVRRkY03zkENWRnJrGwt9g4NATOFnmu9qqEaM/ZuGmbzh/+tU+G7MpRmf+Tf/EtdTk6QHf9B/rigzrAdV2H0fDBQG5zIPT6eK5uc97H17fe+89+vfvz7p16xgzZgyzZ8/mwQcf5JprrgGgV69ePPnkkzzwwAM88cQT3uHsdjs6nc4rtqTT6bDbjyhJPv/884waNYo333zT+9rAgQMbmfXDDz9w7bXX8tlnn3HKKUfEhFQqFbNnz/b+npGRwdq1a/n000+9jt3RC7putxudTud15tqyfz0e6p0t/ythzp07l+nTp3ujNFlZWcyfP58JEyawYMECtNrGqbpHOxparZaIiIh215cdHRXq2bMnTz31FLfccov389HpdBQWFja7/yeffILH4+Hdd9/1ps4uWrQIo9HIypUrOeOMM9plD4gP7E899RSzZs3iscce876+detWFAoFs2bN8r6mVrecAnfo0CGSk9vfzmbFihVs27aNgwcPeh/wlyxZwsCBA1m/fj2jR48GxDrHxMREtCo5PVITUSgU6MON7ZpLrlQz95XFXHL+OcycOROZTNamz//o+es59jk7JSWF+++/3/v7nXfeyY8//sjX33zJpFG3gEz8bqelpfHyyy8jk8no27cv27Zt4+WXX+bGG28E4LrrrvOO0atXL+bPn8/o0aN55BELYTo17roI93XXXcc777zDCSecQG5uLhs2bOCiiy5i586dgHh9eOaZZ/jll1+8399evXqxatUq3n77bSZMmOD9e2w2MTsgLi6uSfG2J554gtNPPx0Qr1epqal8+eWXjc7jtpKcnMyhQ4c6tK8v6JCzVR/Vao4vvviiQ8ZI+B6Px0N8hCgoEJkgNTT2N/posR+RWukke/chTpkwMsgWdS+KimxAKnq9/6O0vXq6uHTS2VRX5FJWuqLT41XUFLLtkI7rJvu2aW1aWhq3PgRXX92Hk7W+Oy4m00FgD717t2/VuL1cP+krbjzlK5bvnwF07EbqFy5tKNhhzt+NUVeDxZ1MZEInFlGm5TR6qabSTJhQiFIhRxCEIzVhnUXwIJcJKJUKRo8Z6325X79+GI1Gdu3axZgxY9iyZQurV69uEMlyu93YbDZqamoICxNTSU0mExERzafBbt68mUsuuaRFk9atW8fChQsJDw9n7Nixjd5/4403+O9//0tubi61tbU4HI5GKX3PPPMMTz31FLW1tdxxxx1cffXV7dr/22+/Ja7XT4gqAjJcbnejB95t27YRHn5ErbApR8disdRFZ+UkJCQwbdo05s6d22i7LVu2sHXr1gZF+oIg4PF4OHjwIP3792/yWC1dupSbbrqJmpoaLrroogaOCMD48eMbiNfUpxnW88svvzB37lx2795NZWUlLperwWc6aNAgPvzwQw4ePEhGRkaTdu/fv79R5MhmszVIyfr2228bHCuXy9WsAzFnzhwmTZrESSed1OD1jIwMnE4nn332GRdffHGbzoHa2tpm52np2OzatYu0tLQGkZQBAwZ4z4l6Z6v+O+ByuXC7Xbz89P2k9zgi/d6Wz1+l1bJlx1627tzPsq+PHMe2fP6t4Xa7eeaZZ/j00085fPgwDocDu92O5qzTAPAgRrZOOOGEBsdz3LhxvPTSS7jdbhQKBRs2bOA///kPW7ZsoaKiwpuW66nZwvB+sRzONgNwzTXXMGbMGF5++WXeffddrrzyygbnxf79+6mpqfE6SfU4HA6GDx/err/t6MWG6Oho+vbty65du7yvtfXcq0en0zU6PwJJh5ytyMgjaTAffvgh5557brvDuBKBoby8gsRIMT0nvmfvIFtzHKBQY7JGERNeQVn+4WBb0+3Yt3sAUfon+WZ5GUctuPsHwc2H14oqcl+XdX5FTC5/B9jCRRd91+mxGjIQ+JXvvvNhbVXxSq4b8CdR5XQ6otcaglasW0iO3ufXedqN8khzYbfbjc0TRY1Hh0wTA4pOiIYoGzctVocroKoQpcKFw+FCo/FN1NbjPhIpU7cwptVqZfbs2U0upB79MJudnd3kQ3k9Op2uVZvWrl3LggULWLZsGXfccQcfffSR972PP/6Y+++/n5deeolx48ZhMBh44YUX+PvvvxuMccstt3DhhReyYcMG7r77bi688EImTZrU5v0nTZrE83NmYVBWYbbp+HXtVp555pkG2/Tt25fly5d7f//777+58sorG2xjMBjYuHEjgiCwc+dOrrnmGhITEznttNMabGe1Wrn55pubbI2Tnt78Iuh5553H6NGj2b17N7fffjtffvkl06dP977/ySefNHhQP7p2Jicnh3POOYdbb72Vp59+mujoaFatWsX111+Pw+EgLCyM6667ji+//JJevXqh1zf+XlqtVkaOHNmkkltc3JGFnUmTJrFgwQLv71988UWj4wmwb98+3n33XTZv3kx+fsNWFaNHj2bOnDlce+21XHnllahUKmpraxs5ykcTGxvLtm3bmnyvpWPTVuq/AwWHDnNw92/c/sDzjJ5wPieccALQts9fqdZgra7lxqsv4obbHyE8vOG1o6XPvzVeeOEFXn31VV555RVvbd7dd99Nrd1OSSWgbv06VV1dzZQpU5gyZQpLly4lLi6O3NxcpkyZgt1ZVwMsiA5VTEwMU6ZMYcmSJfz3v//ll19+4a23jigv19cDfvfdd42yejQaTYf/zqZo67lXT3l5eYPvbKDpkLO1aNEi7/+XLVvG888/L6kQhijZB4oZEinmRsenH78pOoGktCqWmPAKakwlwTal23FC6lbW3XcHmwpOANb6dzKFhmqHEr3aRW1FJ5X+yv7mtjG7+V1Pg9VUX5CcnIBcNhIdB8TGyfrOj+8s2cRZ/UqwlA8kNta/zpYhTlxxNShDd3HC6XSSX54KqOngInSLKJSiI6SQebDWOnzmbNXXOLhcbrZu3cz48eJq8Z49ezCbzd6H0REjRrBnzx4yMzObHctms7Fu3TquuuqqZrcZMmQIK1asaJDKdyxXXXUVt9xyC2eeeSaDBg3iyy+/5IILLgBEcY3x48dz2223ebdvqqg9Ojqa6Oho+vXrx7Jly/j888+ZNGlSm/fX6/WkpvUjTleEuVbP9gNFjbZRq9UNjsexzgGINVH122Rl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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Установка параметров для поиска по сетке для старых значений\n", "old_param_grid: dict[str, list[int | None]] = {\n", " 'n_estimators': [50, 100, 200], # Количество деревьев\n", " 'max_depth': [None, 10, 20, 30], # Максимальная глубина дерева\n", " 'min_samples_split': [2, 5, 10] # Минимальное количество образцов для разбиения узла\n", "}\n", "\n", "# Подбор гиперпараметров с помощью поиска по сетке для старых параметров\n", "old_grid_search = GridSearchCV(estimator=model, \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_processing_result, y_train)\n", "\n", "# Результаты подбора для старых параметров\n", "old_best_params = old_grid_search.best_params_\n", "# Меняем знак, так как берем отрицательное значение MSE\n", "old_best_mse = -old_grid_search.best_score_\n", "\n", "\n", "# Установка параметров для поиска по сетке для новых значений\n", "new_param_grid: dict[str, list[int]] = {\n", " 'n_estimators': [50],\n", " 'max_depth': [5],\n", " 'min_samples_split': [10]\n", "}\n", "\n", "# Подбор гиперпараметров с помощью поиска по сетке для новых параметров\n", "new_grid_search = GridSearchCV(estimator=model, \n", " param_grid=new_param_grid,\n", " scoring='neg_mean_squared_error', cv=2)\n", "\n", "# Обучение модели на тренировочных данных\n", "new_grid_search.fit(X_train_processing_result, y_train)\n", "\n", "# Результаты подбора для новых параметров\n", "new_best_params = new_grid_search.best_params_\n", "# Меняем знак, так как берем отрицательное значение MSE\n", "new_best_mse = -new_grid_search.best_score_\n", "\n", "\n", "# Обучение модели с лучшими параметрами для новых значений\n", "model_best = RandomForestRegressor(**new_best_params)\n", "model_best.fit(X_train_processing_result, y_train)\n", "\n", "# Прогнозирование на тестовой выборке\n", "y_pred = model_best.predict(X_test_processing_result)\n", "\n", "# Оценка производительности модели\n", "mse = metrics.mean_squared_error(y_test, y_pred)\n", "rmse = np.sqrt(mse)\n", "\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", "model_old = RandomForestRegressor(**old_best_params)\n", "model_old.fit(X_train_processing_result, y_train)\n", "\n", "# Прогнозирование на тестовой выборке для старых параметров\n", "y_pred_old = model_old.predict(X_test_processing_result)\n", "\n", "# Визуализация ошибок\n", "plt.figure(figsize=(10, 5))\n", "plt.plot(y_test, 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()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Бизес-цель №2 (Задача классификации).\n", "\n", "### Достижимый уровень качества модели:\n", "**Основные метрики для классификации:**\n", "- **Accuracy (точность)** – показывает долю правильно классифицированных примеров среди всех наблюдений. Легко интерпретируется, но может быть недостаточно информативной для несбалансированных классов.\n", "- **F1-Score** – гармоническое среднее между точностью (precision) и полнотой (recall). Подходит для задач, где важно одновременно учитывать как ложные положительные, так и ложные отрицательные ошибки, особенно при несбалансированных классах.\n", "- **ROC AUC (Area Under the ROC Curve)** – отражает способность модели различать положительные и отрицательные классы на всех уровнях порога вероятности. Значение от 0.5 (случайное угадывание) до 1.0 (идеальная модель). Полезна для оценки модели на несбалансированных данных.\n", "- **Cohen's Kappa** – измеряет степень согласия между предсказаниями модели и истинными метками с учётом случайного угадывания. Значения варьируются от -1 (полное несогласие) до 1 (идеальное согласие). Удобна для оценки на несбалансированных данных.\n", "- **MCC (Matthews Correlation Coefficient)** – метрика корреляции между предсказаниями и истинными классами, учитывающая все типы ошибок (TP, TN, FP, FN). Значение варьируется от -1 (полная несоответствие) до 1 (идеальное совпадение). Отлично подходит для задач с несбалансированными классами.\n", "- **Confusion Matrix (матрица ошибок)** – матрица ошибок отражает распределение предсказаний модели по каждому из классов.\n", "\n", "---\n", "\n", "### Выбор ориентира:\n", "В качестве базовой модели для оценки качества предсказаний выбрано использование самой распространённой категории целевой переменной (\"Transaction\") в обучающей выборке. Этот подход, известный как \"most frequent class baseline\", заключается в том, что модель всегда предсказывает наиболее часто встречающийся тип транзакции.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Разбиение данных:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Самый частый класс: Sale\n", "Baseline Accuracy: 0.59375\n", "Baseline F1: 0.4424019607843137\n" ] } ], "source": [ "from sklearn.metrics import accuracy_score, f1_score\n", "\n", "\n", "# Определяем целевой признак и входные признаки\n", "y_feature: str = 'Transaction'\n", "X_features: list[str] = df.drop(columns=y_feature, axis=1).columns.tolist()\n", "\n", "# Разбиваем данные на обучающую и тестовую выборки\n", "X_df_train, X_df_test, y_df_train, y_df_test = split_into_train_test(\n", " df, \n", " stratify_colname=y_feature, \n", " frac_train=0.8, \n", " random_state=42 \n", ")\n", "\n", "# Определяем самый частый класс\n", "most_frequent_class = y_df_train.mode().values[0][0]\n", "print(f\"Самый частый класс: {most_frequent_class}\")\n", "\n", "# Вычисляем предсказания базовой модели (все предсказания равны самому частому классу)\n", "baseline_predictions: list[str] = [most_frequent_class] * len(y_df_test)\n", "\n", "# Оцениваем базовую модель\n", "print('Baseline Accuracy:', accuracy_score(y_df_test, baseline_predictions))\n", "print('Baseline F1:', f1_score(y_df_test, baseline_predictions, average='weighted'))\n", "\n", "# Унитарное кодирование для целевого признака\n", "y_df_train = y_df_train['Transaction'].map({'Sale': 1, 'Option Exercise': 0})\n", "y_df_test = y_df_test['Transaction'].map({'Sale': 1, 'Option Exercise': 0})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Выбор моделей обучения:\n", "\n", "Для обучения были выбраны следующие модели:\n", "1. **Случайный лес (Random Forest)**: Ансамблевая модель, которая использует множество решающих деревьев. Она хорошо справляется с нелинейными зависимостями и шумом в данных, а также обладает устойчивостью к переобучению.\n", "2. **Логистическая регрессия (Logistic Regression)**: Статистический метод для бинарной классификации, который моделирует зависимость между целевой переменной и независимыми признаками, используя логистическую функцию. Она проста в интерпретации и быстра в обучении.\n", "3. **Метод ближайших соседей (KNN)**: Алгоритм классификации, который предсказывает класс на основе ближайших k обучающих примеров. KNN интуитивно понятен и не требует обучения, но может быть медленным на больших данных и чувствительным к выбору параметров.\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Построение конвейера:\n", "\n", "Конвейеры для обработки числовых и категориальных значений, а так же основной конвейер уже были построены ранее при решении задачи регрессии." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Демонстрация работы конвейера:" ] }, { "cell_type": "code", "execution_count": 12, "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", "
CostSharesValue ($)Shares TotalYearMonthDayInsider Trading_DENHOLM ROBYN MInsider Trading_Kirkhorn ZacharyInsider Trading_Musk ElonInsider Trading_Musk KimbalInsider Trading_Taneja VaibhavInsider Trading_Wilson-Thompson KathleenRelationship_Chief Accounting OfficerRelationship_Chief Financial OfficerRelationship_DirectorRelationship_SVP Powertrain and Energy Eng.Transaction_Sale
0-0.966516-0.361759-0.450022-0.3435990.715678-0.506108-0.4006230.00.00.00.01.00.01.00.00.00.00.0
1-1.0748941.225216-0.414725-0.319938-1.3972760.8013380.9066730.00.01.00.00.00.00.00.00.00.00.0
2-1.0748941.211753-0.415027-0.320141-1.3972761.062828-0.0989390.00.01.00.00.00.00.00.00.00.00.0
31.1671420.0374991.023612-0.325853-1.3972761.062828-0.5011840.00.01.00.00.00.00.00.00.00.01.0
41.217886-0.0752870.632973-0.330205-1.3972761.062828-0.5011840.00.01.00.00.00.00.00.00.00.01.0
50.505872-0.361021-0.443679-0.3436980.715678-0.7675981.3089180.00.00.00.00.00.00.00.00.01.01.0
6-1.088674-0.357532-0.450389-0.3428630.7156780.278360-0.9034290.00.00.00.01.00.01.00.00.00.00.0
7-0.692146-0.355855-0.445383-0.3432200.7156780.8013381.4094800.00.00.00.00.00.00.00.00.01.01.0
8-1.088674-0.361181-0.450389-0.343649-1.3972761.062828-0.9034290.00.00.00.01.00.01.00.00.00.00.0
91.091997-0.2045310.1147121.5381660.715678-1.0290871.2083570.00.01.00.00.00.00.00.00.00.01.0
\n", "
" ], "text/plain": [ " Cost Shares Value ($) Shares Total Year Month Day \\\n", "0 -0.966516 -0.361759 -0.450022 -0.343599 0.715678 -0.506108 -0.400623 \n", "1 -1.074894 1.225216 -0.414725 -0.319938 -1.397276 0.801338 0.906673 \n", "2 -1.074894 1.211753 -0.415027 -0.320141 -1.397276 1.062828 -0.098939 \n", "3 1.167142 0.037499 1.023612 -0.325853 -1.397276 1.062828 -0.501184 \n", "4 1.217886 -0.075287 0.632973 -0.330205 -1.397276 1.062828 -0.501184 \n", "5 0.505872 -0.361021 -0.443679 -0.343698 0.715678 -0.767598 1.308918 \n", "6 -1.088674 -0.357532 -0.450389 -0.342863 0.715678 0.278360 -0.903429 \n", "7 -0.692146 -0.355855 -0.445383 -0.343220 0.715678 0.801338 1.409480 \n", "8 -1.088674 -0.361181 -0.450389 -0.343649 -1.397276 1.062828 -0.903429 \n", "9 1.091997 -0.204531 0.114712 1.538166 0.715678 -1.029087 1.208357 \n", "\n", " Insider Trading_DENHOLM ROBYN M Insider Trading_Kirkhorn Zachary \\\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", "5 0.0 0.0 \n", "6 0.0 0.0 \n", "7 0.0 0.0 \n", "8 0.0 0.0 \n", "9 0.0 0.0 \n", "\n", " Insider Trading_Musk Elon Insider Trading_Musk Kimbal \\\n", "0 0.0 0.0 \n", "1 1.0 0.0 \n", "2 1.0 0.0 \n", "3 1.0 0.0 \n", "4 1.0 0.0 \n", "5 0.0 0.0 \n", "6 0.0 0.0 \n", "7 0.0 0.0 \n", "8 0.0 0.0 \n", "9 1.0 0.0 \n", "\n", " Insider Trading_Taneja Vaibhav Insider Trading_Wilson-Thompson Kathleen \\\n", "0 1.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", "5 0.0 0.0 \n", "6 1.0 0.0 \n", "7 0.0 0.0 \n", "8 1.0 0.0 \n", "9 0.0 0.0 \n", "\n", " Relationship_Chief Accounting Officer \\\n", "0 1.0 \n", "1 0.0 \n", "2 0.0 \n", "3 0.0 \n", "4 0.0 \n", "5 0.0 \n", "6 1.0 \n", "7 0.0 \n", "8 1.0 \n", "9 0.0 \n", "\n", " Relationship_Chief Financial Officer Relationship_Director \\\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", "5 0.0 0.0 \n", "6 0.0 0.0 \n", "7 0.0 0.0 \n", "8 0.0 0.0 \n", "9 0.0 0.0 \n", "\n", " Relationship_SVP Powertrain and Energy Eng. Transaction_Sale \n", "0 0.0 0.0 \n", "1 0.0 0.0 \n", "2 0.0 0.0 \n", "3 0.0 1.0 \n", "4 0.0 1.0 \n", "5 1.0 1.0 \n", "6 0.0 0.0 \n", "7 1.0 1.0 \n", "8 0.0 0.0 \n", "9 0.0 1.0 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Применение конвейера\n", "preprocessing_result = pipeline_end.fit_transform(X_df_train)\n", "preprocessed_df = pd.DataFrame(\n", " preprocessing_result,\n", " columns=pipeline_end.get_feature_names_out(),\n", ")\n", "\n", "preprocessed_df.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Проверка моделей:\n", "\n", "Оценка результатов обучения:\n", "1. **Случайный лес (Random Forest)**:\n", " - Показатели:\n", " - Precision (обучение): 1.0\n", " - Precision (тест): 1.0\n", " - Recall (обучение): 1.0\n", " - Recall (тест): 1.0\n", " - Accuracy (обучение): 1.0\n", " - Accuracy (тест): 1.0\n", " - F1 Score (обучение): 1.0\n", " - F1 Score (тест): 1.0\n", " - ROC AUC (тест): 1.0\n", " - Cohen Kappa (тест): 1.0\n", " - MCC (тест): 1.0\n", " - Confusion Matrix (тест):\n", " ```\n", " [[13, 0],\n", " [ 0, 19]]\n", " ```\n", " - Вывод: Случайный лес идеально справляется с задачей на обеих выборках. Однако столь высокие значения метрик на обучении и тесте могут указывать на переобучение модели.\n", "2. **Логистическая регрессия (Logistic Regression)**:\n", " - Показатели:\n", " - Precision (обучение): 1.0\n", " - Precision (тест): 1.0\n", " - Recall (обучение): 1.0\n", " - Recall (тест): 1.0\n", " - Accuracy (обучение): 1.0\n", " - Accuracy (тест): 1.0\n", " - F1 Score (обучение): 1.0\n", " - F1 Score (тест): 1.0\n", " - ROC AUC (тест): 1.0\n", " - Cohen Kappa (тест): 1.0\n", " - MCC (тест): 1.0\n", " - Confusion Matrix (тест):\n", " ```\n", " [[13, 0],\n", " [ 0, 19]]\n", " ```\n", " - Вывод: Логистическая регрессия также показывает идеальные результаты. Это может быть связано с линейной разделимостью данных.\n", "3. **Метод ближайших соседей (KNN)**:\n", " - Показатели:\n", " - Precision (обучение): 1.0\n", " - Precision (тест): 1.0\n", " - Recall (обучение): 0.95\n", " - Recall (тест): 0.947\n", " - Accuracy (обучение): 0.968\n", " - Accuracy (тест): 0.969\n", " - F1 Score (обучение): 0.974\n", " - F1 Score (тест): 0.973\n", " - ROC AUC (тест): 0.974\n", " - Cohen Kappa (тест): 0.936\n", " - MCC (тест): 0.938\n", " - Confusion Matrix (тест):\n", " ```\n", " [[13, 0],\n", " [ 1, 18]]\n", " ```\n", " - Вывод: Метод ближайших соседей показывает хорошие результаты, с небольшим снижением полноты на тестовой выборке. Это связано с особенностями алгоритма, который может быть чувствителен к выбросам и распределению данных.\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Модель: RandomForestClassifier\n", "\tPrecision_train: 1.0\n", "\tPrecision_test: 1.0\n", "\tRecall_train: 1.0\n", "\tRecall_test: 1.0\n", "\tAccuracy_train: 1.0\n", "\tAccuracy_test: 1.0\n", "\tF1_train: 1.0\n", "\tF1_test: 1.0\n", "\tROC_AUC_test: 1.0\n", "\tCohen_kappa_test: 1.0\n", "\tMCC_test: 1.0\n", "\tConfusion_matrix: [[13 0]\n", " [ 0 19]]\n", "\n", "Модель: LogisticRegression\n", "\tPrecision_train: 1.0\n", "\tPrecision_test: 1.0\n", "\tRecall_train: 1.0\n", "\tRecall_test: 1.0\n", "\tAccuracy_train: 1.0\n", "\tAccuracy_test: 1.0\n", "\tF1_train: 1.0\n", "\tF1_test: 1.0\n", "\tROC_AUC_test: 1.0\n", "\tCohen_kappa_test: 1.0\n", "\tMCC_test: 1.0\n", "\tConfusion_matrix: [[13 0]\n", " [ 0 19]]\n", "\n", "Модель: KNN\n", "\tPrecision_train: 1.0\n", "\tPrecision_test: 1.0\n", "\tRecall_train: 0.95\n", "\tRecall_test: 0.9473684210526315\n", "\tAccuracy_train: 0.967741935483871\n", "\tAccuracy_test: 0.96875\n", "\tF1_train: 0.9743589743589743\n", "\tF1_test: 0.972972972972973\n", "\tROC_AUC_test: 0.9736842105263157\n", "\tCohen_kappa_test: 0.9359999999999999\n", "\tMCC_test: 0.9379228369755696\n", "\tConfusion_matrix: [[13 0]\n", " [ 1 18]]\n", "\n" ] } ], "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn import metrics\n", "\n", "\n", "# Оценка качества различных моделей на основе метрик\n", "def evaluate_models(models: dict[str, Any], \n", " pipeline_end: Pipeline, \n", " X_train: DataFrame, y_train, \n", " X_test: DataFrame, y_test) -> dict[str, dict[str, Any]]:\n", " results: dict[str, dict[str, Any]] = {}\n", " \n", " for model_name, model in models.items():\n", " # Создание конвейера для текущей модели\n", " model_pipeline = Pipeline(\n", " [\n", " (\"pipeline\", pipeline_end), \n", " (\"model\", model),\n", " ]\n", " )\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", " metrics_dict: dict[str, Any] = {\n", " \"Precision_train\": metrics.precision_score(y_train, y_train_predict),\n", " \"Precision_test\": metrics.precision_score(y_test, y_test_predict),\n", " \"Recall_train\": metrics.recall_score(y_train, y_train_predict),\n", " \"Recall_test\": metrics.recall_score(y_test, y_test_predict),\n", " \"Accuracy_train\": metrics.accuracy_score(y_train, y_train_predict),\n", " \"Accuracy_test\": metrics.accuracy_score(y_test, y_test_predict),\n", " \"F1_train\": metrics.f1_score(y_train, y_train_predict),\n", " \"F1_test\": metrics.f1_score(y_test, y_test_predict),\n", " \"ROC_AUC_test\": metrics.roc_auc_score(y_test, y_test_predict),\n", " \"Cohen_kappa_test\": metrics.cohen_kappa_score(y_test, y_test_predict),\n", " \"MCC_test\": metrics.matthews_corrcoef(y_test, y_test_predict),\n", " \"Confusion_matrix\": metrics.confusion_matrix(y_test, y_test_predict),\n", " }\n", " \n", " # Сохранение результатов\n", " results[model_name] = metrics_dict\n", " \n", " return results\n", "\n", "\n", "# Выбранные модели для классификации\n", "models_classification: dict[str, Any] = {\n", " \"RandomForestClassifier\": RandomForestClassifier(random_state=42),\n", " \"LogisticRegression\": LogisticRegression(max_iter=1000),\n", " \"KNN\": KNeighborsClassifier(),\n", "}\n", "\n", "results: dict[str, dict[str, Any]] = evaluate_models(models_classification,\n", " pipeline_end,\n", " X_df_train, y_df_train,\n", " X_df_test, y_df_test)\n", "\n", "# Вывод результатов\n", "for model_name, metrics_dict in results.items():\n", " print(f\"Модель: {model_name}\")\n", " for metric_name, value in metrics_dict.items():\n", " print(f\"\\t{metric_name}: {value}\")\n", " print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Матрица ошибок:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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wABJUokSJey5ltxmamuUXLx4Ua+++qo9g4oWLaqOHTvq7Nmz6b7Xm69z/tte37597dcbpUuX1tixY2W1Ot7G9Ny5c3ruuecUEBCgoKAgderUSTt27Eix3ld6uWO1WvXee+/p3nvvlZeXlwoVKqQXX3xRFy5ccHitbdu2KTIyUgUKFJC3t7dKlCihLl26OJzz9ddfq3r16vL391dAQIAqV66s999/3348rTVK5s2bp+rVq8vb21sFChTQs88+m2LqdfJ7OH78uFq2bCk/Pz8FBwerf//+SkxMTPdzBuAcRpQAOUTyRUm+fPkkSTExMfr444/Vrl07devWTZcvX9Ynn3yiyMhI/fLLLymmfXz55Ze6fPmyXnzxRVksFo0bN05PPvmkDh48aP9H+4oVK9S6dWtVrFhRUVFROnfunJ5//nkVLVrUoS3DMPT4449rzZo1euGFF1S1alUtX75cAwYM0PHjxzVp0iSH8zds2KDFixfr5ZdfliRFRUWpefPmev311zV16lT17NlTFy5c0Lhx49SlSxf99NNPKd7/zRdYefPmVWBgoKSkC7mRI0eqcePG6tGjh/bu3atp06bp119/1aZNmxyKEufOnVOzZs30zDPP6Nlnn1WhQoVktVr1+OOPa+PGjerevbsqVKigP/74Q5MmTdLff/+thQsXSpJ2796t5s2bq0qVKho1apQ8PT21f/9+bdq0SZJUoUIFjRo1SsOGDVP37t3tF30PPfSQ9u3bp7/++ktdunSRv7+/U3/nN1u5cqUOHjyo559/XiEhIdq9e7f+7//+T7t379bWrVtlsVgkSS+99JLmz5+vXr16qWLFijp37pw2btyoPXv2qFq1aoqLi1NkZKRu3LihV155RSEhITp+/LiWLFmiixcv2j/X/3ryyScVFBSkV1991T5c2s/PL82+fv755+rUqZMiIyM1duxYXb16VdOmTVOdOnW0fft2h8WBExISFBkZqTp16mj8+PF3bIQPMo5bEAJ3zu7du1W3bl0FBATo9ddfV968eTVjxgw1aNBA69atU82aNSVJx48fV8OGDWWxWDR48GD5+vrq448/dmq0x0cffaTevXvrqaeeUp8+fXT9+nXt3LlTP//8s9q3b68nn3xSf//9t7766itNmjRJBQoUkCQFBwen2l5sbKzq1q2rPXv2qEuXLqpWrZrOnj2rxYsX69ix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QzabI8MjStatW6fNmzerXLly9n3lypXThx9+qLp167q0cwAA4NYu6IzuV0P5yM++z5RsduVCb1yMAQCQeWSzKTI8oiQsLEzx8fEp9icmJio0NNQlnQIAAM7zko+MVK5uyGYAAICMy3Ch5N1339Urr7yibdu22fdt27ZNffr00fjx413aOQAAcGulVUV7td2+mKtkUjYnLxjnqi0D1q9frxYtWig0NFQWi0ULFy507JphaNiwYSpcuLC8vb3VuHFj7du375btTpkyRcWLF5eXl5dq1qypX375JUP9AgAgS5HNpnCqUJIvXz7lz59f+fPn1/PPP6/o6GjVrFlTnp6e8vT0VM2aNfX777+rS5cuZvcXAABIWmsssm9/6ldd1iX9rvWSpODg4FyXzVeuXFFERISmTJmS6vFx48bpgw8+0PTp0/Xzzz/L19dXkZGRun79epptzp07V/369dPw4cP1+++/KyIiQpGRkfr333/NehsAAOQauTmbnVqj5L333jO5GwAAICPKKiLFPqsS9Ze26/3335e3t7frXzQL50E3a9ZMzZo1S70pw9B7772nN998U0888YQk6bPPPlOhQoW0cOFCPfPMM6k+b+LEierWrZuef/55SdL06dO1dOlSffrppxo0aFDGOggAQFYgm03hVKGkU6dOZvcDAABkQKileIp9CUa8/tJ2tW/fXgEBAa5/URMuxmJiYhx2J49WzYhDhw7p1KlTaty4sX1fYGCgatasqS1btqR6MRYXF6fffvtNgwcPtu9zc3NT48aNtWXLlgy9PgAAWYZsNkWG1yj5r+vXrysmJsZhAwAAWSsnZXNYWJgCAwPtW1RUVIbbOHXqlCSpUKFCDvsLFSpkP3azs2fPKjExMUPPAQDgbkA238btga9cuaKBAwfqm2++0blz51IcT0xMdEnHAACAcxKNBO3THzqto5Kk8PBwx+OuymYTvrU6evSow+iXjH5jBQDAXY1sNkWGR5S8/vrr+umnnzRt2jR5enrq448/1siRIxUaGqrPPvvMjD4CAIB07NMfuqB/7euWfPjhh+Zkswkr6wcEBDhst3MxFhISIkk6ffq0w/7Tp0/bj92sQIECcnd3z9BzAADIdshmU2S4UPL9999r6tSpat26tfLkyaO6devqzTff1Ntvv605c+aY0UcAAJCOMzqhcrpPwQqVJNWqVeuuyuYS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0cZTrp1D7Ofnp7CwMId9w4cP14gRI1Kce/bsWSUmJqpQoUIO+wsVKqS//vor1fZPnTqV6vmnTp3KXMeBHIBsBnI3stlcFEoAuETTpk01c+ZM3bhxQz/88INefvll5c2bV4MHD05xblxcnDw8PFzyuvnz53dJOwDS5uXlpUOHDikuLs6l7RqGIYvF4rDP09PTpa8B3M3IZiD3IpvNxdQbAC7h6empkJAQhYeHq0ePHmrcuLEWL14s6X9Dct966y2FhoaqXLlykqSjR4/q6aefVlBQkPLnz68nnnhChw8ftreZmJiofv36KSgoSPfcc49ef/113bys0s3De2/cuKGBAwcqLCxMnp6eKl26tD755BMdPnxYDRs2lCTly5dPFotFnTt3lpQ0lzIqKkolSpSQt7e3IiIiNH/+fIfX+eGHH1S2bFl5e3urYcOGDv101sCBA1W2bFn5+PioZMmSGjp0qOLj41OcN2PGDIWFhcnHx0dPP/20Ll265HD8448/VoUKFeTl5aXy5ctr6tSpGe4LkFFeXl4KCAhw6RYYGJhiX1oXYwUKFJC7u7tOnz7tsP/06dMKCQlJ9TkhISEZOh/IbcjmWyObkZORzeahUALAFN7e3g4V7tWrV2vv3r1auXKllixZovj4eEVGRsrf318bNmzQpk2b5Ofnp6ZNm9qfN2HCBM2aNUuffvqpNm7cqPPnz+u7775L93U7duyor776Sh988IH27NmjGTNm2IcQfvvtt5KkvXv36uTJk3r//fclSVFRUfrss880ffp07d69W6+++qqeffZZrVu3TlLSReOTTz6pFi1aKDo6Wl27dk11capb8ff316xZs/Tnn3/q/fff10cffaRJkyY5nLN//3598803+v7777Vs2TJt375dPXv2tB+fM2eOhg0bprfeekt79uzR22+/raFDh9qHVwO5lYeHh6pXr67Vq1fb91mtVq1evVq1atVK9Tm1atVyOF+SVq5cmeb5QG5HNqdENgO3L1dnswEAmdSpUyfjiSeeMAzDMKxWq7Fy5UrD09PT6N+/v/14oUKFjBs3btif8/nnnxvlypUzrFarfd+NGzcMb29vY/ny5YZhGEbhwoWNcePG2Y/Hx8cbRYsWtb+WYRhG/fr1jT59+hiGYRh79+41JBkrV65MtZ9r1qwxJBkXLlyw77t+/brh4+NjbN682eHcF154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AAAuc2ox1786evSoatWqlaffZrPpwoULpgQFAADwV507d1bnzp3zPWYYhmbNmqUXXnhB9957r6RLH+wEBwdr5cqVevjhhwszVAAAUMS5XFFSv359bd26NU//hx9+qCZNmpgSFAAA8ECGxdwmKT093aFlZWW5HNbhw4eVmpqqqKgoe19QUJBatmypHTt2mHb7AADAO7hcURIbG6uYmBgdPXpUNptNy5cv14EDB/TOO+9o9erVBREjAADwAIZxqZk1liSFhYU59MfFxWn8+PEujZWamipJCg4OdugPDg62HwMAAHCWy4mSe++9V//97381ceJElSlTRrGxsWratKn++9//qmPHjgURIwAAKKZSUlIUGBhof221Wt0YDQAAwDUkSiSpbdu22rBhg9mxAAAAT2bmtr654wQGBjokSq5FSEiIJCktLU2VK1e296elpSkiIuK6xgYAAN7nmhIlkpSYmKj9+/dLurRuSbNmzUwLCgAAeKC/rC1iylgmqVGjhkJCQrRx40Z7YiQ9PV1ffvml+vfvb9r7AAAA7+ByouTXX3/VI488ou3bt6tcuXKSpFOnTum2227T0qVLVbVqVbNjBAAAXi4jI0MHDx60vz58+LCSkpJUoUIFVatWTUOHDtXkyZN18803q0aNGho3bpxCQ0PVvXt39wUNAACKJJd3venbt68uXLig/fv36+TJkzp58qT2798vm82mvn37FkSMAADAA1gMc5srEhMT1aRJE/sOe8OHD1eTJk0UGxsrSXruuef0zDPP6KmnntKtt96qjIwMrVu3Tv7+/mY/BgAAUMy5XFGyefNmffHFF6pTp469r06dOnrttdfUtm1bU4MDAACQpA4dOsi4ypY7FotFEydO1MSJEwsxKgAAUBy5nCgJCwvThQsX8vTn5OQoNDTUlKAAAIAHKoDFXAEAADyNy1NvXn75ZT3zzDNKTEy09yUmJmrIkCGaPn26qcEBAAAPcnkxV7MaAACAB3KqoqR8+fKyWP73A01mZqZatmypEiUuXX7x4kWVKFFCffr0YdE0AAAAAABQZDmVKJk1a1YBhwEAADweU28AAIAXcCpREhMTU9BxAAAAAAAAuJ3Li7n+1fnz55Wdne3QFxgYeF0BAQAAD0VFCQAA8AIuL+aamZmpQYMGqVKlSipTpozKly/v0AAAQDFlmNwAAAA8kMuJkueee06f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kPr27asyZcpo37592rBhg+bMmXPF9xwzZowaNmyoAQMG6Omnn5afn58+//xzPfTQQ6pYsaLDuatXr9ahQ4fUrl07lS9fXmvXrpXNZlOdOnUUEBCgESNGaNiwYbLZbLr99tt1+vRpbd++XYGBgYqJibnu54Nr821ied3d6A53hwE4rfFtGfrkt6QrHq9Q6aJGzEopvIBgGjO39WWtEwAA4Kncuj3wzTffrMTERNWsWVP/+te/dNNNN+mpp55SZGSkduzYoQoVKjic/+yzzyoxMVFNmjTR5MmTNXPmTEVHR9uPz5gxQxs2bFBYWNgV19UYPHiwhg8frmeffVYNGzbUunXrtGrVKt18883XfT+xsbGqXLmyQ3vuuedkGIaeeOIJtWjRwr6LTXR0tPr376/HHntMGRkZatSokTZv3qwff/xRbdu2VZMmTRQbG6vQ0NCrvmft2rW1fv167dmzRy1atFDr1q31n//8xz6l56/KlSun5cuX64477lC9evWUkJCg9957z77466RJkzRu3DjFx8erXr166tSpk9asWaMaNWpc97MBABQD7HoDAAC8gMVwZTVVNwoPD9fQoUPtu8LA86SnpysoKEh33tBbJXyuPF0I8GRr9zo/lQ3wNOlnbCpf+5BOnz6twMBA88bN/fe9+QOTVaKkOWsjXbxwXokfvWB6rHB0+e+O5wwAKK4K4nud23e9AQAARYPFdqmZNRYAAIAncuvUGwAAAAAAAE9SZCpKjhw54u4QAADwbmauLVIkJv4CAABvVGQSJQAAwL3Y9QYAAHgDpt4AAAAAAADkoqIEAAA4xzAuNbPGAgAA8EAkSgAAgFOYegMAALwBU28AAAAAAAByUVECAACcw643AADAC1BRAgAAAAAAkIuKEgAA4BTWKAEAAN6ARAkAAHAOu94AAAAvwNQbAAAAAACAXFSUAAAApzD1BgAAeAMqSgAAAAAAAHJRUQIAAJzD9sAAAMALUFECAACccnnqjVntWr300kuyWCwaOnSoafcGAABwGYkSAABQZHz99deaP3++GjVq5O5QAABAMUWiBAAAOMdmmNtclJGRoZ49e2rBggUqX758AdwgAAAAiRIAAOBG6enpDi0rK+uK5w4cOFBdunRRVFRUIUYIAAC8DYkSAADgHMPkJiksLExBQUH2Fh8fn+9bL126VLt3777icQAAALOw6w0A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SRLp0tf33r17tWTJEnufYRiy2Ww6fPiw6tWrJ0lq3ry5w/hJSUl66KGHrnbbdh07dlT16tVVs2ZNderUSZ06ddJ9992n0qVL6+DBgzp79qw6duzocE12draaNGni1PjFAmuUAAAAL0CiBHAjf39/dezYUR07dtS4cePUt29fxcXFqUOHDrrnnnvUv39/vfjii6pQoYK2bdumJ598UtnZ2fkmPTIyMjRhwgTdf//9+b4PipZatWrJYrFo//79uu+++/Ic379/v8qXL68bb7zRDdHJoTLEYrFIkn0tkSupWLGiatWqddVztmzZIl9fXx05ckQXL15UiRKXvk1lZGTo3//+twYPHpznmmrVqtn/fHnNk8v+Pm3pagICArR7925t2rRJ69evV2xsrMaPH6+vv/7avj7QmjVrHJI7kmS1Wp1+j6LOsNlkWMyZMmMYTL0BAACeiTVKAA9Sv359ZWZmateuXbLZbJoxY4ZatWql2rVr/+P0maZNm+rAgQOqVatWnubjw//qRc0NN9ygjh076vXXX9e5c+ccjqWmpmrJkiXq0aOHPUkhSTt37nQ4b+fOnfZKC+lSciO/tTkuCwwMVGhoaJ4tqrdv36769etfz+04ZdmyZVq+fLk2bdqk5ORkh217mzZtqn379uX79X21nW0aNWrk0vbHJUqUUFRUlKZNm6a9e/fqyJEj+uyzz1S/fn1ZrVYlJyfnef+wsLDrum8AAAB4FipKADf4448/9NBDD6lPnz5q1KiRAgIClJiYqGnTpunee+9VrVq1dOHCBb322mvq2rWrtm/froSEhKuOGRsbq3vuuUfVqlXTgw8+KB8fH+3Zs0ffffedJk+eXEh3BjPNmTNHt912m6KjozV58mSH7YGrVKmSZ6He7du3a9q0aerevbs2bNigDz74QGvWrLEfDw8P18aNG9WmTRtZrVaVL18+z3uOHDlScXFxuummmxQREaFFixYpKSnJYcrLtTpz5oxSU1Md+kqXLq3AwED9+uuv6t+/v6ZOnarbb79dixYt0j333KPOnTurVatWGjVqlFq1aqVBgwapb9++KlOmjPbt26cNGzZozpw5V3zPMWPGqGHDhhowYICefvpp+fn56fPPP9dDDz2kihUrOpy7evVqHTp0SO3atVP58uW1du1a2Ww21alTRwEBARoxYoSGDRsmm82m22+/XadPn9b27dsVGBiomJiY634+RQJTbwAAgBfgY2bADcqWLauWLVvqlVdeUbt27dSgQQONGzdO/fr105w5c9S4cWPNnDlTU6dOVYMGDbRkyRLFx8dfdczo6GitXr1a69ev16233qpWrVrplVdeUfXq1QvprmC2m2++WYmJiapZs6b+9a9/6aabbtJTTz2lyMhI7dixQxUqVHA4/9lnn1ViYqKaNGmiyZMna+bMmYqOjrYfnzFjhjZs2KCwsLArrqsxePBgDR8+XM8++6waNmyodevWadWqVbr55puv+35iY2NVuXJlh/bcc8/JMAw98cQTatGihX0Xm+joaPXv31+PPfaYMjIy1KhRI23evFk//vij2rZtqyZNmig2NlahoaFXfc/atWtr/fr12rNnj1q0aKHWrVvrP//5j31Kz1+VK1dOy5cv1x133KF69eopISFB7733nm655RZJ0qRJkzRu3DjFx8erXr166tSpk9asWaMaNWpc97MBAACA52DXGwAoBsLDwzV06FANHTrU3aGgGLq8mvwd1n+ZuuvNZ1nvsxtLAWPXGwBAcceuNwAAwH0MQ5JJi7DyOQ0AAPBQTL0BAAAAAADIRUUJABQDR44ccXcI8AKGzZBhMacShJm/AADAU5EoAQAAzjFsMm/qjUnjAAAAmIypNwAAAAAAALlIlAAAAKcYNsPUdi3mzp2r8PBw+fv7q2XLlvrqq69MvsuC5Wr8H3zwgerWrSt/f381bNhQa9euLaRIAQDwXiRKAABAkbBs2TINHz5ccXFx2r17txo3bqzo6GgdP37c3aE5xdX4v/jiCz3yyCN68skn9c0336h79+7q3r27vvvuu0KOHAAA72IxWE0NQBHyxBNP6NSpU1q5cqUkqUOHDoqIiNCsWbMKNY5NmzYpMjJSf/75p8qVK5fvORaLRStWrFD37t2dGnP8+PFauXKlkpKSrjmuI0eOqEaNGvrmm28UERFxzeMAf5Wenq6goCDdrrtVQiVNGfOiLmib1iolJUWBgYH2fqvVKqvVmu81LVu21K233qo5c+ZIkmw2m8LCwvTMM89o9OjRpsRVkFyNv0ePHsrMzNTq1avtfa1atVJERIQSEhLyfY+srCxlZWXZX58+fVrVqlXL85wBACgu0tPTFRYWplOnTikoKMiUMVnMFcB1e+KJJ/T2229LkkqWLKlq1aqpV69eev7551Wi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9uzp0vsDxcWgQYOKxFSbK7la/Js2bcrT99BDD+mhhx4q4KgAAMBfsZgrALfo2bOnKlasqHvvvVdbt27V4cOHtWnTJg0ePFi//vqrpEtl5y+99JJWrlypH374QQMGDNCpU6euOGZ4eLhiYmLUp08frVy50j7m+++/L0mqXr26LBaLVq9erRMnTigjI0MBAQEaMWKEhg0bprfffls///yzdu/erddee82+QOrTTz+tn376SSNHjtSBAwf07rvvavHixS7d780336zk5GQtXbpUP//8s2bPnp3vwrT+/v6KiYnRnj17tHXrVg0ePFj/+te/7Is3TpgwQfHx8Zo9e7Z+/PFHffvtt1q0aJFmzpzpUjwAAAAA8keiBIBblC5dWlu2bFG1atV0//33q169enryySd1/vx5e4XJs88+q8cff1wxMTFq3bq1AgICdN9991113Hnz5unBBx/UgAEDVLduXfXr10+ZmZmSpCpVqmjChAkaPXq0goOD7Z/qTpo0SePGjVN8fLzq1aunTp06ac2aNapRo4akS+uGfPTRR1q5cqUaN26shIQETZkyxaX77datm4YNG6ZBgwYpIiJCX3zxhcaNG5fnvFq1aun+++/X3XffrbvuukuNGjXS66+/bj/et29fLVy4UIsWLVLDhg3Vvn17LV682B4rAAAAgOtjMa60KiIAAAAAAICXoaIEAAAAAAAgF4kSAACAImzu3LkKDw+Xv7+/WrZsqa+++uqq53/wwQeqW7eu/P391bBhQ61du7aQIi2aXHm+CxYsUNu2bVW+fHmVL19eUVFR//j3Ade/hi9bunSpLBaLunfvXrABFgOuPuNTp05p4MCBqly5sqxWq2rXrs2/FVfh6vOdNWuW6tSpo1KlSiksLEzDhg3T+fPnCynaomXLli3q2rWrQkNDZbFYtHLlyn+8ZtOmTWratKmsVqtq1arl8tqCEokSAACAImvZsmUaPny44uLitHv3bjVu3FjR0dE6fvx4vud/8cUXeuSRR/Tkk0/qm2++Uffu3dW9e3d99913hRx50eDq8920aZMeeeQRff7559qxY4fCwsJ011136ejRo4UcedHh6jO+7MiRIxoxYoTatm1bSJEWXa4+4+zsbHXs2FFHjhzRhx9+qAMHDmjBggWqUqVKIUdeNLj6fN99912NHj1acXFx2r9/v958800tW7ZMzz//fCFHXjRkZmaqcePGmjt3rlPnHz58WF26dFFkZKSSkpI0dOhQ9e3bV5988olL78saJQAAAEVUy5Ytdeutt2rOnDmSJJvNprCwMD3zzDMaPXp0nvN79OihzMxMrV692t7XqlUrRUREKCEhodDiLipcfb5/l5OTo/Lly2vOnDnq1atXQYdbJF3LM87JyVG7du3Up08fbd26VadOnXLqU2Zv5eozTkhI0Msvv6wffvhBJUuWLOxwixxXn++gQYO0f/9+bdy40d737LPP6ssvv9S2bdsKLe6iyGKxaMWKFVetIhs1apTWrFnj8AHAww8/rFOnTmndunVOvxcVJQAAAEVQdna2du3apaioKHufj4+PoqKitGPHjnyv2bFjh8P5khQdHX3F873ZtTzfvzt79qwuXLigChUqFFSYRdq1PuOJEyeqUqVKevLJJwsjzCLtWp7xqlWr1Lp1aw0cOFDBwcFq0KCBpkyZopycnMIKu8i4lud72223adeuXfbpOYcOHdLatWt19913F0rMxZ1Z3+dKmBkUAAAACsfvv/+unJwcBQcHO/QHBwfrhx9+yPea1NTUfM9PTU0tsDiLqmt5vn83atQohYaG5vmhHZdcyzPetm2b3nzzTSUlJRVChEXftTzjQ4cO6bPPPlPPnj21du1aHTx4UAMGDNCFCxcUFxdXGGEXGdfyfB999FH9/vvvuv3222UYhi5evKinn36aqTcmudL3ufT0dJ07d06lSpVyahwqSgAAAACTvfTSS1q6dKlWrFghf39/d4dTLJw5c0aPP/64FixYoIoVK7o7nGLLZrOpUqVKeuONN9SsWTP16NFDY8eOZXqeSTZt2qQpU6bo9ddf1+7du7V8+XKtWbNGkyZNcndo+AsqSgAAAIqgihUrytfXV2lpaQ79aWlpCgkJyfeakJAQl873ZtfyfC+bPn26XnrpJX366adq1KhRQYZZpLn6jH/++WcdOXJEXbt2tffZbDZJUokSJXTgwAHddNNNBRt0EXMtX8eVK1dWyZIl5evra++rV6+eUlNTlZ2dLT8/vwKNuSi5luc7btw4Pf744+rbt68kqWHDhsrMzNRTTz2lsWPHyseHWobrcaXvc4GBgU5Xk0hUlAAAABRJfn5+atasmcOCgDabTRs3blTr1q3zvaZ169YO50vShg0brni+N7uW5ytJ06ZN06RJk7Ru3To1b968MEItslx9xnXr1tW3336rpKQke+vWrZt9d4uwsLDCDL9IuJav4zZt2ujgwYP2JJQk/fjjj6pcuTJJkr+5lud79uzZPMmQy0kp9lm5fqZ9nzMAAABQJC1dutSwWq3G4sWLjX379hlPPfWUUa5cOSM1NdUwDMN4/PHHjdGjR9vP3759u1GiRAlj+vTpxv79+424uDijZMmSxrfffuuuW/Borj7fl156yfDz8zM+/PBD49ixY/Z25swZd92Cx3P1Gf9dTEyMce+99xZStEWTq884OTnZCAgIMAYNGmQcOHDAWL16tVGpUiVj8uTJ7roFj+bq842LizMCAgKM9957zzh06JCxfv1646abbjL+9a9/uesWPNqZM2eMb775xvjmm28MScbMmTONb775xvjll18MwzCM0aNHG48//rj9/EOHDhmlS5c2Ro4caezfv9+YO3eu4evra6xbt86l92XqDQAAQBHVo0cPnThxQrGxsUpNTVVERITWrVtnX8guOTnZ4ZPL2267Te+++65eeOEFPf/887r55pu1cuVKNWjQwF234NFcfb7z5s1Tdna2HnzwQYdx4uLiNH78+MIMvchw9RnDda4+47CwMH3yyScaNmyYGjVqpCpVqmjIkCEaNWqUu27Bo7n6fF944QVZLBa98MILOnr0qG688UZ17dpVL774ortuwaMlJiYqMjLS/nr48OGSpJiYGC1evFjHjh1TcnKy/XiNGjW0Zs0aDRs2TK+++qqqVq2qhQsXKjo62qX3tRgG9T0AAAAAAAASa5QAAAAAAADYkSgBAAAAAADIRaIEAAAAAAAgF4kSAAAAAACAXCRKAAAAAAAAcpEoAQAAAAAAyEWiBAAAAAAAIBeJEgAAAAAAgFwkSgAAAAAAAHKRKAEAAAAAAMhFogQAAAAAACDX/wdnqHrqXgUqmQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.metrics import ConfusionMatrixDisplay\n", "\n", "_, ax = plt.subplots(ceil(len(models_classification) / 2), 2, figsize=(12, 10), sharex=False, sharey=False)\n", "\n", "for index, key in enumerate(models_classification.keys()):\n", " c_matrix = results[key][\"Confusion_matrix\"]\n", " disp = ConfusionMatrixDisplay(\n", " confusion_matrix=c_matrix, display_labels=[\"Sale\", \"Option Exercise\"]\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": [ "### Подбор гиперпараметров:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Лучшие параметры: {'model__criterion': 'gini', 'model__max_depth': 5, 'model__max_features': 'sqrt', 'model__n_estimators': 10}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\HomePC\\Desktop\\MII_Lab1\\.venv\\Lib\\site-packages\\numpy\\ma\\core.py:2881: RuntimeWarning: invalid value encountered in cast\n", " _data = np.array(data, dtype=dtype, copy=copy,\n" ] } ], "source": [ "# Создание конвейера\n", "pipeline = Pipeline([\n", " (\"processing\", pipeline_end),\n", " (\"model\", RandomForestClassifier(random_state=42))\n", "])\n", "\n", "# Установка параметров для поиска по сетке\n", "param_grid: dict[str, Any] = {\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", "# Подбор гиперпараметров с помощью поиска по сетке\n", "grid_search = GridSearchCV(estimator=pipeline, \n", " param_grid=param_grid,\n", " n_jobs=-1)\n", "\n", "# Обучение модели на тренировочных данных\n", "grid_search.fit(X_df_train, y_df_train)\n", "\n", "# Результаты подбора гиперпараметров\n", "print(\"Лучшие параметры:\", grid_search.best_params_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Сравнение наборов гиперпараметров:\n", "\n", "Результаты анализа показывают, что как стоковая модель, так и оптимизированная модель демонстрируют идентичные показатели качества, включая абсолютные значения всех ключевых метрик (Precision, Recall, Accuracy, F1-Score и другие), равные 1.0 на обеих выборках (обучающей и тестовой). Это указывает на то, что обе модели идеально справляются с задачей классификации." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Стоковая модель:\n", "\tPrecision_train: 1.0\n", "\tPrecision_test: 1.0\n", "\tRecall_train: 1.0\n", "\tRecall_test: 1.0\n", "\tAccuracy_train: 1.0\n", "\tAccuracy_test: 1.0\n", "\tF1_train: 1.0\n", "\tF1_test: 1.0\n", "\tROC_AUC_test: 1.0\n", "\tCohen_kappa_test: 1.0\n", "\tMCC_test: 1.0\n", "\tConfusion_matrix: [[13 0]\n", " [ 0 19]]\n", "\n", "Оптимизированная модель:\n", "\tPrecision_train: 1.0\n", "\tPrecision_test: 1.0\n", "\tRecall_train: 1.0\n", "\tRecall_test: 1.0\n", "\tAccuracy_train: 1.0\n", "\tAccuracy_test: 1.0\n", "\tF1_train: 1.0\n", "\tF1_test: 1.0\n", "\tROC_AUC_test: 1.0\n", "\tCohen_kappa_test: 1.0\n", "\tMCC_test: 1.0\n", "\tConfusion_matrix: [[13 0]\n", " [ 0 19]]\n" ] } ], "source": [ "# Обучение модели со старыми гипермараметрами\n", "pipeline.fit(X_df_train, y_df_train)\n", "\n", "# Предсказание для обучающей и тестовой выборки\n", "y_train_predict = pipeline.predict(X_df_train)\n", "y_test_predict = pipeline.predict(X_df_test)\n", " \n", "# Вычисление метрик для модели со старыми гипермараметрами\n", "base_model_metrics: dict[str, Any] = {\n", " \"Precision_train\": metrics.precision_score(y_df_train, y_train_predict),\n", " \"Precision_test\": metrics.precision_score(y_df_test, y_test_predict),\n", " \"Recall_train\": metrics.recall_score(y_df_train, y_train_predict),\n", " \"Recall_test\": metrics.recall_score(y_df_test, y_test_predict),\n", " \"Accuracy_train\": metrics.accuracy_score(y_df_train, y_train_predict),\n", " \"Accuracy_test\": metrics.accuracy_score(y_df_test, y_test_predict),\n", " \"F1_train\": metrics.f1_score(y_df_train, y_train_predict),\n", " \"F1_test\": metrics.f1_score(y_df_test, y_test_predict),\n", " \"ROC_AUC_test\": metrics.roc_auc_score(y_df_test, y_test_predict),\n", " \"Cohen_kappa_test\": metrics.cohen_kappa_score(y_df_test, y_test_predict),\n", " \"MCC_test\": metrics.matthews_corrcoef(y_df_test, y_test_predict),\n", " \"Confusion_matrix\": metrics.confusion_matrix(y_df_test, y_test_predict),\n", "}\n", "\n", "# Модель с новыми гипермараметрами\n", "optimized_model = RandomForestClassifier(\n", " random_state=42,\n", " criterion=\"gini\",\n", " max_depth=5,\n", " max_features=\"sqrt\",\n", " n_estimators=10,\n", ")\n", "\n", "# Создание конвейера для модели с новыми гипермараметрами\n", "optimized_model_pipeline = Pipeline(\n", " [\n", " (\"pipeline\", pipeline_end), \n", " (\"model\", optimized_model),\n", " ]\n", ")\n", " \n", "# Обучение модели с новыми гипермараметрами\n", "optimized_model_pipeline.fit(X_df_train, y_df_train)\n", " \n", "# Предсказание для обучающей и тестовой выборки\n", "y_train_predict = optimized_model_pipeline.predict(X_df_train)\n", "y_test_predict = optimized_model_pipeline.predict(X_df_test)\n", " \n", "# Вычисление метрик для модели с новыми гипермараметрами\n", "optimized_model_metrics: dict[str, Any] = {\n", " \"Precision_train\": metrics.precision_score(y_df_train, y_train_predict),\n", " \"Precision_test\": metrics.precision_score(y_df_test, y_test_predict),\n", " \"Recall_train\": metrics.recall_score(y_df_train, y_train_predict),\n", " \"Recall_test\": metrics.recall_score(y_df_test, y_test_predict),\n", " \"Accuracy_train\": metrics.accuracy_score(y_df_train, y_train_predict),\n", " \"Accuracy_test\": metrics.accuracy_score(y_df_test, y_test_predict),\n", " \"F1_train\": metrics.f1_score(y_df_train, y_train_predict),\n", " \"F1_test\": metrics.f1_score(y_df_test, y_test_predict),\n", " \"ROC_AUC_test\": metrics.roc_auc_score(y_df_test, y_test_predict),\n", " \"Cohen_kappa_test\": metrics.cohen_kappa_score(y_df_test, y_test_predict),\n", " \"MCC_test\": metrics.matthews_corrcoef(y_df_test, y_test_predict),\n", " \"Confusion_matrix\": metrics.confusion_matrix(y_df_test, y_test_predict),\n", "}\n", "\n", "# Вывод информации\n", "print('Стоковая модель:')\n", "for metric_name, value in base_model_metrics.items():\n", " print(f\"\\t{metric_name}: {value}\")\n", "\n", "print('\\nОптимизированная модель:')\n", "for metric_name, value in optimized_model_metrics.items():\n", " print(f\"\\t{metric_name}: {value}\")" ] } ], "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 }