From 6f14f39c657f8759c80ac67e3c8222f1a41df73a Mon Sep 17 00:00:00 2001 From: DyCTaTOR <125912249+DyCTaTOR@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:49:46 +0400 Subject: [PATCH] lab_4 done --- lab_4/lab4.ipynb | 2163 ++++++++++++++++++++++++++++++++++++++++ lab_4/requirements.txt | Bin 0 -> 1142 bytes 2 files changed, 2163 insertions(+) create mode 100644 lab_4/lab4.ipynb create mode 100644 lab_4/requirements.txt diff --git a/lab_4/lab4.ipynb b/lab_4/lab4.ipynb new file mode 100644 index 0000000..3df7e5a --- /dev/null +++ b/lab_4/lab4.ipynb @@ -0,0 +1,2163 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Бизнес-цели:\n", + "1. Для решения задачи регрессии: Предсказать будущую стоимость акций компании Tesla на основе инсайдерских транзакций. Стоимость акций (\"Cost\") зависит от множества факторов, включая объём и тип транзакций, совершаемых инсайдерами. Если выявить зависимости между параметрами транзакций (количество акций, общий объём сделки, должность инсайдера) и стоимостью акций, это может помочь инвесторам принимать обоснованные решения о покупке или продаже.\n", + "2. Для решения задачи классификации: Классифицировать тип инсайдерской транзакции (продажа акций или исполнение опционов) на основе характеристик сделки. Тип транзакции (\"Transaction\") может быть индикатором доверия инсайдера к текущей рыночной цене или будущей прибыльности компании. Модель, которая предсказывает тип транзакции, может помочь в оценке поведения инсайдеров и выявлении аномалий." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Выгрузка данных из файла в датафрейм" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from typing import Any, Tuple\n", + "from math import ceil\n", + "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "import pandas as pd\n", + "from pandas import DataFrame\n", + "import matplotlib.pyplot as plt\n", + "\n", + "df: DataFrame = pd.read_csv(\"static/csv/TSLA.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Преобразование данных" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "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": 2, + "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": [ + "## Задача регрессии:\n", + "\n", + "Основные метрики для регрессии:\n", + "* Средняя абсолютная ошибка (Mean Absolute Error, MAE) – показывает среднее абсолютное отклонение между предсказанными и фактическими значениями. Легко интерпретируется, особенно в финансовых данных, где каждая ошибка в долларах имеет значение.\n", + "* Среднеквадратичная ошибка (Mean Squared Error, MSE) – показывает, насколько отклоняются прогнозы модели от истинных значений в квадрате. Подходит для оценки общего качества модели.\n", + "* Коэффициент детерминации (R²) – указывает, какую долю дисперсии зависимой переменной объясняет модель. R² варьируется от 0 до 1 (чем ближе к 1, тем лучше)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В качестве базовой модели для оценки качества предсказаний выбрано использование среднего значения целевой переменной (Cost) на обучающей выборке. Это простой и интуитивно понятный метод, который служит минимальным ориентиром для сравнения с более сложными моделями. Базовая модель помогает установить начальный уровень ошибок (MAE, MSE) и показатель качества (R²), которые сложные модели должны улучшить, чтобы оправдать своё использование." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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", + "1. Случайный лес (Random Forest): Ансамблевая модель, которая использует множество решающих деревьев. Она хорошо справляется с нелинейными зависимостями и шумом в данных, а также обладает устойчивостью к переобучению.\n", + "2. Линейная регрессия (Linear Regression): Простая модель, предполагающая линейную зависимость между признаками и целевой переменной. Она быстро обучается и предоставляет легкую интерпретацию результатов.\n", + "3. Градиентный бустинг (Gradient Boosting): Мощная модель, создающая ансамбль деревьев, которые корректируют ошибки предыдущих. Эта модель эффективна для сложных наборов данных и обеспечивает высокую точность предсказаний." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Построение конвейера:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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", + ")\n", + "\n", + "# Применение конвейера\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": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "e:\\aim\\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", + "e:\\aim\\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", + "e:\\aim\\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", + "e:\\aim\\aimenv\\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", + "e:\\aim\\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", + "e:\\aim\\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", + "e:\\aim\\aimenv\\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", + "e:\\aim\\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", + "e:\\aim\\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", + "e:\\aim\\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", + "e:\\aim\\aimenv\\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", + "e:\\aim\\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", + "e:\\aim\\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" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Модель: Random Forest\n", + "\tmean_score: 0.9993408296679137\n", + "\tstd_dev: 0.0003334834737331458\n", + "\n", + "Модель: Linear Regression\n", + "\tmean_score: 1.0\n", + "\tstd_dev: 0.0\n", + "\n", + "Модель: Gradient Boosting\n", + "\tmean_score: 0.9997626429479803\n", + "\tstd_dev: 0.00014954088559894797\n", + "\n" + ] + } + ], + "source": [ + "# Обучить модели\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": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Модель: Random Forest\n", + "\tMAE_train: 1.723261290322547\n", + "\tMAE_test: 4.921812500000078\n", + "\tMSE_train: 7.688148654032178\n", + "\tMSE_test: 71.0254988287519\n", + "\tR2_train: 0.9999625112378799\n", + "\tR2_test: 0.9996002297168499\n", + "\tSTD_train: 2.7687940152490023\n", + "\tSTD_test: 8.368380620302354\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.15613772760447622\n", + "\tMAE_test: 3.1034303023675966\n", + "\tMSE_train: 0.07499640211231746\n", + "\tMSE_test: 45.07615310256558\n", + "\tR2_train: 0.9999996343043813\n", + "\tR2_test: 0.9997462868014123\n", + "\tSTD_train: 0.27385470985965804\n", + "\tSTD_test: 6.690171573523703\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": 7, + "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': 5, 'n_estimators': 100}\n", + "Лучший результат (MSE): 182.9564051380662\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": 8, + "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) на старых параметрах: 178.02867772065892\n", + "\n", + "Новые параметры: {'max_depth': 5, 'min_samples_split': 10, 'n_estimators': 50}\n", + "Лучший результат (MSE) на новых параметрах: 1271.4105559258353\n", + "Среднеквадратическая ошибка (MSE) на тестовых данных: 165.739398344422\n", + "Корень среднеквадратичной ошибки (RMSE) на тестовых данных: 12.873981448814583\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAHWCAYAAACBjZMqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hT1RvA8W+SZrRp0r0XZQqCIkMERUQRxC1uUcEBuLfiAhFUVBwoP/fCLQqKeyCKOBCQpbJXKd0r6R4Z9/fHbSulg7akTdq+n+fpA8k99+ZtmnHfe855j0ZRFAUhhBBCCCGEEB6l9XYAQgghhBBCCNEZSbIlhBBCCCGEEG1Aki0hhBBCCCGEaAOSbAkhhBBCCCFEG5BkSwghhBBCCCHagCRbQgghhBBCCNEGJNkSQgghhBBCiDYgyZYQQgghhBBCtAFJtoQQQgghhBCiDUiyJYQQQggh2txXX33Fxo0ba28vXbqUzZs3ey8gIdqBJFtCdAG7d+9m2rRpdO/eHZPJhNVq5fjjj+e5556jvLzc2+EJIYToAv755x9uvfVWdu7cyZ9//sl1111HcXGxt8MSok1pFEVRvB2EEKLtfP3111x44YUYjUauvPJK+vfvT1VVFb/99htLlixh8uTJvPrqq94OUwghRCeXm5vLiBEj2LVrFwATJkxgyZIlXo5KiLYlyZYQndjevXs56qijiI+P56effiImJqbO9l27dvH1119z6623eilCIYQQXUllZSX//vsvAQEB9O3b19vhCNHmZBihEJ3Yk08+SUlJCW+88Ua9RAugZ8+edRItjUbDTTfdxPvvv0+fPn0wmUwMHjyYlStX1tlv37593HDDDfTp0wd/f3/CwsK48MILSUlJqdNu4cKFaDSa2p+AgAAGDBjA66+/Xqfd5MmTCQwMrBff4sWL0Wg0rFixos79q1ev5rTTTiMoKIiAgABGjRrF77//XqfNrFmz0Gg05OXl1bn/r7/+QqPRsHDhwjqP361btzrt9u/fj7+/PxqNpt7v9e233zJy5EjMZjMWi4UzzjijWfMOap6PlStXMm3aNMLCwrBarVx55ZXYbLZ67ZvzOH///TeTJ0+uHSIaHR3N1VdfTX5+foMxdOvWrc7fpObnwOe4W7dunHnmmU3+LikpKWg0Gp566ql62/r3789JJ51Ue3vFihVoNBoWL17c6PEO/hs89NBDaLVali9fXqfd1KlTMRgMbNq0qcn4NBoNs2bNqnPfvHnz0Gg0dWJrav/Gfg6M88Dn4dlnnyUpKQl/f39GjRrFv//+W++427Zt44ILLiA0NBSTycSQIUP44osvGoxh8uTJDT7+5MmT67X99ttvGTVqFBaLBavVytChQ/nggw9qt5900kn1fu9HH30UrVZbp92vv/7KhRdeSGJiIkajkYSEBG6//fZ6w41nzZpFv379CAwMxGq1ctxxx7F06dI6bZp7rJa8/0866ST69+9fr+1TTz1V7716qNdxzeuy5vhbt27F39+fK6+8sk673377DZ1Ox/Tp0xs9FjTvOWlJ/J9//jlnnHEGsbGxGI1GevTowZw5c3C5XHX2bei1XvNZ05rPrpb+PQ5+Xa1du7b2tdpQnEajkcGDB9O3b98WvSeF6Kj8vB2AEKLtfPnll3Tv3p0RI0Y0e59ffvmFRYsWccstt2A0GnnxxRc57bTTWLNmTe1Jwtq1a/njjz+45JJLiI+PJyUlhZdeeomTTjqJLVu2EBAQUOeYzz77LOHh4RQVFfHmm28yZcoUunXrxpgxY1r8O/3000+MHz+ewYMH156Qv/XWW5x88sn8+uuvHHvssS0+ZkNmzpxJRUVFvfvfffddJk2axLhx43jiiScoKyvjpZde4oQTTmDDhg31kraG3HTTTQQHBzNr1iy2b9/OSy+9xL59+2pP/lryOMuWLWPPnj1cddVVREdHs3nzZl599VU2b97Mn3/+We+EB2DkyJFMnToVUE8wH3vssdY/UW3kwQcf5Msvv+Saa67hn3/+wWKx8P333/Paa68xZ84cjj766BYdz263M3fu3Bbtc+qpp9Y78X766acbTIzfeecdiouLufHGG6moqOC5557j5JNP5p9//iEqKgqAzZs3c/zxxxMXF8e9996L2Wzm448/5txzz2XJkiWcd9559Y5rNBrrXJy49tpr67VZuHAhV199NUceeST33XcfwcHBbNiwge+++47LLruswd/trbfe4sEHH+Tpp5+u0+aTTz6hrKyM66+/nrCwMNasWcOCBQtIS0vjk08+qW1XWlrKeeedR7du3SgvL2fhwoWcf/75rFq1qvY92Nxj+Yq+ffsyZ84c7r77bi644ALOPvtsSktLmTx5MkcccQSzZ89ucv/mPCctsXDhQgIDA7njjjsIDAzk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ZrOZa6+9luzs7Hrbd+/ezXPPPVfnvoOTjf379/P5558zduxYdDodoH4RKwct0bdgwYJG5+ocrLy8nMrKypb+OgwePJgePXrw1FNP1RsmA+oJamu5XC7uv/9+LrvsskZ7zcaNG4fVauWxxx7D4XC0+vFfffXVOvu/9NJLOJ3O2uFHzX2cmr/HwX+L+fPnN/i4H330EQaDgRNOOKFZcR6o5sp4zWN6gtvtRqvVNjicDeCZZ57hjz/+4NVXX2XOnDmMGDGC66+/vl45/8asWrWKzz//nMcff7zRx/CUpUuX1plztWbNGlavXl37N42MjOSkk07ilVdeITMzs97+B792aqr1nXPOOU0+7tixY7FYLMydO7de9cyDXxe9e/euHbK5YMEC3G53naUfGno9KYpS7zOiIRUVFZSWlta+rw/nWG3pUK/jvXv3cvfdd3P++edz//3389RTT/HFF1/wzjvvtPixDn5OWqKh56+qqooXX3yxwfZ6vZ5BgwYxZswYxowZU2+4rac+uxpSXFzMo48+yu23337IHsD2fE8K4SukZ0uITqxHjx588MEHXHzxxfTt25crr7yS/v37U1VVxR9//MEnn3xSb82e/v37M27cuDql3wEefvjh2jZnnnkm7777LkFBQfTr149Vq1bx448/EhYW1mAcS5cuJTw8vHYY4a+//sptt93W4t9Hq9Xy+uuvM378eI488kiuuuoq4uLiSE9P5+eff8ZqtdYb+tJcaWlpGAyGJoe0Wa1WXnrpJa644goGDRrEJZdcQkREBKmpqXz99dccf/zx/O9//zvkY1VVVXHKKadw0UUXsX37dl588UVOOOEEzj777BY9jtVq5cQTT+TJJ5/E4XAQFxfHDz/8UO/q986dO3nooYf48MMPuffee5s1tyw3N5fvvvsOgMzMTJ544gmCgoLq9Mi11MaNGwkMDMTpdLJu3TreeecdzjnnnAZPfLdu3cqMGTOYPHkyZ511FqCWwh44cCA33HBD7Vyopvzwww+ceuqph9UL2Vw9e/bkhBNO4Prrr6eyspL58+cTFhbGPffcU9vmhRde4IQTTmDAgAFMmTKF7t27k52dzapVq0hLS6tdO+yFF17gwQcfJCIigt27d9fOywJwOp3s2bOHZcuWceqpp2K1Wnn22We59tprGTp0KJdddhkhISFs2rSJsrIy3n777QbjjY6O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+oijp04tUCiNAwGIMoRitQZvJetowGw2s3JnCou+jkSIndH+Dp1EqY8S/1W4qSyu8vn41r8fJf+FEl647B8GDOhaPVhaWiJ5FV8BILP6MZrqsqKRid9nVWiKz4aNiYmhyGwCoL5iv8/G9SUGQ8uPpCQT994TRqihCnnDHfTZZ8V/H3lE3OaRRw49P+20puOmph4aq39/I0NGRzN4lH+vyfX1Vh599r+88cLDrFmzBrPZzEUXXeR9f9WqVVx22WXccsst7Nixg9dff50lS5bw6KOPNhtryJAh3ijaBRdc0OS9zZs3c9JJJzF48GDWrl3L6tWrOfPMM3G7m084P/30U2677TaWL1/O6NGjAXGBNSkpic8++4wdO3bw4IMPcu+99/Lpp5969zv11FP55ptv2LdvH2+99RZvvPEG77//fof2V2sU2JxaXG41DkfgVu3379/P9OnTmTVrFv/88w+ffPIJq1evZu7cua3uM378eD777DP27t3L559/zi+//MLTTz/dqePK5XJefPFFtm/fzjvvvMP//vc/7rrrrg7v73Q6mTZtGkajkVWrVrFmzRoMBgPTp0/H4eh6u4KXX3652bxt165dXH311Vx55ZXs27ePoqIiJk2a1OY4q1atIisrC+Nh6eQWi4UTTjiBgoICli9fzpYtW7jrrrvweDxceOGF3u/u888/T1JSkvf5hg0bvPuffvrp/PLLL/z9999Mnz6dM888k4MHDyIIIAhi/dXixS8wYsQI/v77b+6++25uueUWVqxY0cxGmdC+aNb5559PaWkp33//PRs3bmT06NGcdNJJVFa2HfX/+eefm0S1k5KSmrwvV8h5YsGd/PLdJyxZsqTFz7++vp5HH32Ud999lzVr1lBdXc01N90hvulxtnk+DicxMZE33njD+3zZsmXNomnt/Q6WLl3q/VsmTZrEHXfc4X1+52GrVk899VSHzn1HGT9+PKtWrery/h2hS1V7JpOJoqKiJmIVAH///bdPi8mPOeYYdu/e3eS1PXv20K9fP0AUy4iLi+OXX37xrprU1NSwbt06rr/+egAmTZqE2Wxm48aNjBkzBoD//e9/eDweJkyY4DNbewOxoeIPNzLJd5MmCRGZXoxsxZvc5OUVkZWVHmSL+i5VVVX8b/vP/G97JsfdCMf6Wl1XoWb+V/dTVJFIbYTvI1vWyn3ogRpnCBpN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mTOn2ecnk8n48ssvvc/z8vK44IILMJlMREREcPbZZzf5u1oao73z2Zj6d/j5BHj77bcZMGAAarXa+/06/PtyJBs3bmT//v3MmDHD+1pHz83Bgwc5++yzMRgMhIaGcsEFF1BSckjR9fDvulqtIXnEOSx47hOUKm2Lf+PhHP75a5QyIkPgr/XrO/X5t/RbOzJqXVFRwcUXX0xiYiJ6vZ5hw4bx0UcfITTcB5xuOSeffDJz585l7ty5hIWFERUVxQMPPOAVtgN47733GDt2LEajkbi4OP71r39RWVmJs0HB9Mcfxe/+8OHDm9j41VdfIZPJmDJlivc1j8fDokWLvL/BESNG8Pnnnzf5bFp75OTkeH9n3377LcOHD0er1TJx4kS2bdvmPUZnf3tnnnkmf/31F/v372/1fPubLjlb06ZNY+ZMUaErIyODXbt2UV5eTmlpKSee6Jv+MRK+I0JvBkBpiA2uIUcBoTEDAIgLo8mFW8I3VJsrCGtUsFb7N7IVGi22gow21lFRUdHt8UalfUaUMYyTTnqn22MdjqBWYXNokMsEsPqo5YCrFpVMvGFrTF1pidkxDAYDRdUmAMrzgncjbJFPDU0eWZvTGL3PwLAdkbBqVtfH/Sq12dip6+OIMpYRrvf96neiqQi7vY7XX3uSd999lzVr1mA2m7nooou826xatYrLLruMW265hR07dvD666+zZMkSHn300WbjDRkyxBtFu+CCC5q8t3nzZk466SQGDx7M2rVrWb16NWeeeWaLCsWffvopt912G8uXL2f0aFH1zOPxkJSUxGeffcaOHTt48MEHuffee/n000+9+5166ql888037Nu3j7feeos33niD999/v8P7g6isVlAZz57iTOrs/leI279/P9OnT2fWrFn8888/fPLJJ6xevZq5c1uX4Bw/fjyfffYZe/fu5fPPP+eXX37h6aef7tRx5XI5L774Itu3b+edd97hf//7H3fddVeH93c6nUybNg2j0ciqVatYs2YNBoOB6dOnd2sB6uWXX252f9y1axdXX301V155Jfv27aOoqIhJkya1Oc6qVavIysrylrV0FI/Hw9lnn01lZSW//fYbK1as4MCBA1x44YVNtmv8rq9fv5PzL7iDhx59ml27dnXqWC5Bx/7sfGbOvqFTn//hx28tam2z2RgzZgzffvst27Zt45prruHSSy9l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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": [ + "## Задача классификации:\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 (матрица ошибок) – матрица ошибок отражает распределение предсказаний модели по каждому из классов." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Разбиение данных" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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 интуитивно понятен и не требует обучения, но может быть медленным на больших данных и чувствительным к выбору параметров." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Конвейеры для обработки числовых и категориальных значений, а так же основной конвейер уже были построены ранее при решении задачи регрессии." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "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": 10, + "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", + "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", + " - Вывод: Метод ближайших соседей показывает хорошие результаты, с небольшим снижением полноты на тестовой выборке. Это связано с особенностями алгоритма, который может быть чувствителен к выбросам и распределению данных." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "e:\\aim\\aimenv\\Lib\\site-packages\\joblib\\externals\\loky\\backend\\context.py:136: UserWarning: Could not find the number of physical cores for the following reason:\n", + "[WinError 2] Не удается найти указанный файл\n", + "Returning the number of logical cores instead. You can silence this warning by setting LOKY_MAX_CPU_COUNT to the number of cores you want to use.\n", + " warnings.warn(\n", + " File \"e:\\aim\\aimenv\\Lib\\site-packages\\joblib\\externals\\loky\\backend\\context.py\", line 257, in _count_physical_cores\n", + " cpu_info = subprocess.run(\n", + " ^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Владимир\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py\", line 548, in run\n", + " with Popen(*popenargs, **kwargs) as process:\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"C:\\Users\\Владимир\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py\", line 1026, in __init__\n", + " self._execute_child(args, executable, preexec_fn, close_fds,\n", + " File \"C:\\Users\\Владимир\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\subprocess.py\", line 1538, in _execute_child\n", + " hp, ht, pid, tid = _winapi.CreateProcess(executable, args,\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": 12, + "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": 13, + "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": [ + "e:\\aim\\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" + ] + } + ], + "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": 14, + "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 +} diff --git a/lab_4/requirements.txt b/lab_4/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd071859c9791d1ef0349da20cde9eebe3c88791 GIT binary patch literal 1142 zcmZXT>rTQ@5QO))iI0Mz<)Z%Z9ee}AO+ca4a+J%%tKaN$S`yP7gWcKLnc36dpQ#-z z@$BuxmR9lK3r}eeHslm`Z+AAQy5%%BwH-%@{uME95j$$RqW;n=3s`6NWh<-g?Dc}$ z6KB-c#V>BDXdE-5E?mrC+6k69EXg)#TscNFgy}oa#`)!;0kK4{w2Y~j_RQay7N}%v zCRL7*lF}Yqo_Bf|Ovz3P?+zXBD3FWfQzj_df>dg$<%)?)?LS)XmX4G^&5VqcX@Xf9 zC+D15&z*{2ZaOvU6T9AOb3J+wXsS@Np@lkIjd zL`5Q+BJS91R<3G8CFbf*D9@oQlppzequQWAsR}C=@eerRzvlhkH71+TvFF*MYQt}# zg^c?a-fLLmE_7Q~J^a?xl=Fo1je@|aF6{%?_DW(aCdTeMXNBv}Jlb^Jl%6M`z2D9i zpYE2pYcy*gx4jovU-GVW$Jy=Kj-K{__u;S4zO+@{t_!+8ubpw5va