1432 lines
182 KiB
Plaintext
1432 lines
182 KiB
Plaintext
{
|
||
"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"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Выгрузка данных из файла в DataFrame:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 316,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from typing import Any, Tuple\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('..//static//csv//TSLA.csv')"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Краткая информация о DataFrame:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 317,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"<class 'pandas.core.frame.DataFrame'>\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": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>count</th>\n",
|
||
" <th>mean</th>\n",
|
||
" <th>std</th>\n",
|
||
" <th>min</th>\n",
|
||
" <th>25%</th>\n",
|
||
" <th>50%</th>\n",
|
||
" <th>75%</th>\n",
|
||
" <th>max</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>Cost</th>\n",
|
||
" <td>156.0</td>\n",
|
||
" <td>478.785641</td>\n",
|
||
" <td>448.922903</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>50.5225</td>\n",
|
||
" <td>240.225</td>\n",
|
||
" <td>934.1075</td>\n",
|
||
" <td>1171.04</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"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": 317,
|
||
"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": 318,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Выборка данных:\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Insider Trading</th>\n",
|
||
" <th>Relationship</th>\n",
|
||
" <th>Transaction</th>\n",
|
||
" <th>Cost</th>\n",
|
||
" <th>Shares</th>\n",
|
||
" <th>Value ($)</th>\n",
|
||
" <th>Shares Total</th>\n",
|
||
" <th>Year</th>\n",
|
||
" <th>Month</th>\n",
|
||
" <th>Day</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>Kirkhorn Zachary</td>\n",
|
||
" <td>Chief Financial Officer</td>\n",
|
||
" <td>Sale</td>\n",
|
||
" <td>196.72</td>\n",
|
||
" <td>10455</td>\n",
|
||
" <td>2056775</td>\n",
|
||
" <td>203073</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>6</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Taneja Vaibhav</td>\n",
|
||
" <td>Chief Accounting Officer</td>\n",
|
||
" <td>Sale</td>\n",
|
||
" <td>195.79</td>\n",
|
||
" <td>2466</td>\n",
|
||
" <td>482718</td>\n",
|
||
" <td>100458</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>6</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>Baglino Andrew D</td>\n",
|
||
" <td>SVP Powertrain and Energy Eng.</td>\n",
|
||
" <td>Sale</td>\n",
|
||
" <td>195.79</td>\n",
|
||
" <td>1298</td>\n",
|
||
" <td>254232</td>\n",
|
||
" <td>65547</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>6</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>Taneja Vaibhav</td>\n",
|
||
" <td>Chief Accounting Officer</td>\n",
|
||
" <td>Option Exercise</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>7138</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>102923</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>5</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>Baglino Andrew D</td>\n",
|
||
" <td>SVP Powertrain and Energy Eng.</td>\n",
|
||
" <td>Option Exercise</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>2586</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>66845</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>5</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>Kirkhorn Zachary</td>\n",
|
||
" <td>Chief Financial Officer</td>\n",
|
||
" <td>Option Exercise</td>\n",
|
||
" <td>0.00</td>\n",
|
||
" <td>16867</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>213528</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>5</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>Baglino Andrew D</td>\n",
|
||
" <td>SVP Powertrain and Energy Eng.</td>\n",
|
||
" <td>Option Exercise</td>\n",
|
||
" <td>20.91</td>\n",
|
||
" <td>10500</td>\n",
|
||
" <td>219555</td>\n",
|
||
" <td>74759</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>27</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>Baglino Andrew D</td>\n",
|
||
" <td>SVP Powertrain and Energy Eng.</td>\n",
|
||
" <td>Sale</td>\n",
|
||
" <td>202.00</td>\n",
|
||
" <td>10500</td>\n",
|
||
" <td>2121000</td>\n",
|
||
" <td>64259</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>27</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>Kirkhorn Zachary</td>\n",
|
||
" <td>Chief Financial Officer</td>\n",
|
||
" <td>Sale</td>\n",
|
||
" <td>193.00</td>\n",
|
||
" <td>3750</td>\n",
|
||
" <td>723750</td>\n",
|
||
" <td>196661</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>6</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>Baglino Andrew D</td>\n",
|
||
" <td>SVP Powertrain and Energy Eng.</td>\n",
|
||
" <td>Option Exercise</td>\n",
|
||
" <td>20.91</td>\n",
|
||
" <td>10500</td>\n",
|
||
" <td>219555</td>\n",
|
||
" <td>74759</td>\n",
|
||
" <td>2022</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>27</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"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": 318,
|
||
"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": 319,
|
||
"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": 320,
|
||
"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": 321,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>Cost</th>\n",
|
||
" <th>Shares</th>\n",
|
||
" <th>Value ($)</th>\n",
|
||
" <th>Shares Total</th>\n",
|
||
" <th>Year</th>\n",
|
||
" <th>Month</th>\n",
|
||
" <th>Day</th>\n",
|
||
" <th>Insider Trading_DENHOLM ROBYN M</th>\n",
|
||
" <th>Insider Trading_Kirkhorn Zachary</th>\n",
|
||
" <th>Insider Trading_Musk Elon</th>\n",
|
||
" <th>Insider Trading_Musk Kimbal</th>\n",
|
||
" <th>Insider Trading_Taneja Vaibhav</th>\n",
|
||
" <th>Insider Trading_Wilson-Thompson Kathleen</th>\n",
|
||
" <th>Relationship_Chief Accounting Officer</th>\n",
|
||
" <th>Relationship_Chief Financial Officer</th>\n",
|
||
" <th>Relationship_Director</th>\n",
|
||
" <th>Relationship_SVP Powertrain and Energy Eng.</th>\n",
|
||
" <th>Transaction_Sale</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>-0.966516</td>\n",
|
||
" <td>-0.361759</td>\n",
|
||
" <td>-0.450022</td>\n",
|
||
" <td>-0.343599</td>\n",
|
||
" <td>0.715678</td>\n",
|
||
" <td>-0.506108</td>\n",
|
||
" <td>-0.400623</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>-1.074894</td>\n",
|
||
" <td>1.225216</td>\n",
|
||
" <td>-0.414725</td>\n",
|
||
" <td>-0.319938</td>\n",
|
||
" <td>-1.397276</td>\n",
|
||
" <td>0.801338</td>\n",
|
||
" <td>0.906673</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>-1.074894</td>\n",
|
||
" <td>1.211753</td>\n",
|
||
" <td>-0.415027</td>\n",
|
||
" <td>-0.320141</td>\n",
|
||
" <td>-1.397276</td>\n",
|
||
" <td>1.062828</td>\n",
|
||
" <td>-0.098939</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>1.167142</td>\n",
|
||
" <td>0.037499</td>\n",
|
||
" <td>1.023612</td>\n",
|
||
" <td>-0.325853</td>\n",
|
||
" <td>-1.397276</td>\n",
|
||
" <td>1.062828</td>\n",
|
||
" <td>-0.501184</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>1.217886</td>\n",
|
||
" <td>-0.075287</td>\n",
|
||
" <td>0.632973</td>\n",
|
||
" <td>-0.330205</td>\n",
|
||
" <td>-1.397276</td>\n",
|
||
" <td>1.062828</td>\n",
|
||
" <td>-0.501184</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>0.505872</td>\n",
|
||
" <td>-0.361021</td>\n",
|
||
" <td>-0.443679</td>\n",
|
||
" <td>-0.343698</td>\n",
|
||
" <td>0.715678</td>\n",
|
||
" <td>-0.767598</td>\n",
|
||
" <td>1.308918</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>-1.088674</td>\n",
|
||
" <td>-0.357532</td>\n",
|
||
" <td>-0.450389</td>\n",
|
||
" <td>-0.342863</td>\n",
|
||
" <td>0.715678</td>\n",
|
||
" <td>0.278360</td>\n",
|
||
" <td>-0.903429</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>-0.692146</td>\n",
|
||
" <td>-0.355855</td>\n",
|
||
" <td>-0.445383</td>\n",
|
||
" <td>-0.343220</td>\n",
|
||
" <td>0.715678</td>\n",
|
||
" <td>0.801338</td>\n",
|
||
" <td>1.409480</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>-1.088674</td>\n",
|
||
" <td>-0.361181</td>\n",
|
||
" <td>-0.450389</td>\n",
|
||
" <td>-0.343649</td>\n",
|
||
" <td>-1.397276</td>\n",
|
||
" <td>1.062828</td>\n",
|
||
" <td>-0.903429</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>1.091997</td>\n",
|
||
" <td>-0.204531</td>\n",
|
||
" <td>0.114712</td>\n",
|
||
" <td>1.538166</td>\n",
|
||
" <td>0.715678</td>\n",
|
||
" <td>-1.029087</td>\n",
|
||
" <td>1.208357</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>0.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"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": 321,
|
||
"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": 322,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
" Mean Score = 0.9992841344976828\n",
|
||
" Standard Deviation = 0.0004515288830049682\n",
|
||
"Linear Regression:\n",
|
||
" Mean Score = 1.0\n",
|
||
" Standard Deviation = 0.0\n",
|
||
"Gradient Boosting:\n",
|
||
" Mean Score = 0.9997688048426001\n",
|
||
" Standard Deviation = 0.0001416815109781245\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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",
|
||
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\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"
|
||
]
|
||
}
|
||
],
|
||
"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, Any]:\n",
|
||
" results: dict[str, Any] = {}\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",
|
||
" results[model_name] = {\n",
|
||
" \"mean_score\": scores.mean(),\n",
|
||
" \"std_dev\": scores.std()\n",
|
||
" }\n",
|
||
" \n",
|
||
" return results\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, scores in results.items():\n",
|
||
" print(f\"\"\"{model_name}:\n",
|
||
" Mean Score = {scores['mean_score']}\n",
|
||
" Standard Deviation = {scores['std_dev']}\"\"\")"
|
||
]
|
||
},
|
||
{
|
||
"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",
|
||
" - R2 (обучение): 0.9999\n",
|
||
" - R2 (тест): 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",
|
||
" - R2 (обучение): 1.0\n",
|
||
" - R2 (тест): 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",
|
||
" - R2 (обучение): 0.9999996\n",
|
||
" - R2 (тест): 0.9998\n",
|
||
" - STD (обучение): 0.274\n",
|
||
" - STD (тест): 6.399\n",
|
||
" - Вывод: Градиентный бустинг демонстрирует отличные результаты на обучающей выборке, однако MAE и MSE на тестовой выборке довольно высокие, что может указывать на определенное переобучение или необходимость улучшения настройки модели."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 323,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Модель: Random Forest\n",
|
||
"\tMAE_train: 1.8584435483870716\n",
|
||
"\tMAE_test: 4.489381249999976\n",
|
||
"\tMSE_train: 10.958770153225622\n",
|
||
"\tMSE_test: 62.643889510626195\n",
|
||
"\tR2_train: 0.9999465631134502\n",
|
||
"\tR2_test: 0.9996474059899577\n",
|
||
"\tSTD_train: 3.3095436106742198\n",
|
||
"\tSTD_test: 7.757028236410516\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.15613772760448064\n",
|
||
"\tMAE_test: 3.027282706028462\n",
|
||
"\tMSE_train: 0.07499640211231481\n",
|
||
"\tMSE_test: 41.36034726227861\n",
|
||
"\tR2_train: 0.9999996343043813\n",
|
||
"\tR2_test: 0.9997672013852927\n",
|
||
"\tSTD_train: 0.2738547098596532\n",
|
||
"\tSTD_test: 6.3988297145358555\n",
|
||
"\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"from sklearn import metrics\n",
|
||
"\n",
|
||
"\n",
|
||
"# Оценка качества различных моделей на основе метрик\n",
|
||
"def evaluate_models(models, \n",
|
||
" pipeline_end, \n",
|
||
" X_train, y_train, \n",
|
||
" X_test, 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",
|
||
"result: 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 result.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": 324,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Fitting 3 folds for each of 36 candidates, totalling 108 fits\n",
|
||
"Лучшие параметры: {'max_depth': 20, 'min_samples_split': 2, 'n_estimators': 100}\n",
|
||
"Лучший результат (MSE): 188.5929593664171\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": 325,
|
||
"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': 50}\n",
|
||
"Лучший результат (MSE) на старых параметрах: 179.369172166932\n",
|
||
"\n",
|
||
"Новые параметры: {'max_depth': 5, 'min_samples_split': 10, 'n_estimators': 50}\n",
|
||
"Лучший результат (MSE) на новых параметрах: 1290.6561132979532\n",
|
||
"Среднеквадратическая ошибка (MSE) на тестовых данных: 172.57398236522087\n",
|
||
"Корень среднеквадратичной ошибки (RMSE) на тестовых данных: 13.136741695154885\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAHWCAYAAACBjZMqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hU1dbA4d/UTMqkdxKSEHqTIiJNUVEEC4gd/AT79aoXOyqCKCoKWBD71Sv2hoi9IIigIiBNpJdACKRnJn2SKef745CRIYUkJJlJst7nyaMzZ58zaypnnb332hpFURSEEEIIIYQQQjQprbcDEEIIIYQQQoi2SJItIYQQQgghhGgGkmwJIYQQQgghRDOQZEsIIYQQQgghmoEkW0IIIYQQQgjRDCTZEkIIIYQQQohmIMmWEEIIIYQQQjQDSbaEEEIIIYQQohlIsiWEEEIIIYQQzUCSLSGEEEII0ey+/vprNm/e7L69dOlStm3b5r2AhGgBkmwJ0Q7s27ePW265hU6dOmEymQgODmbYsGEsWLCA8vJyb4cnhBCiHdi6dStTp05lz549/PHHH/zrX/+iuLjY22EJ0aw0iqIo3g5CCNF8vvnmGy6//HL8/Py49tpr6d27N5WVlfz666989tlnTJkyhddff93bYQohhGjjcnNzGTp0KHv37gVgwoQJfPbZZ16OSojmJcmWEG1YWloaffv2JSEhgRUrVhAXF+exfe/evXzzzTdMnTrVSxEKIYRoTyoqKvj7778JCAigR48e3g5HiGYnwwiFaMPmzp1LSUkJb775ZrVEC6Bz584eiZZGo+H222/n/fffp1u3bphMJgYOHMiqVas89jt48CD//ve/6datG/7+/kRERHD55Zdz4MABj3aLFi1Co9G4/wICAujTpw9vvPGGR7spU6YQFBRULb7Fixej0WhYuXKlx/1r167l/PPPJyQkhICAAM4880x+++03jzazZs1Co9GQl5fncf+ff/6JRqNh0aJFHo+fnJzs0e7QoUP4+/uj0WiqPa/vvvuOESNGEBgYiNls5oILLqjXvIOq12PVqlXccsstREREEBwczLXXXovFYqnWvj6P89dffzFlyhT3ENHY2Fiuv/568vPza4whOTnZ4z2p+jv2NU5OTubCCy+s87kcOHAAjUbD/Pnzq23r3bs3I0eOdN9euXIlGo2GxYsX13q849+DRx55BK1Wy/Llyz3a3XzzzRiNRrZs2VJnfBqNhlmzZnncN2/ePDQajUdsde1f29+xcR77Ojz33HMkJSXh7+/PmWeeyd9//13tuDt37uSyyy4jPDwck8nEqaeeypdfflljDFOmTKnx8adMmVKt7XfffceZZ56J2WwmODiYQYMG8cEHH7i3jxw5strzfuKJJ9BqtR7tVq9ezeWXX07Hjh3x8/MjMTGRu+66q9pw41mzZtGzZ0+CgoIIDg7m9NNPZ+nSpR5t6nushnz/R44cSe/evau1nT9/frXv6ok+x1Wfy6rj79ixA39/f6699lqPdr/++is6nY5p06bVeiyo32vSkPi/+OILLrjgAuLj4/Hz8yM1NZXZs2fjdDo99q3ps171W9OY366Gvh/Hf67Wr1/v/qzWFKefnx8DBw6kR48eDfpOCtFa6b0dgBCi+Xz11Vd06tSJoUOH1nufX375hY8//pj//Oc/+Pn58fLLL3P++eezbt0690nC+vXr+f3337nqqqtISEjgwIEDvPLKK4wcOZLt27cTEBDgccznnnuOyMhIioqK+N///sdNN91EcnIyo0aNavBzWrFiBWPGjGHgwIHuE/K33nqLs88+m9WrV3Paaac1+Jg1mTlzJjabrdr97777LpMnT2b06NE8/fTTlJWV8corrzB8+HA2bdpULWmrye23305oaCizZs1i165dvPLKKxw8eNB98teQx1m2bBn79+/nuuuuIzY2lm3btvH666+zbds2/vjjj2onPAAjRozg5ptvBtQTzCeffLLxL1Qzefjhh/nqq6+44YYb2Lp1K2azmR9++IH//ve/zJ49m1NOOaVBx7NarcyZM6dB+5x77rnVTryfeeaZGhPjd955h+LiYm677TZsNhsLFizg7LPPZuvWrcTExACwbds2hg0bRocOHXjggQcIDAzkk08+Yfz48Xz22Wdccskl1Y7r5+fncXHixhtvrNZm0aJFXH/99fTq1YsHH3yQ0NBQNm3axPfff8/EiRNrfG5vvfUWDz/8MM8884xHm08//ZSysjJuvfVWIiIiWLduHQsXLiQjI4NPP/3U3a60tJRLLrmE5ORkysvLWbRoEZdeeilr1qxxfwfreyxf0aNHD2bPns19993HZZddxsUXX0xpaSlTpkyhe/fuPPbYY3XuX5/XpCEWLVpEUFAQd999N0FBQaxY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dyc1NZV7772Xw4cPExwczGeffVbjfKsxY8YwZswY4uPjKSgo4N133yUzM5NrrrkGoN7Ham51fY53797t0VZRFK6//nr8/f155ZVXALjlllv47LPPmDp1KqNGjSI+Pr7Gx6nPa9IQQ4cOJSwsjMmTJ/Of//wHjUbDu+++Wy2Brq+m+u2qycaNG4mMjPT4rNemJb+TQvgML1RAFEK0sN27dys33XSTkpycrBiNRsVsNivDhg1TFi5c6FFCmKPlrt977z2lS5cuip+fn9K/f3+PUr+KoigWi0W57rrrlMjISCUoKEgZPXq0snPnTiUpKcmjLHVV+eGqP6PRqHTu3FmZOXOmx+M2pNSwoijKpk2blAkTJigRERGKn5+fkpSUpFxxxRXK8uXL3W0aWvodUKZOnerRtqbS9YqilowePXq0EhISophMJiU1NVWZMmWKR8n8mlQd75dfflFuvvlmJSwsTAkKClImTZqk5OfnV2tfn8fJyMhQLrnkEiU0NFQJCQlRLr/8cuXIkSMeZZY//PBDpXfv3sqCBQs8yoFXPcbxr3FSUpLH+xYZGamcd955yh9//OFu05jS71V/er1eSUpKUv7zn/8oFotFURTP0u8Oh0MZNGiQkpCQoFitVo9jL1iwQAGUjz/+uM7XGlA0Go2yYcMGj/uPL1Vd1/4NKf0+b9485ZlnnlESExMVPz8/ZcSIEcqWLVuq7b9v3z7l2muvVWJjYxWDwaB06NBBufDCC5XFixd7PPaJ/o5/Dl9++aUydOhQxd/fXwkODlZOO+005cMPPzzh8z777LOVjh07KsXFxYqiKMr27duVUaNGKUFBQUpkZKRy0003KVu2bPH4zpSXlytXXnmlkpCQoBiNRiU6Olo566yzlK+++srj2PU5lqI0b+n3uj7Hx3/2qz5bn332mcex09PTleDgYGXs2LHVHrdKfV+ThsT/22+/Kaeffrri7++vxMfHK/fff7/yww8/1PibeLyT+e1q6PsBKM8995xH26rf32Od7HdSiNZKoyiNvEwihGhzNBoNt912W6OvcIq6LVq0iOuuu47169fXu5S08G0HDhwgJSWFefPmce+99zbJMTUaDT///DMjR46scfuiRYtYtGgRK1eubJLHE0II0XxkzpYQQgghhBBCNANJtoQQQggfMmnSpDrXHktNTeXcc89twYiEEEI0lhTIEEII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5eXV+/n6668bbOeordeyOxSo1aeuoxEUJAMKESjB5eqCYVWJerhcLt5++21uvfVWnx1TTq0DQ9POiyAX35MJLixm/ylf2q2io2d3KNFoWhddU6mUxIVkkhZzALul+89npkyZwrp16zwaKGqMdjlbjz32GM899xyrVq1CpTq+Snb22WezadMmjxnndDoZNmwYL7zwAkOHDuWOO+7g9ttv57333vPYMRrj8ccfp7y83P2TleXdyYyvCFaJ0QC7on2pSxJNExSRCoBB7b3eTBIilZWVGALEiZJaF9XC1m3H4YC8vMuAqRQVeT6y5aoWFzuySvI491xDu8bo2TOerFLxenZVeXHxxOWkV/APJEW8SP9++z02bFqfaK58/XPOmL2W3BLvy9e3h6qqxn9KSmw4bbVCCzIVTz8NTz0lOlZPPy1u8/TT4u9PPQUzZjQ9rskSSHaxjBJj+yKGarWa6Ojoej8ni1QtXryY8KgYvvlxDX3HXEpwsI5JkyY1eK59++23DBs2DI1GQ3JyMrNnz3aLatTx7LPPNoigXXbZZfW2Wb9+PWeddRYBAQGEhIQwadIkysrE2ryzzjqLBx980L3tokWLMBgMbNu2DRBltW+99VaSkpLQarWkpaXxxhtv1Bv/scceIzY2FpVKRVxcHDNnzsTpdLZqf32glbfmT+OZJ6fiOGHZfvHixRgMhnp/55AhQ+odd82aNfUihifvcyLbt29HEAQyMjLcr61bt45x48ah1WpJSEjggQceoKqqqtH9Ad544w169OiBWq0mKiqK2267jepqUd0uIyMDQRDYvn17vX0SExPr1dQvWLCAgQMHEhgYSEJCAvfcc089cbCpU6c2+PwEQeCbb75x/56VlcXVV1+NwWAgNDSUSy+9tN7f1dgYLZ1Pq9VKSkpKgwjsRx99RFpaGiqVyv39OvH7cjJbt24lPT2dCy+8sN7r2dnZXHfddYSGhhIYGMiIESP466+/WLx4cZOR4MTEREDM2rr00kuJiooiKCiIkSNH8uuvv7rHVsgcJA69hFdef5frrruOwMBA4uLieOedd044iTKE8JF88+MaHNaGkfshQ4bw7Akhb6PRyG233UZERAR6vZ6zzz6bHTt2NPl3133+jf3U+/xfe42B464lJGkMffr0afD5131O33zzDampqWg0Gi666CJKSw6i01QiOKtbPB8gfu8EQXBfxyAuSkVFRbXpOjjrrLOa/LvqzldiYiJz585t+tzT8Dvc3LkPCQnh9NNP54svvmjyfHuCdjlbu3bt4vLLL2/wemRkpEdXgmNiYujXr1+91/r27Utmpji5qCvWLigoqLdNQUGB+73o6Gh3mmMddrud0tLSJou91Wo1er2+3k93IDRAnJwpdFLVo6ex1BbKRugMmM2Sw+VNjEYjobW6GIoAzy8chIdDj/BjjEjeRkFOqcfHL7coWbYZftsDCQnx7RojLi6OrFo/0GpM96B1J2Ep4oqgVzm8AGKiPefYRkVF8v0/w1l/8Az2HuicCp5BQY3/9OgRzPW3i2mQgkxcbFywQNznuefEbZ577vjv559ff9zExONjhcfFk9BnGH0HD/Tq31Jdbeb5Bf/hvddfZP369RiNRq699lr3+2vXruWmm25i+vTp7N27l/fff5/Fixfz/PPPNxirf//+7ija1VfXb0i9fft2zjnnHPr168fGjRtZt24dF198cT3Hpo6vvvqKhx56iO+++45hw4YB4gJrfHw8S5cuZe/evcyaNYsnnniCr776yr3feeedx/fff8/hw4dZtGgRH3zwAZ988kmr9pfJVAiCWIdibWQS7C3S09OZPHkyV155JTt37uTLL79k3bp13HfffU3uM2rUKJYuXcqhQ4dYtmwZq1evZv78+W06rkwm480332TPnj0sWbKE3377jUcffbTV+9tsNiZNmoROp2Pt2rWsX7+eoKAgJk+e3KHz9/bbbzeYt+3fv5/bbruNadOmcfjwYfLy8hg7dmyz46xdu5bevXuj0x3PcDCZTIwfP56cnBy+++47duzYwaOPPorT6eSaa65xf3dff/114uPj3b9v2bLFvf8FF1zA6tWr+eeff5g8eTIXX3yxe96prE0hfmvh+wwePJh//vmHxx57jOnTp7Nq1aoGNramOfBVV11FYWEhK1euZOvWrQwbNoxzzjmH0tLmnz+//vprvah2fPxJzxOnkzdfmMHGX//H4sWLG/38q6uref755/n4449Zv3495eXlTLvnEQAEalo8H3XExcXxwQcfuH9fsWKFWyikjpaug+XLl7v/lrFjx/LII4+4f59xwqrVK6+80qpz31pGjRrF2rVr271/a2hX1Z7BYCAvL6+eWAXAP//849Fi8tNPP50DBw7Ue+3gwYP07CmmbCUlJREdHc3q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smzZMu677z4+//xz93tffPEFM2bM4NVXX2Xs2LHodDpeeeWVBsrBd911F1dccQVbt27lwQcf5IorrmDChAmt2t/pkjHhjOHMmTOfiNgYQExfeuGFF+odIy0tje+++879+19//cUNN9xQbxudTse2bdtwuVzs3buXm2++mejo6HoKySCe3zvvvJMHHnigwfno0aPp2Pwll1zCyJEj2b9/P/feey8rVqyoN//58ssv6dv3eK+ns846y/3/jIwMLrroIu6++26ef/55QkNDWbduHbfeeitWq5WAgACmTZvGihUrSE5OJrCRL7zJZGL48OF8+umnDd6LiDiewj1hwgQWLlzo/r2x8wlw6NAhFi1axPbt28nOzq733siRI5kzZw633HILN9xwA0qlErPZ3KB27kTCw8PZtWtXvdda8x1sjhkzZrBq1Srmz59PSkoKWq2Wf/3rX1itVqxWK+kFYHcKCLKWp8+vzX2IEaPOgoAwnnjiCa6++mp2795dbxuTyURMTAxr1qxpsH9TNYGtISMjg2uuu5ErrriChx5+lMGDBzf4/Jumrtm6ixlPNX0+TuaOO+5g1qxZHDx4kJtvvrlBGmF7r4P28NprrzFx4kSMRmOT576O0tLSet9nb9AuZ0ulUvHhhx/y9NNPs3v3bkwmE0OHDiU1NdXT9nHRRRdx0UUXNfm+IAjMmTOHOXPmNLlNaGjoKdfA+GRM5ceotFjQqiAwzGtJR6c0l7/9MWVlvbj99v/525RuTXGxERBX173lbFXZRWdL7fJ8/d2r59zEvy8s55Yv3gDObHH7poiPd7F7N+Tne0/Ku6o4j2BE5cQ+KZ6V2Q+OFms2ooO95yx6A4dDjA7VyYjXOVZ1jhYc/3fWrPq/N0BQIBNcyAQH1hrvRbbsdjsr/9zAuHHjADhw4ABGo9E9UR82bBgHDhyol251MhaLhc2bN3PjjTc2uc2gQYNYvXp1vVS+k7nxxhu56667OP/88xkwYAArVqxw14CvX7+e0047jXvuOZ6+29jqfmhoKKGhofTp04dly5bx9ddfM2HChFbt73IJBAZoSeqRQHStKMLJisUgznNOPB8nOwcg1kTVbZOamsq5557L9u3bGzhbw4YNY+/evc2e38bQ6XTodDp69+7N77//zueff17P2UpISKg35okNq7du3YrT6eTVV19FJhO/syfWvoHomPz6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57bbbmPatGkcPnyYvLw8xo4d2+w4a9eupXfv3u6yltbidDq59NJLKS0t5Y8//mDVqlUcOXKEa665pt52dd/17f/sZPod1zLjmTc4eLiNE3aZkvSj2Vw39ZY2ff4nHr+pqLXFYmH48OH88MMP7N69mzvuuIMbb7yRLVs2A2BziFP8JUuWoFAo2Lx5M2+88QYLFixg0aJF7nFsNhtz585lx44dfPPNN2RkZHDLLbegUZvQaUwILvGzLi0tZdOmTe793n//feLi6t+3582bx8cff8x7773Hnj17eOihh7jhhhv4448/SEhIcP8tmzeLNm7evNn9WkJCgnuc//u//+PVV19ly5YtREREcPHFF7dbZKRHjx5ERUWxdu3adu3vCTwmT3TyappE5yE8SJyAaUIk4V9vY1fEogIig2WsO5Tb4EYk0TGsJlHsxe6Uo5B7qq1s40RFOEmMOEZIYBElJSXExHRMYObv/Diq8/MRQnp7yEKRiJhESk0QGoSoeKgK7vigFfu5KXYRE2fBO7neUSKsY+ORNKqrT+eMQ/u9epzOTnoBKBQy4j05qEtslmyz2Xlp3svuyeuSJUvo27cvmzdvZtSoUcyePZvHHnuMm2++GYDk5GTmzp3Lo48+yjPPPOMerqamBq1W61an1Gq11NTUuN9/+eWXGTFiBO+++677tf79+zcwa+XKldxyyy0sXbqUM8880/26Uqlk9uzZ7t+TkpLYuHEjX331lduxO3FB1+FwoNVq3c5ca/avw4kMcOJ0tC11sz3MmzePKVOmuKM0qampvPnmm4wfP56FCxei0TSMdp/oaGg0GvR6fZvry06MCiUmJvLcc89x1113uT8frVZLXl7T6btffvklTqeTRYsWuVv7fPTRRxgMBtasWcN5553XJntAnLA/99xzzJw5k6efftr9+s6dO5HL5cycOdP9WkspcMeOHSM2tu3zmtWrV7Nr1y6OHj3qnuB//PHH9O/fny1btjBy5EhAVPCMjo5GgUCP+GjkcjlBQUFtOpZcqWbe64u5+vILmT59OoIgtOrzP/H4dZw8z46Li2PGjBnu3++//35+/vlnVnz7LWePugtHbS1oQkICr732GoIgkJaWxq5du3jttde4/fbbAZg2bZp7jOTkZN58801GjhxJZdVThAaokAlW93YffvghY8aMITMzk61bt3LllVeyd+9eQLw/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",
|
||
"text/plain": [
|
||
"<Figure size 1000x500 with 1 Axes>"
|
||
]
|
||
},
|
||
"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",
|
||
"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",
|
||
"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()"
|
||
]
|
||
}
|
||
],
|
||
"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
|
||
}
|