From 9cced0297b22ff9ea0860db883931c256aa78fa5 Mon Sep 17 00:00:00 2001 From: EXE Date: Sat, 30 Nov 2024 12:01:55 +0400 Subject: [PATCH] lab4 --- lab_4/lab_4.ipynb | 1827 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1827 insertions(+) create mode 100644 lab_4/lab_4.ipynb diff --git a/lab_4/lab_4.ipynb b/lab_4/lab_4.ipynb new file mode 100644 index 0000000..a3b56c0 --- /dev/null +++ b/lab_4/lab_4.ipynb @@ -0,0 +1,1827 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Начало лабораторной работы" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index(['Date', 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "print(df.columns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Бизнес-цели" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Прогнозирование посетителей в магазине:\n", + "\n", + "Цель: Разработать модель, которая будет предсказывать объем выкупленного кофе основе: цены открытия, цены закрытия, самой высокой цене, самой низкой цене\n", + "Применение:\n", + "Узнать, какие лучше цены выставлять на кофе.\n", + "\n", + "2. Оптимизация цен на кофе:\n", + "Цель: Определить оптимальную цену на кофе, чтобы объем их скупа был больше.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Прогнозирование посетителей в магазине" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Среднее значение поля 'Volume: 14704589.99726232\n", + " Date Open High Low Close Adj Close Volume \\\n", + "0 1992-06-26 0.328125 0.347656 0.320313 0.335938 0.260703 224358400 \n", + "1 1992-06-29 0.339844 0.367188 0.332031 0.359375 0.278891 58732800 \n", + "2 1992-06-30 0.367188 0.371094 0.343750 0.347656 0.269797 34777600 \n", + "3 1992-07-01 0.351563 0.359375 0.339844 0.355469 0.275860 18316800 \n", + "4 1992-07-02 0.359375 0.359375 0.347656 0.355469 0.275860 13996800 \n", + "\n", + " above_average_volume volume_volatility \n", + "0 1 584004800 \n", + "1 1 584004800 \n", + "2 1 584004800 \n", + "3 1 584004800 \n", + "4 0 584004800 \n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "# Устанавливаем случайное состояние\n", + "random_state = 28\n", + "\n", + "# Рассчитываем среднее значение объема\n", + "average_count = df['Volume'].mean()\n", + "print(f\"Среднее значение поля 'Volume: {average_count}\")\n", + "\n", + "# Создаем новую переменную, указывающую, превышает ли объемная продажа среднюю\n", + "df[\"above_average_volume\"] = (df[\"Volume\"] > average_count).astype(int)\n", + "\n", + "# Рассчитываем волатильность (разницу между максимальной и минимальной объемная продажаю)\n", + "df[\"volume_volatility\"] = df[\"Volume\"].max() - df[\"Volume\"].min()\n", + "\n", + "# Выводим первые строки измененной таблицы для проверки\n", + "print(df.head())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Оптимизация параметров магазина:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Средняя объемная продажа для 'Open':\n", + "Open\n", + "0.328125 224358400.0\n", + "0.339844 58732800.0\n", + "0.351563 9331200.0\n", + "0.355469 13081600.0\n", + "0.359375 12518400.0\n", + " ... \n", + "122.559998 11747000.0\n", + "122.930000 6618400.0\n", + "124.550003 7934200.0\n", + "125.739998 4827500.0\n", + "126.080002 6110900.0\n", + "Name: Volume, Length: 5300, dtype: float64\n", + "\n", + "Средняя объемная продажа для 'Close':\n", + "Close\n", + "0.335938 224358400.0\n", + "0.347656 25139200.0\n", + "0.355469 12182400.0\n", + "0.359375 31328000.0\n", + "0.363281 11040000.0\n", + " ... \n", + "122.410004 11747000.0\n", + "122.629997 7172300.0\n", + "125.970001 7934200.0\n", + "126.029999 6110900.0\n", + "126.059998 4827500.0\n", + "Name: Volume, Length: 5440, dtype: float64\n", + "\n", + "Средняя объемная продажа для 'High':\n", + "High\n", + "0.347656 2.243584e+08\n", + "0.355469 1.063893e+07\n", + "0.359375 1.207893e+07\n", + "0.367188 3.488640e+07\n", + "0.371094 2.038720e+07\n", + " ... \n", + "123.330002 1.174700e+07\n", + "123.470001 6.618400e+06\n", + "126.099998 4.827500e+06\n", + "126.160004 6.110900e+06\n", + "126.320000 7.934200e+06\n", + "Name: Volume, Length: 5245, dtype: float64\n", + "\n", + "Средняя объемная продажа для 'Low':\n", + "Low\n", + "0.320313 224358400.0\n", + "0.332031 58732800.0\n", + "0.339844 18316800.0\n", + "0.343750 25139200.0\n", + "0.347656 8584000.0\n", + " ... \n", + "121.389999 11747000.0\n", + "122.139999 6618400.0\n", + "123.919998 7934200.0\n", + "124.250000 4827500.0\n", + "124.809998 6110900.0\n", + "Name: Volume, Length: 5223, dtype: float64\n", + "\n", + "Средняя объемная продажа для комбинации 'Open' и 'Close':\n", + "Open Close \n", + "0.328125 0.335938 224358400.0\n", + "0.339844 0.359375 58732800.0\n", + "0.351563 0.355469 12035200.0\n", + " 0.359375 3923200.0\n", + "0.355469 0.347656 15500800.0\n", + " ... \n", + "122.559998 122.410004 11747000.0\n", + "122.930000 122.379997 6618400.0\n", + "124.550003 125.970001 7934200.0\n", + "125.739998 126.059998 4827500.0\n", + "126.080002 126.029999 6110900.0\n", + "Name: Volume, Length: 7825, dtype: float64\n", + "\n", + "Средняя объемная продажа для комбинации 'High' и 'Low':\n", + "High Low \n", + "0.347656 0.320313 224358400.0\n", + "0.355469 0.343750 15500800.0\n", + " 0.347656 8208000.0\n", + "0.359375 0.339844 18316800.0\n", + " 0.347656 8960000.0\n", + " ... \n", + "123.330002 121.389999 11747000.0\n", + "123.470001 122.139999 6618400.0\n", + "126.099998 124.250000 4827500.0\n", + "126.160004 124.809998 6110900.0\n", + "126.320000 123.919998 7934200.0\n", + "Name: Volume, Length: 7662, dtype: float64\n", + "\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "# Устанавливаем случайное состояние\n", + "random_state = 42\n", + "\n", + "# Рассчитываем среднюю объемную продажу для каждого значения каждого признака\n", + "for column in [\"Open\", \"Close\", \"High\", \"Low\"]:\n", + " print(f\"Средняя объемная продажа для '{column}':\")\n", + " print(df.groupby(column)[\"Volume\"].mean())\n", + " print()\n", + "\n", + "\n", + "print(\"Средняя объемная продажа для комбинации 'Open' и 'Close':\")\n", + "print(df.groupby([\"Open\", \"Close\"])[\"Volume\"].mean())\n", + "print()\n", + "\n", + "\n", + "print(\"Средняя объемная продажа для комбинации 'High' и 'Low':\")\n", + "print(df.groupby([\"High\", \"Low\"])[\"Volume\"].mean())\n", + "print()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Выбор ориентира:\n", + "1. Прогнозирование стоимости акций взносов:\n", + "Ориентир:\n", + "\n", + "R² (коэффициент детерминации): 0.75 - 0.85\n", + "\n", + "MAE (средняя абсолютная ошибка): 1000000 - 1500000 продаж\n", + "\n", + "RMSE (среднеквадратичная ошибка): 1200000 - 1600000 продаж" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAE: 5768192.25223597\n", + "MSE: 79474720358524.94\n", + "RMSE: 8914859.525451029\n", + "R²: 0.20243123025000398\n", + "Ориентиры для прогнозирования не достигнуты.\n", + "Средняя объемная продажа 'Open':\n", + "Open\n", + "0.328125 224358400.0\n", + "0.339844 58732800.0\n", + "0.351563 9331200.0\n", + "0.355469 13081600.0\n", + "0.359375 12518400.0\n", + " ... \n", + "122.559998 11747000.0\n", + "122.930000 6618400.0\n", + "124.550003 7934200.0\n", + "125.739998 4827500.0\n", + "126.080002 6110900.0\n", + "Name: Volume, Length: 5300, dtype: float64\n", + "\n", + "Средняя объемная продажа 'High':\n", + "High\n", + "0.347656 2.243584e+08\n", + "0.355469 1.063893e+07\n", + "0.359375 1.207893e+07\n", + "0.367188 3.488640e+07\n", + "0.371094 2.038720e+07\n", + " ... \n", + "123.330002 1.174700e+07\n", + "123.470001 6.618400e+06\n", + "126.099998 4.827500e+06\n", + "126.160004 6.110900e+06\n", + "126.320000 7.934200e+06\n", + "Name: Volume, Length: 5245, dtype: float64\n", + "\n", + "Средняя объемная продажа 'Close':\n", + "Close\n", + "0.335938 224358400.0\n", + "0.347656 25139200.0\n", + "0.355469 12182400.0\n", + "0.359375 31328000.0\n", + "0.363281 11040000.0\n", + " ... \n", + "122.410004 11747000.0\n", + "122.629997 7172300.0\n", + "125.970001 7934200.0\n", + "126.029999 6110900.0\n", + "126.059998 4827500.0\n", + "Name: Volume, Length: 5440, dtype: float64\n", + "\n", + "Средняя объемная продажа 'Low':\n", + "Low\n", + "0.320313 224358400.0\n", + "0.332031 58732800.0\n", + "0.339844 18316800.0\n", + "0.343750 25139200.0\n", + "0.347656 8584000.0\n", + " ... \n", + "121.389999 11747000.0\n", + "122.139999 6618400.0\n", + "123.919998 7934200.0\n", + "124.250000 4827500.0\n", + "124.809998 6110900.0\n", + "Name: Volume, Length: 5223, dtype: float64\n", + "\n", + "Средняя посещаемость взносов для комбинации 'Open' и 'Close':\n", + "Open Close \n", + "0.328125 0.335938 224358400.0\n", + "0.339844 0.359375 58732800.0\n", + "0.351563 0.355469 12035200.0\n", + " 0.359375 3923200.0\n", + "0.355469 0.347656 15500800.0\n", + " ... \n", + "122.559998 122.410004 11747000.0\n", + "122.930000 122.379997 6618400.0\n", + "124.550003 125.970001 7934200.0\n", + "125.739998 126.059998 4827500.0\n", + "126.080002 126.029999 6110900.0\n", + "Name: Volume, Length: 7825, dtype: float64\n", + "\n", + "Средняя посещаемость взносов для комбинации 'High' и 'Low':\n", + "High Low \n", + "0.347656 0.320313 224358400.0\n", + "0.355469 0.343750 15500800.0\n", + " 0.347656 8208000.0\n", + "0.359375 0.339844 18316800.0\n", + " 0.347656 8960000.0\n", + " ... \n", + "123.330002 121.389999 11747000.0\n", + "123.470001 122.139999 6618400.0\n", + "126.099998 124.250000 4827500.0\n", + "126.160004 124.809998 6110900.0\n", + "126.320000 123.919998 7934200.0\n", + "Name: Volume, Length: 7662, dtype: float64\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y)\n", + "\n", + "X = df.drop(columns=[\"Volume\", \"Date\"], axis=1)\n", + "\n", + "y = df[\"Volume\"]\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", + "\n", + "# Стандартизируем признаки\n", + "scaler = StandardScaler()\n", + "X_train = scaler.fit_transform(X_train)\n", + "X_test = scaler.transform(X_test)\n", + "\n", + "# Обучаем модель линейной регрессии\n", + "model = LinearRegression()\n", + "model.fit(X_train, y_train)\n", + "\n", + "# Делаем предсказания на тестовой выборке\n", + "y_pred = model.predict(X_test)\n", + "\n", + "# Оцениваем качество модели\n", + "mae = mean_absolute_error(y_test, y_pred)\n", + "mse = mean_squared_error(y_test, y_pred)\n", + "rmse = mean_squared_error(y_test, y_pred, squared=False)\n", + "r2 = r2_score(y_test, y_pred)\n", + "\n", + "print(f\"MAE: {mae}\")\n", + "print(f\"MSE: {mse}\")\n", + "print(f\"RMSE: {rmse}\")\n", + "print(f\"R²: {r2}\")\n", + "\n", + "# Проверяем, достигнуты ли ориентиры\n", + "if r2 >= 0.75 and mae <= 1500000 and rmse <= 1700000:\n", + " print(\"Ориентиры для прогнозирования достигнуты!\")\n", + "else:\n", + " print(\"Ориентиры для прогнозирования не достигнуты.\")\n", + "\n", + "\n", + "columns_to_group = [\n", + " \"Open\",\n", + " \"High\",\n", + " \"Close\", \"Low\"\n", + "]\n", + "\n", + "# Рассчитываем среднюю объемная продажа для каждого значения каждого признака\n", + "for column in columns_to_group:\n", + " print(f\"Средняя объемная продажа '{column}':\")\n", + " print(df.groupby(column)[\"Volume\"].mean())\n", + " print()\n", + "\n", + "# Рассчитываем среднюю объемная продажа для комбинаций признаков\n", + "\n", + "print(\n", + " \"Средняя посещаемость взносов для комбинации 'Open' и 'Close':\"\n", + ")\n", + "print(df.groupby([\"Open\", \"Close\"])[\"Volume\"].mean())\n", + "print()\n", + "\n", + "print(\n", + " \"Средняя посещаемость взносов для комбинации 'High' и 'Low':\"\n", + ")\n", + "print(df.groupby([\"High\", \"Low\"])[\"Volume\"].mean())\n", + "print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Анализ применимости алгоритмов обучения с учителем для решения поставленных задач:\n", + "1. Прогнозирование посещаемости магазинов:\n", + "Задача: Регрессия\n", + "\n", + "Свойства алгоритмов:\n", + "\n", + "Линейная регрессия:\n", + "Применимость: Хорошо подходит для задач, где зависимость между признаками и целевой переменной линейна.\n", + "Преимущества: Проста в реализации, интерпретируема.\n", + "Недостатки: Может плохо работать, если зависимость нелинейна.\n", + "\n", + "Деревья решений (регрессия):\n", + "Применимость: Подходит для задач с нелинейными зависимостями.\n", + "Преимущества: Может обрабатывать категориальные признаки, не требует масштабирования данных.\n", + "Недостатки: Подвержены переобучению, могут давать нестабильные результаты.\n", + "\n", + "Случайный лес (регрессия):\n", + "Применимость: Хорошо подходит для задач с нелинейными зависимостями и большим количеством признаков.\n", + "Преимущества: Устойчив к переобучению, может обрабатывать категориальные признаки.\n", + "Недостатки: Менее интерпретируем, чем линейная регрессия.\n", + "\n", + "Градиентный бустинг (регрессия):\n", + "Применимость: Подходит для задач с нелинейными зависимостями и сложными взаимосвязями между признаками.\n", + "Преимущества: Может достигать высокой точности, устойчив к переобучению.\n", + "Недостатки: Сложнее в настройке, чем случайный лес, менее интерпретируем.\n", + "\n", + "Нейронные сети (регрессия):\n", + "Применимость: Подходит для задач с очень сложными зависимостями и большим количеством данных.\n", + "Преимущества: Может моделировать очень сложные зависимости.\n", + "Недостатки: Требует большого количества данных, сложнее в настройке и интерпретации.\n", + "\n", + "Вывод:\n", + "\n", + "Линейная регрессия: Может быть хорошим выбором для начала, особенно если зависимость между признаками и целевой переменной линейна.\n", + "\n", + "Деревья решений и случайный лес: Подходят для задач с нелинейными зависимостями.\n", + "\n", + "Градиентный бустинг: Может давать более высокую точность, чем случайный лес, но требует больше времени на настройку.\n", + "\n", + "Нейронные сети: Могут быть излишними для этой задачи, если данных недостаточно много.\n", + "\n", + "2. Оптимизация тарифной сетки:\n", + "Задача: Классификация (группировка клиентов по группам риска)\n", + "\n", + "Свойства алгоритмов:\n", + "\n", + "Логистическая регрессия:\n", + "Применимость: Хорошо подходит для задач бинарной классификации, где зависимость между признаками и целевой переменной линейна.\n", + "Преимущества: Проста в реализации, интерпретируема.\n", + "Недостатки: Может плохо работать, если зависимость нелинейна.\n", + "\n", + "Деревья решений (классификация):\n", + "Применимость: Подходит для задач с нелинейными зависимостями.\n", + "Преимущества: Может обрабатывать категориальные признаки, не требует масштабирования данных.\n", + "Недостатки: Подвержены переобучению, могут давать нестабильные результаты.\n", + "\n", + "Случайный лес (классификация):\n", + "Применимость: Хорошо подходит для задач с нелинейными зависимостями и большим количеством признаков.\n", + "Преимущества: Устойчив к переобучению, может обрабатывать категориальные признаки.\n", + "Недостатки: Менее интерпретируем, чем линейная регрессия.\n", + "\n", + "Градиентный бустинг (классификация):\n", + "Применимость: Подходит для задач с нелинейными зависимостями и сложными взаимосвязями между признаками.\n", + "Преимущества: Может достигать высокой точности, устойчив к переобучению.\n", + "Недостатки: Сложнее в настройке, чем случайный лес, менее интерпретируем.\n", + "\n", + "Нейронные сети (классификация):\n", + "Применимость: Подходит для задач с очень сложными зависимостями и большим количеством данных.\n", + "Преимущества: Может моделировать очень сложные зависимости.\n", + "Недостатки: Требует большого количества данных, сложнее в настройке и интерпретации.\n", + "\n", + "Вывод:\n", + "\n", + "Логистическая регрессия: Может быть хорошим выбором для начала, особенно если зависимость между признаками и целевой переменной линейна.\n", + "\n", + "Деревья решений и случайный лес: Подходят для задач с нелинейными зависимостями.\n", + "\n", + "Градиентный бустинг: Может давать более высокую точность, чем случайный лес, но требует больше времени на настройку.\n", + "\n", + "Нейронные сети: Могут быть излишними для этой задачи, если данных недостаточно много.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Прогнозирование стоимости акций:\n", + "Выбранные модели:\n", + "\n", + "Линейная регрессия\n", + "\n", + "Случайный лес (регрессия)\n", + "\n", + "Градиентный бустинг (регрессия)\n", + "\n", + "2. Оптимизация тарифной сетки:\n", + "Выбранные модели:\n", + "\n", + "Логистическая регрессия\n", + "\n", + "Случайный лес (классификация)\n", + "\n", + "Градиентный бустинг (классификация)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Результаты для задачи регрессии:\n", + "Model: Linear Regression\n", + "MAE: 5768192.25223597\n", + "MSE: 79474720358524.94\n", + "RMSE: 8914859.525451029\n", + "R²: 0.20243123025000398\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n", + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Random Forest Regression\n", + "MAE: 4743024.419561123\n", + "MSE: 53510298672765.83\n", + "RMSE: 7315073.388064253\n", + "R²: 0.46299725385803414\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Gradient Boosting Regression\n", + "MAE: 5342173.187524888\n", + "MSE: 59614858644914.586\n", + "RMSE: 7721065.9008270735\n", + "R²: 0.4017349258512456\n", + "\n", + "Результаты для задачи классификации:\n", + "Model: Logistic Regression\n", + "Accuracy: 0.6648009950248757\n", + "\n", + "Model: Random Forest Classification\n", + "Accuracy: 0.7531094527363185\n", + "\n", + "Model: Gradient Boosting Classification\n", + "Accuracy: 0.7375621890547264\n", + "\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression, LogisticRegression\n", + "from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier\n", + "from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier\n", + "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score, accuracy_score\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи регрессии\n", + "X_reg = df.drop(columns = [\"Volume\", \"Date\"], axis=1)\n", + "y_reg = df[\"Volume\"]\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи регрессии\n", + "X_train_reg, X_test_reg, y_train_reg, y_test_reg = train_test_split(X_reg, y_reg, test_size=0.2, random_state=42)\n", + "\n", + "# Стандартизируем признаки для задачи регрессии\n", + "scaler_reg = StandardScaler()\n", + "X_train_reg = scaler_reg.fit_transform(X_train_reg)\n", + "X_test_reg = scaler_reg.transform(X_test_reg)\n", + "\n", + "# Список моделей для задачи регрессии\n", + "models_reg = {\n", + " \"Linear Regression\": LinearRegression(),\n", + " \"Random Forest Regression\": RandomForestRegressor(),\n", + " \"Gradient Boosting Regression\": GradientBoostingRegressor()\n", + "}\n", + "\n", + "# Обучаем и оцениваем модели для задачи регрессии\n", + "print(\"Результаты для задачи регрессии:\")\n", + "for name, model in models_reg.items():\n", + " model.fit(X_train_reg, y_train_reg)\n", + " y_pred_reg = model.predict(X_test_reg)\n", + " mae = mean_absolute_error(y_test_reg, y_pred_reg)\n", + " mse = mean_squared_error(y_test_reg, y_pred_reg)\n", + " rmse = mean_squared_error(y_test_reg, y_pred_reg, squared=False)\n", + " r2 = r2_score(y_test_reg, y_pred_reg)\n", + " print(f\"Model: {name}\")\n", + " print(f\"MAE: {mae}\")\n", + " print(f\"MSE: {mse}\")\n", + " print(f\"RMSE: {rmse}\")\n", + " print(f\"R²: {r2}\")\n", + " print()\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи классификации\n", + "X_class = df.drop(columns=[\"Volume\", \"Date\"], axis=1)\n", + "y_class = (df[\"Volume\"] > df[\"Volume\"].mean()).astype(int)\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи классификации\n", + "X_train_class, X_test_class, y_train_class, y_test_class = train_test_split(X_class, y_class, test_size=0.2, random_state=42)\n", + "\n", + "# Стандартизируем признаки для задачи классификации\n", + "scaler_class = StandardScaler()\n", + "X_train_class = scaler_class.fit_transform(X_train_class)\n", + "X_test_class = scaler_class.transform(X_test_class)\n", + "\n", + "# Список моделей для задачи классификации\n", + "models_class = {\n", + " \"Logistic Regression\": LogisticRegression(),\n", + " \"Random Forest Classification\": RandomForestClassifier(),\n", + " \"Gradient Boosting Classification\": GradientBoostingClassifier()\n", + "}\n", + "\n", + "# Обучаем и оцениваем модели для задачи классификации\n", + "print(\"Результаты для задачи классификации:\")\n", + "for name, model in models_class.items():\n", + " model.fit(X_train_class, y_train_class)\n", + " y_pred_class = model.predict(X_test_class)\n", + " accuracy = accuracy_score(y_test_class, y_pred_class)\n", + " print(f\"Model: {name}\")\n", + " print(f\"Accuracy: {accuracy}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Прогнозирование стоимости акций:\n", + "Конвейер для задачи регрессии:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Результаты для задачи регрессии:\n", + "Model: Linear Regression\n", + "MAE: 5864823.098654954\n", + "MSE: 79729784253194.62\n", + "RMSE: 8929153.613484014\n", + "R²: 0.1998715358495502\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n", + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Random Forest Regression\n", + "MAE: 4748943.562197346\n", + "MSE: 52113017355988.875\n", + "RMSE: 7218934.641343477\n", + "R²: 0.4770196742678081\n", + "\n", + "Model: Gradient Boosting Regression\n", + "MAE: 5383760.453298221\n", + "MSE: 61371186946506.61\n", + "RMSE: 7833976.445363275\n", + "R²: 0.3841092884604046\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "\n", + "\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Список моделей для задачи регрессии\n", + "models_reg = {\n", + " \"Linear Regression\": LinearRegression(),\n", + " \"Random Forest Regression\": RandomForestRegressor(),\n", + " \"Gradient Boosting Regression\": GradientBoostingRegressor()\n", + "}\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи регрессии\n", + "X_reg = df[numerical_cols]\n", + "y_reg = df[\"Volume\"]\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи регрессии\n", + "X_train_reg, X_test_reg, y_train_reg, y_test_reg = train_test_split(X_reg, y_reg, test_size=0.2, random_state=42)\n", + "\n", + "# Обучаем и оцениваем модели для задачи регрессии\n", + "print(\"Результаты для задачи регрессии:\")\n", + "for name, model in models_reg.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " pipeline.fit(X_train_reg, y_train_reg)\n", + " y_pred_reg = pipeline.predict(X_test_reg)\n", + " mae = mean_absolute_error(y_test_reg, y_pred_reg)\n", + " mse = mean_squared_error(y_test_reg, y_pred_reg)\n", + " rmse = mean_squared_error(y_test_reg, y_pred_reg, squared=False)\n", + " r2 = r2_score(y_test_reg, y_pred_reg)\n", + " print(f\"Model: {name}\")\n", + " print(f\"MAE: {mae}\")\n", + " print(f\"MSE: {mse}\")\n", + " print(f\"RMSE: {rmse}\")\n", + " print(f\"R²: {r2}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Оптимизация характеристик магазина:\n", + "Конвейер для задачи классификации:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Результаты для задачи классификации:\n", + "Model: Logistic Regression\n", + "Accuracy: 0.6648009950248757\n", + "\n", + "Model: Random Forest Classification\n", + "Accuracy: 0.7506218905472637\n", + "\n", + "Model: Gradient Boosting Classification\n", + "Accuracy: 0.7437810945273632\n", + "\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "# Создаем преобразователь для категориальных и числовых столбцов\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Список моделей для задачи классификации\n", + "models_class = {\n", + " \"Logistic Regression\": LogisticRegression(),\n", + " \"Random Forest Classification\": RandomForestClassifier(),\n", + " \"Gradient Boosting Classification\": GradientBoostingClassifier()\n", + "}\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи классификации\n", + "X_class = df[numerical_cols]\n", + "y_class = (df[\"Volume\"] > df[\"Volume\"].mean()).astype(int)\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи классификации\n", + "X_train_class, X_test_class, y_train_class, y_test_class = train_test_split(X_class, y_class, test_size=0.2, random_state=42)\n", + "\n", + "# Обучаем и оцениваем модели для задачи классификации\n", + "print(\"Результаты для задачи классификации:\")\n", + "for name, model in models_class.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " pipeline.fit(X_train_class, y_train_class)\n", + " y_pred_class = pipeline.predict(X_test_class)\n", + " accuracy = accuracy_score(y_test_class, y_pred_class)\n", + " print(f\"Model: {name}\")\n", + " print(f\"Accuracy: {accuracy}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Прогнозирование посещения:\n", + "\n", + "Настройка гиперпараметров для задачи регрессии:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Результаты для задачи регрессии:\n", + "Model: Linear Regression\n", + "Best Parameters: {}\n", + "MAE: 5864823.098654954\n", + "MSE: 79729784253194.62\n", + "RMSE: 8929153.613484014\n", + "R²: 0.1998715358495502\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n", + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Random Forest Regression\n", + "Best Parameters: {'model__max_depth': 20, 'model__n_estimators': 100}\n", + "MAE: 4745015.076427519\n", + "MSE: 50305268043545.125\n", + "RMSE: 7092620.675289573\n", + "R²: 0.49516134735124795\n", + "\n", + "Model: Gradient Boosting Regression\n", + "Best Parameters: {'model__learning_rate': 0.1, 'model__max_depth': 5, 'model__n_estimators': 200}\n", + "MAE: 4989092.1890771855\n", + "MSE: 54972419800512.18\n", + "RMSE: 7414338.797257122\n", + "R²: 0.44832413335101695\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split, GridSearchCV\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "# Определяем категориальные и числовые столбцы\n", + "\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "\n", + "# Создаем преобразователь для категориальных и числовых столбцов\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Список моделей и их гиперпараметров для задачи регрессии\n", + "models_reg = {\n", + " \"Linear Regression\": (LinearRegression(), {}),\n", + " \"Random Forest Regression\": (RandomForestRegressor(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__max_depth': [None, 10, 20]\n", + " }),\n", + " \"Gradient Boosting Regression\": (GradientBoostingRegressor(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__learning_rate': [0.01, 0.1],\n", + " 'model__max_depth': [3, 5]\n", + " })\n", + "}\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи регрессии\n", + "X_reg = df[numerical_cols]\n", + "y_reg = df['Volume']\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи регрессии\n", + "X_train_reg, X_test_reg, y_train_reg, y_test_reg = train_test_split(X_reg, y_reg, test_size=0.2, random_state=42)\n", + "\n", + "# Обучаем и оцениваем модели для задачи регрессии\n", + "print(\"Результаты для задачи регрессии:\")\n", + "for name, (model, params) in models_reg.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " grid_search = GridSearchCV(pipeline, params, cv=5, scoring='neg_mean_absolute_error')\n", + " grid_search.fit(X_train_reg, y_train_reg)\n", + " best_model = grid_search.best_estimator_\n", + " y_pred_reg = best_model.predict(X_test_reg)\n", + " mae = mean_absolute_error(y_test_reg, y_pred_reg)\n", + " mse = mean_squared_error(y_test_reg, y_pred_reg)\n", + " rmse = mean_squared_error(y_test_reg, y_pred_reg, squared=False)\n", + " r2 = r2_score(y_test_reg, y_pred_reg)\n", + " print(f\"Model: {name}\")\n", + " print(f\"Best Parameters: {grid_search.best_params_}\")\n", + " print(f\"MAE: {mae}\")\n", + " print(f\"MSE: {mse}\")\n", + " print(f\"RMSE: {rmse}\")\n", + " print(f\"R²: {r2}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Оптимизация характеристик:\n", + "\n", + "Настройка гиперпараметров для задачи классификации:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Результаты для задачи классификации:\n", + "Model: Logistic Regression\n", + "Best Parameters: {'model__C': 10, 'model__solver': 'liblinear'}\n", + "Accuracy: 0.6865671641791045\n", + "\n", + "Model: Random Forest Classification\n", + "Best Parameters: {'model__max_depth': None, 'model__n_estimators': 100}\n", + "Accuracy: 0.75\n", + "\n", + "Model: Gradient Boosting Classification\n", + "Best Parameters: {'model__learning_rate': 0.1, 'model__max_depth': 5, 'model__n_estimators': 200}\n", + "Accuracy: 0.7506218905472637\n", + "\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split, GridSearchCV\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "# Определяем категориальные и числовые столбцы\n", + "\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "\n", + "# Создаем преобразователь для категориальных и числовых столбцов\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Список моделей и их гиперпараметров для задачи классификации\n", + "models_class = {\n", + " \"Logistic Regression\": (LogisticRegression(), {\n", + " 'model__C': [0.1, 1, 10],\n", + " 'model__solver': ['liblinear', 'lbfgs']\n", + " }),\n", + " \"Random Forest Classification\": (RandomForestClassifier(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__max_depth': [None, 10, 20]\n", + " }),\n", + " \"Gradient Boosting Classification\": (GradientBoostingClassifier(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__learning_rate': [0.01, 0.1],\n", + " 'model__max_depth': [3, 5]\n", + " })\n", + "}\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи классификации\n", + "X_class = df[numerical_cols]\n", + "y_class = (df['Volume'] > df['Volume'].mean()).astype(int)\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи классификации\n", + "X_train_class, X_test_class, y_train_class, y_test_class = train_test_split(X_class, y_class, test_size=0.2, random_state=42)\n", + "\n", + "# Обучаем и оцениваем модели для задачи классификации\n", + "print(\"Результаты для задачи классификации:\")\n", + "for name, (model, params) in models_class.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " grid_search = GridSearchCV(pipeline, params, cv=5, scoring='accuracy')\n", + " grid_search.fit(X_train_class, y_train_class)\n", + " best_model = grid_search.best_estimator_\n", + " y_pred_class = best_model.predict(X_test_class)\n", + " accuracy = accuracy_score(y_test_class, y_pred_class)\n", + " print(f\"Model: {name}\")\n", + " print(f\"Best Parameters: {grid_search.best_params_}\")\n", + " print(f\"Accuracy: {accuracy}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Прогнозирование посещаемости::\n", + "Задача: Регрессия\n", + "\n", + "Выбор метрик:\n", + "\n", + "MAE (Mean Absolute Error): Средняя абсолютная ошибка. Показывает среднее отклонение предсказанных значений от фактических. Эта метрика легко интерпретируется, так как она измеряется в тех же единицах, что и целевая переменная \n", + "\n", + "MSE (Mean Squared Error): Среднеквадратичная ошибка. Показывает среднее квадратичное отклонение предсказанных значений от фактических. Эта метрика чувствительна к выбросам, так как ошибки возводятся в квадрат.\n", + "\n", + "RMSE (Root Mean Squared Error): Квадратный корень из среднеквадратичной ошибки. Показывает среднее отклонение предсказанных значений от фактических в тех же единицах, что и целевая переменная. Эта метрика также чувствительна к выбросам, но легче интерпретируется, чем MSE.\n", + "\n", + "R² (R-squared): Коэффициент детерминации. Показывает, какую долю дисперсии целевой переменной объясняет модель. Значение R² близкое к 1 указывает на хорошее качество модели.\n", + "\n", + "Обоснование:\n", + "\n", + "MAE: Хорошо подходит для задач, где важно понимать среднее отклонение предсказаний от фактических значений.\n", + "\n", + "MSE и RMSE: Полезны для задач, где важно минимизировать влияние выбросов, так как они возводят ошибки в квадрат.\n", + "\n", + "R²: Позволяет оценить, насколько хорошо модель объясняет вариацию целевой переменной.\n", + "\n", + "2. Оптимизация характеристик:\n", + "Задача: Классификация\n", + "\n", + "Выбор метрик:\n", + "\n", + "Accuracy: Доля правильных предсказаний среди всех предсказаний. Эта метрика показывает общую точность модели.\n", + "\n", + "Precision: Доля правильных положительных предсказаний среди всех положительных предсказаний. Эта метрика важна, если важно минимизировать количество ложноположительных результатов.\n", + "\n", + "Recall (Sensitivity): Доля правильных положительных предсказаний среди всех фактических положительных случаев. Эта метрика важна, если важно минимизировать количество ложноотрицательных результатов.\n", + "\n", + "F1-score: Гармоническое среднее между precision и recall. Эта метрика показывает баланс между precision и recall.\n", + "\n", + "Обоснование:\n", + "\n", + "Accuracy: Хорошо подходит для задач, где классы сбалансированы.\n", + "\n", + "Precision и Recall: Важны для задач, где важно минимизировать ошибки определенного типа (ложноположительные или ложноотрицательные).\n", + "\n", + "F1-score: Позволяет оценить баланс между precision и recall." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Результаты для задачи регрессии:\n", + "Model: Linear Regression\n", + "Best Parameters: {}\n", + "MAE: 5864823.098654954\n", + "MSE: 79729784253194.62\n", + "RMSE: 8929153.613484014\n", + "R²: 0.1998715358495502\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n", + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Random Forest Regression\n", + "Best Parameters: {'model__max_depth': 20, 'model__n_estimators': 200}\n", + "MAE: 4734732.039487049\n", + "MSE: 50486294534200.32\n", + "RMSE: 7105370.823130931\n", + "R²: 0.49334465551776063\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_regression.py:492: FutureWarning: 'squared' is deprecated in version 1.4 and will be removed in 1.6. To calculate the root mean squared error, use the function'root_mean_squared_error'.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Gradient Boosting Regression\n", + "Best Parameters: {'model__learning_rate': 0.1, 'model__max_depth': 5, 'model__n_estimators': 200}\n", + "MAE: 5053208.30429523\n", + "MSE: 64960737700273.1\n", + "RMSE: 8059822.4360263115\n", + "R²: 0.3480863422238958\n", + "\n", + "Результаты для задачи классификации:\n", + "Model: Logistic Regression\n", + "Best Parameters: {'model__C': 10, 'model__solver': 'liblinear'}\n", + "Accuracy: 0.6865671641791045\n", + "Precision: 0.5378548895899053\n", + "Recall: 0.6177536231884058\n", + "F1-score: 0.5750421585160203\n", + "\n" + ] + }, + { + "data": { + "image/png": "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gahMpKelokX96khJSVGZ5Cilgr8TjWfug66hsVpt5WVm4M+gD8o03rLAHgoiIiKJSLnKQ9MwoSAiIpIIHw5GREREpAb2UBAREUmEQx5ERESkNm0e8mBCQUREJBFt7qHgHAoiIiJSG3soiIiIpCLBkEcpbpRZqTChICIikgiHPIiIiIjUwB4KIiIiiXCVBxEREamNQx5EREREamAPBRERkUQ45EFERERq45AHERERkRrYQ0FERCQRbe6hYEJBREQkEc6hICIiIrVpcw8F51AQERGR2thDQUREJBEOeRAREZHaOORBREREpAb2UBAREUlEBgmGPCSJpPwxoSAiIpKIjkwGHTUzCnWPrygc8iAiIiK1sYeCiIhIIlzlQURERGrT5lUeTCiIiIgkoiPL39RtQxNxDgURERGpjT0UREREUpFJMGShoT0UTCiIiIgkos2TMjnkQURERGpjDwUREZFEZP//n7ptaCImFERERBLhKg8iIiIiNbCHgoiISCK8sdUb7Nu3r8QNfvDBB28dDBERkSbT5lUeJUooevXqVaLGZDIZ8vLy1ImHiIiINFCJEgqlUlnWcRAREWk8bX58uVpzKDIzM2FoaChVLERERBpNm4c8Sr3KIy8vD/PmzUONGjVgYmKCO3fuAABmz56NDRs2SB4gERGRpiiYlKnupolKnVB89dVXCA0NRXBwMAwMDMTyRo0aYf369ZIGR0RERJqh1AnF5s2bsXbtWgwaNAi6urpieZMmTXDz5k1JgyMiItIkBUMe6m6aqNRzKB4+fIi6desWKlcqlcjJyZEkKCIiIk2kzZMyS91D4eLigt9++61QeVhYGJo1ayZJUERERKRZSt1D8cUXX8DX1xcPHz6EUqnEnj17EBMTg82bN2P//v1lESMREZFGkP3/pm4bmqjUPRQ9e/bEL7/8gqNHj8LY2BhffPEFoqOj8csvv6Br165lESMREZFG0OZVHm91H4r27dsjPDxc6liIiIhIQ731ja3Onz+P6OhoAPnzKlq0aCFZUERERJpImx9fXuqE4sGDBxgwYADOnDkDc3NzAEBycjLatm2LHTt2oGbNmlLHSEREpBG0+WmjpZ5DMWLECOTk5CA6OhpJSUlISkpCdHQ0lEolRowYURYxEhERUSVX6h6KkydPIjIyEg0aNBDLGjRogOXLl6N9+/aSBkdERKRpNLSDQW2l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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Random Forest Classification\n", + "Best Parameters: {'model__max_depth': 20, 'model__n_estimators': 200}\n", + "Accuracy: 0.7549751243781094\n", + "Precision: 0.6479400749063671\n", + "Recall: 0.6268115942028986\n", + "F1-score: 0.6372007366482505\n", + "\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Gradient Boosting Classification\n", + "Best Parameters: {'model__learning_rate': 0.1, 'model__max_depth': 5, 'model__n_estimators': 200}\n", + "Accuracy: 0.7518656716417911\n", + "Precision: 0.6462715105162524\n", + "Recall: 0.6123188405797102\n", + "F1-score: 0.6288372093023256\n", + "\n" + ] + }, + { + "data": { + "image/png": "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jrh48SKSk5O1ypcvXz7PfRfk+tt599134e/vD39/f3Tr1g1btmyBt7c3Bg0ahMzMTADPztXNzS3PB+mLr52u14TmzZujY8eOmDx5MsqWLYv27dsjKirK4Km9r7rGJCcn4+nTp/n+nRX0t/c8fa+R+Xnw4AG+/PJLODs7w8rKCo6OjtL78Pn3V2RkJM6dOwd3d3e8++67mDRpklYA6eXlhWHDhmHRokUoW7YsAgMD8dNPP+l1PXiZK1euAABq1ar10nIJCQnSlzEbGxs4OjqiefPmec5HV3fv3sWTJ08KvB5rNBrcvHlTa70c12Nj9MYHFG5ubjh37pxe++l6g5mCRhALIV77GDk5OVqPrayscODAAezatQs9evTA33//jU8//RStWrXKU9YQhpxLLqVSieDgYERHR2P9+vUFZieAZ/d1GDZsGJo1a4bly5djx44diImJQc2aNXXOxADa3yZ0cerUKenD7ezZs3rtayhd21q9enUAyPO+dXR0lD4on5+t9KpjLF++HKGhoahUqRIWL16M7du3IyYmBu+//75ez/XLaDQaKBQKqe4XlxczQXK833RlYmKCli1b4s6dO7h8+fJr1fGqa4JCocCaNWsQGxuLQYMG4datW+jduzcaNGiQJzDUR2E/T7nvNUP+Fjp37oxffvlFGkO1c+dObN++HQC03l+dO3fG1atXMXfuXLi5uWHGjBmoWbOm1j1CZs6cib///hv/+c9/8PTpUwwZMgQ1a9bEv//++9rt00dOTg5atWqFLVu2YPTo0diwYQNiYmKkG3nJ9ffyKkX59/EmeaMDCgD48MMPceXKFcTGxr6yrKenJzQaTZ6LTlJSElJSUvJNMb+u0qVLIyUlJc/6/FJaJiYm+OCDD/D999/jwoULmDZtGvbs2ZMnjZwrt51xcXF5tl26dAlly5aFtbW1YSdQgM8++wynTp3Co0eP0KVLlwLLrVmzBi1btsTixYvRpUsXBAQEwN/fP89zIufdAx8/foxevXrB29sb/fv3R2RkJI4dO/ba9Xl6euLy5ct5LjKXLl2Str+ONm3awNTUFCtWrHjttj1vzZo1qFixItatW4cePXogMDAQ/v7+SE9P1yrn6emJO3fu5PkAzO999KJKlSpBCAEvLy8p6Hl+yU2B60PO1z47OxvA/7I+np6euH37dp5v5i++dvpeExo3boxp06bh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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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geGGHCozuwCGRhN6RwSgf1SQ1OUQEZEbYrghh1p36d42UxJiIJPx3jZERGR7bQo3p0+fxvPPP4/f/e535iGXX3/9NY4ePWrT4si9HNVV4EiBHl4eMkwewCGZRERkH1aHm+3bt6N///746aef8Nlnn6GqqgoAkJ2dfd27BBMBMLd/39k3HCEckklERHZidbiZO3cuXn75ZXzzzTcWN84bPXo0fvzxR5sWR+6jvtGIL7QFAID7eCExERHZkdXh5vDhw7jrrruuWR4WFoaysjKbFEXu55tjxbhY04CIQG/c3qOT1OUQEZEbszrcBAcHo7Cw8JrlBw8eRFQUr6Oglq2/dEqKQzKJiMjerA43v/3tb/HMM8+gqKgIMpkMJpMJu3btwpw5czB16lR71EguTnexFjt+LgUA3JcQLXE1RETk7qwON0uWLEHv3r0RExODqqoq9O3bF7fffjuGDx+O559/3h41kotrHpL5m64huKWjn9TlEBGRm7N6tpRCocCqVaswf/58HDlyBFVVVRgwYAB69Ohhj/rIxZlMAhv2X763DRERkb1ZHW527tyJW2+9FZ07d0bnzp3tURO5kR/zzuNseS38lZ4YHxcpdTlERNQOWH1aavTo0ejSpQueffZZHDt2zB41kRtZv7fpqE2yWgUfhYfE1RARUXtgdbjR6XT405/+hO3btyMuLg4ajQavvfYazp07Z4/6yIVV1Dbg6yNNQzLTBvOUFBEROYbV4SY0NBQzZszArl27cPr0adx33314//33ERsbi9GjR9ujRnJRX2brUN9oQs9wf6ijOSSTiIgc41cNzuzSpQvmzp2LV155Bf3798f27dttVRe5gQ0ckklERBJoc7jZtWsXnnzySURGRuL+++9HXFwcNm7caMvayIWdKNIj+1wFPOUy3MUhmURE5EBWd0vNmzcPa9euhU6nw5133ok33ngDqamp8PX1tUd95KLW7226BiuxTzg6+islroaIiNoTq8PN999/jz//+c+YMmUKQkND7VETuThDowmfH2wKN1MG847ERETkWFaHm127dtmjDnIjW48X40JNA8IDlRySSUREDteqcJOZmYnx48fDy8sLmZmZN1w3JSXFJoWR61p/6ULiewZGw9PjV12zTkREZLVWhZvJkyejqKgIYWFhmDx58nXXk8lkMBqNtqqNXFBhRS2+P9k8JJP3tiEiIsdrVbgxmUwt/proap/uPweTAIbEhqBLKIdkEhGR41l9zuCDDz5AfX39NcsNBgM++OADmxRFrslkEli/r/lCYh61ISIiaVgdbqZNm4aKioprlldWVmLatGk2KYpc054z5cgvr4GfwgMT+kdIXQ4REbVTVocbIUSLd5s9d+4cgoJ4i/32rPlC4mS1Cr4KqxvxiIiIbKLV30ADBgyATCaDTCbDmDFj4Ol5eVOj0Yi8vDyMGzfOLkWS89PXNWDT4UIAPCVFRETSanW4ae6S0mq1SEpKgr+/v/k5hUKB2NhY3HPPPTYvkFzDV9mFqGswoXuYPwbEBEtdDhERtWOtDjcLFy4EAMTGxiItLQ3e3t52K4pcz3rzkMxoDskkIiJJWX1hRHp6uj3qIBd2srgS2rMXLw3J5LgFIiKSVqvCTUhICE6ePInQ0FB06NDhhv8zLy8vt1lx5BrW7206ajO6dxg6BXBIJhERSatV4ebvf/87AgICzL/maQdq1jQkswAAMIV3JCYiIifQqnBz5amohx56yF61kAv69kQJzlcb0ClAiTt6cUgmERFJz+r73Bw4cACHDx82P87IyMDkyZPx7LPPwmAw2LQ4cn4ckklERM7G6m+jP/7xjzh58iQAIDc3F2lpafD19cWGDRvwl7/8xeYFkvMq1tdhW04JAOC+BF5ITEREzsHqcHPy5EloNBoAwIYNGzBy5Eh8/PHHWLNmDT799FNb10dO7NMDTUMyE27pgG6d/G++ARERkQO0afxC82TwrVu3YsKECQCAmJgYlJWV2bY6clpCCGxoHpLJC4mJiMiJWB1uEhIS8PLLL+PDDz/E9u3bMXHiRABAXl4ewsPDbV4gOae9Zy4gr6wavgoPTIyPlLocIiIiM6vDzfLly3HgwAHMmDEDzz33HLp37w4A+OSTTzB8+HCbF0jOqflC4knxkfBTckgmERE5D6u/leLj4y26pZq99tpr8PDwsElR5Nyq6hux8dClIZk8JUVERE6mzf/l3r9/P44fPw4A6Nu3LwYOHGizosi5fZWtQ22DEV07+WHQLR2kLoeIiMiC1eGmpKQEaWlp2L59O4KDgwEAFy9exKhRo7B27Vp06sQbubm7y0MyY3i3aiIicjpWX3Mzc+ZMVFVV4ejRoygvL0d5eTmOHDkCvV6Pp556yh41khM5VVKJA/kX4SGX4e6BUVKXQ0REdA2rj9xs3rwZW7duRZ8+fczL+vbtixUrVmDs2LE2LY6cz/pL7d+jeoUhLMBb4mqIiIiuZfWRG5PJBC8vr2uWe3l5me9/Q+6pwWjCZwea723DOxITEZFzsjrcjB49GrNmzYJOpzMvKygowNNPP40xY8bYtDhyLt+dKEFZlQGh/gqM6h0mdTlEREQtsjrcvPXWW9Dr9YiNjUW3bt3QrVs3dOnSBXq9Hm+++aY9aiQn0Xwh8d0Do+HFIZlEROSkrL7mJiYmBgcOHEBWVpa5FbxPnz5ITEy0eXHkPEr0dfgupxQAT0kREZFzsyrcrFu3DpmZmTAYDBgzZgxmzpxpr7rIyXx2sABGk8DAzsHoHhYgdTlERETX1epw884772D69Ono0aMHfHx88Nlnn+H06dN47bXX7FkfOQEhhMW9bYiIiJxZqy+ceOutt7Bw4ULk5ORAq9Xi/fffx9tvv23P2shJ7P/lAnJLq+Hj5YFJapXU5RAREd1Qq8NNbm4u0tPTzY/vv/9+NDY2orCw0C6FkfNoPmozMT4S/hySSURETq7V4aa+vh5+fn6XN5TLoVAoUFtba5fCyDlU1zfiKw7JJCIiF2LVf8Pnz58PX19f82ODwYDFixcjKCjIvGzZsmW2q44kt/FQIWoMRnQJ9cPgWA7JJCIi59fqcHP77bcjJyfHYtnw4cORm5trfswhiu6n+ZTUfQnR/P0lIiKX0Opws23bNjuWQc7odGkV9v1yAXIZcM9A3tuGiIhcg1PcZnbFihWIjY2Ft7c3hg4dij179rRqu7Vr10Imk2Hy5Mn2LbCd2nBpSOYdvcIQHsghmURE5BokDzfr1q3D7NmzsXDhQhw4cABqtRpJSUkoKSm54XZnzpzBnDlzcNtttzmo0val0WjCp+YhmbyQmIiIXIfk4WbZsmV49NFHMW3aNPTt2xcrV66Er68vVq9efd1tjEYjHnjgASxatAhdu3Z1YLXtx7acUpRW1qOjnwKjOSSTiIhciKThxmAwYP/+/RZzqeRyORITE7F79+7rbvfiiy8iLCwMDz/88E3fo76+Hnq93uKHbq75QuK7BkRB4Sl5BiYiImo1Sb+1ysrKYDQaER4ebrE8PDwcRUVFLW6zc+dO/Otf/8KqVata9R5Lly5FUFCQ+ScmhqdYbqa0sh7fnmg6LThlMPcXERG5ljaFmx07duD3v/89hg0bhoKCAgDAhx9+iJ07d9q0uKtVVlbiwQcfxKpVqxAaGtqqbebNm4eKigrzz9mzZ+1aozv4/OA5NJoENDHB6BnOIZlERORarL6X/qeffooHH3wQDzzwAA4ePIj6+noAQEVFBZYsWYJNmza1+rVCQ0Ph4eGB4uJii+XFxcWIiIi4Zv3Tp0/jzJkzSE5ONi8zmUxNH8TTEzk5OejWrZvFNkqlEkqlstU1tXdNQzJ5ITEREbkuq4/cvPzyy1i5ciVWrVoFLy8v8/IRI0bgwIEDVr2WQqHAoEGDkJWVZV5mMpmQlZWFYcOGXbN+7969cfjwYWi1WvNPSkoKRo0aBa1Wy1NONnDw7EWcKqmCt5cck9SRUpdDRERkNauP3OTk5OD222+/ZnlQUBAuXrxodQGzZ89Geno6EhISMGTIECxfvhzV1dWYNm0aAGDq1KmIiorC0qVL4e3tjbi4OIvtg4ODAeCa5dQ26/c2nbab0D8Sgd5eN1mbiIjI+VgdbiIiInDq1CnExsZaLN+5c2eb2rLT0tJQWlqKBQsWoKioCBqNBps3bzZfZJyfnw+5nN06jlBjaMSX2ToAPCVFRESuy+pw8+ijj2LWrFlYvXo1ZDIZdDoddu/ejTlz5mD+/PltKmLGjBmYMWNGi8/dbOzDmjVr2vSedK1Nh4tQbTDilo6+GNolROpyiIiI2sTqcDN37lyYTCaMGTMGNTU1uP3226FUKjFnzhzMnDnTHjWSgzSfkpqSEMMhmURE5LJkQgjRlg0NBgNOnTqFqqoq9O3bF/7+/rauzS70ej2CgoJQUVGBwMBAqctxGrmlVRj9+nbIZcCuuaMRGeQjdUlERERm1nx/W33kpplCoUDfvn3bujk5mU/2N7V/396zE4MNERG5NKvDzahRo254yuLbb7/9VQWR4zUaTeZwwwuJiYjI1VkdbjQajcXjhoYGaLVaHDlyBOnp6baqixzo+59LUVJZjxA/BRL7hN98AyIiIidmdbj5+9//3uLyF154AVVVVb+6IHK89XubjtpM1nBIJhERuT6bfZP9/ve/x+rVq231cuQg56vqsfV40/iLKYOjJa6GiIjo17NZuNm9eze8vb1t9XLkIJ8fLECjSUAdHYTeEeweIyIi12f1aam7777b4rEQAoWFhdi3b1+bb+JH0hBCYN2le9vcxwuJiYjITVgdboKCgiwey+Vy9OrVCy+++CLGjh1rs8LI/rLPVeDnkiooPeVIVqukLoeIiMgmrAo3RqMR06ZNQ//+/dGhQwd71UQO0nzUZnxcBIJ8OCSTiIjcg1XX3Hh4eGDs2LFtmv5NzqXWYLw8JHMwT0kREZH7sPqC4ri4OOTm5tqjFnKgr48Uoqq+ETEhPvhNl45Sl0NERGQzVoebl19+GXPmzMFXX32FwsJC6PV6ix9yDev3XbqQeFAM5HIOySQiIvfR6mtuXnzxRfzpT3/ChAkTAAApKSkWYxiEEJDJZDAajbavkmzql/PV+DG3HDIZcO8g3tuGiIjcS6vDzaJFi/D444/ju+++s2c95AAb9jXdkfi2Hp2gCuaQTCIici+tDjdCCADAyJEj7VYM2Z/RJK4YksmjNkRE5H6suubmRtPAyTV8/3MpivR1CPb1wp19OSSTiIjcj1X3uenZs+dNA055efmvKojsa8OlC4kna6Kg9PSQuBoiIiLbsyrcLFq06Jo7FJPrKK824Jtjl4ZkctwCERG5KavCzW9/+1uEhYXZqxaysy8OFqDBKBAXFYi+Kg7JJCIi99Tqa254vY1rE0KY722TxqM2RETkxlodbpq7pcg1HS6owImiSig85UhRR0ldDhERkd20+rSUyWSyZx1kZ81Hbcb1i0CQL4dkEhGR+7J6/AK5nroGIzK0TUMy0zgkk4iI3BzDTTuw+UgRKusaERXsg2FdOSSTiIjcG8NNO2AekpkQzSGZRETk9hhu3Fz++Rr8cPo8h2QSEVG7wXDj5j7Z33TU5tbuoYju4CtxNURERPbHcOPGrhySeR/vbUNERO0Ew40b23WqDLqKOgT5eGEsh2QSEVE7wXDjxtaZh2Sq4O3FIZlERNQ+MNy4qQvVBnxztGlIJk9JERFRe8Jw46YytAUwGE3oGxmIuChOciciovaD4cYNCSGwbl/ThcS8IzEREbU3DDdu6KhOj+OFeig85EjVqKQuh4iIyKEYbtxQ8x2Jx/YLR7CvQuJqiIiIHIvhxs3UNRjxxcECAMAUXkhMRETtEMONm9lytAj6S0MyR3QPlbocIiIih2O4cTMbLl1IfM+gaHhwSCYREbVDDDdu5Gx5DXadLgMA3MchmURE1E4x3LiRT/afgxDAiO4dERPCIZlERNQ+Mdy4CdMVQzJ5ITEREbVnDDdu4ofT51FwsRYB3p5I6hchdTlERESSYbhxE81DMlM5JJOIiNo5hhs3cLHGgC1HiwAAaQmdJa6GiIhIWgw3biAzWwdDowm9IwIQFxUodTlERESSYrhxA83jFqYkxEAm471tiIiofWO4cXFHdRU4UtA0JPOuAVFSl0NERCQ5hhsX13xH4jv7hqODH4dkEhERMdy4sLoGIz6/NCTzvgTekZiIiAhguHFp3xwrRkVtAyKDvHFbj05Sl0NEROQUGG5cWPOFxPdySCYREZEZw42LKrhYi52nmoZk3sshmURERGYMNy7q00tDMn/TNQS3dPSTuhwiIiKnwXDjgkwmYT4llTaYQzKJiIiu5BThZsWKFYiNjYW3tzeGDh2KPXv2XHfdVatW4bbbbkOHDh3QoUMHJCYm3nB9d/Rj7nmcu1CLAKUnxvWLlLocIiIipyJ5uFm3bh1mz56NhQsX4sCBA1Cr1UhKSkJJSUmL62/btg2/+93v8N1332H37t2IiYnB2LFjUVBQ4ODKpdN81CZZo4KPgkMyiYiIriQTQggpCxg6dCgGDx6Mt956CwBgMpkQExODmTNnYu7cuTfd3mg0okOHDnjrrbcwderUm66v1+sRFBSEiooKBAa63hymitoGDFm8FfWNJmRMHwF1TLDUJREREdmdNd/fkh65MRgM2L9/PxITE83L5HI5EhMTsXv37la9Rk1NDRoaGhASEtLi8/X19dDr9RY/riwzW4f6RhN6hQcgPjpI6nKIiIicjqThpqysDEajEeHh4RbLw8PDUVRU1KrXeOaZZ6BSqSwC0pWWLl2KoKAg809MjGtfgLvh0imp+xKiOSSTiIioBZJfc/NrvPLKK1i7di0+//xzeHt7t7jOvHnzUFFRYf45e/asg6u0neOFehw6VwEvDxmHZBIREV2Hp5RvHhoaCg8PDxQXF1ssLy4uRkRExA23/dvf/oZXXnkFW7duRXx8/HXXUyqVUCqVNqlXas0XEif2CUdHf/f4TERERLYm6ZEbhUKBQYMGISsry7zMZDIhKysLw4YNu+52r776Kl566SVs3rwZCQkJjihVcvWNRnxxaUjmlATXPrVGRERkT5IeuQGA2bNnIz09HQkJCRgyZAiWL1+O6upqTJs2DQAwdepUREVFYenSpQCAv/71r1iwYAE+/vhjxMbGmq/N8ff3h7+/v2Sfw96yjpfgQk0DwgOVuK1HqNTlEBEROS3Jw01aWhpKS0uxYMECFBUVQaPRYPPmzeaLjPPz8yGXXz7A9M4778BgMODee++1eJ2FCxfihRdecGTpDrVu7+UhmZ4eLn2pFBERkV1Jfp8bR3PF+9zoLtZixF+/hRDAtjl3IDaUs6SIiKh9cZn73FDrfHagaUjmkC4hDDZEREQ3wXDj5JqGZJ4DwAuJiYiIWoPhxsn9lFeO/PIa+Cs9MaH/jdvjiYiIiOHG6TXfkThZHQlfheTXfxMRETk9hhsnpq9rwKYjhQCA+3hKioiIqFUYbpzYl9k61DWY0CPMHwM4/ZuIiKhVGG6c2JUXEnNIJhERUesw3DipnKJKZJ+9CE+5DJM5JJOIiKjVGG6cVPOQzNG9w9ApgEMyiYiIWovhxgkZGk34/NKQzLTBvJCYiIjIGgw3TujbE8UorzagU4ASI3t2krocIiIil8Jw44SaLyS+ZyCHZBIREVmL35xOpqiiDttySgAAUxKiJa6GiIjI9TDcOJlPD5yDSQCDYzugayd/qcshIiJyOQw3TkQIYR63wDsSExERtQ3DjRPZk1eOM+dr4KfwwMT+kVKXQ0RE5JIYbpxI84XEk+JV8FNySCYREVFbMNw4icq6Bmw63DQkc8pgXkhMRETUVgw3TmLjoULUNhjRtZMfBnbuIHU5RERELovhxkmsu3QhcRqHZBIREf0qDDdO4OfiShzMvwgPuQx3DeSQTCIiol+D4cYJbNjfdCHxqF5hCAvwlrgaIiIi18ZwI7EGowmfHWgKNxySSURE9Osx3Ejs2xMlKKsyINRfiTt6cUgmERHRr8VwI7HmOxLfMzAKXhySSURE9Kvx21RCJfo6fJdTCoDjFoiIiGyF4UZCnx4ogNEkMOiWDugexiGZREREtsBwI5Erh2ROSeAdiYmIiGyF4UYi+3+5gNyyavgqPDAxXiV1OURERG6D4UYi6/Y2HbWZ2D8S/hySSUREZDMMNxKoqm/ERvOQTF5ITEREZEsMNxLYdKgQNQYjuob6IeEWDskkIiKyJYYbCTQPybyPQzKJiIhsjuHGwU6VVGH/LxfgIZfhHg7JJCIisjmGGwfbsL/pqM0dPTshLJBDMomIiGyN4caBGowmfLq/AADvSExERGQvDDcOtC2nFGVV9Qj1V2BMnzCpyyEiInJLDDcOtP7ShcR3DeCQTCIiInvhN6yDlFTW4dsTJQCAKTwlRUREZDcMNw7y+aUhmQM6B6NHeIDU5RAREbkthhsHEEKYT0nxqA0REZF9Mdw4wIH8izhdWg1vLzkmxUdKXQ4REZFbY7hxgA2XjtpM6B+JAG8viashIiJybww3dlZd34gvs3UAgDSekiIiIrI7hhs723S4ENUGI2I7+mJIlxCpyyEiInJ7DDd2tmHfOQAckklEROQoDDd2lFtahT1nyiGXAfcMjJa6HCIionaB4caONuxvOmozsmcnRARxSCYREZEjMNzYSaPRhE8vhRve24aIiMhxGG7sZPvJUpRU1iPET4ExfcKlLoeIiKjdYLixkyuHZCo8uZuJiIgchd+6dlBWVY+s4xySSUREJAWGGzv44mABGk0C6ugg9IrgkEwiIiJHYrixMSEE1u29NCRzMI/aEBERORrDjY1pz17EzyVVUHrKkaxWSV0OERFRu8NwY2PrL92ReEL/SARySCYREZHDOUW4WbFiBWJjY+Ht7Y2hQ4diz549N1x/w4YN6N27N7y9vdG/f39s2rTJQZXeWI3h8pBMXkhMREQkDcnDzbp16zB79mwsXLgQBw4cgFqtRlJSEkpKSlpc/4cffsDvfvc7PPzwwzh48CAmT56MyZMn48iRIw6u/FpfHy5CVX0jOof4YiiHZBIREUlCJoQQUhYwdOhQDB48GG+99RYAwGQyISYmBjNnzsTcuXOvWT8tLQ3V1dX46quvzMt+85vfQKPRYOXKlTd9P71ej6CgIFRUVCAwMNB2HwRA2j9346e8cvzpzp6YOaaHTV+biIioPbPm+1vSIzcGgwH79+9HYmKieZlcLkdiYiJ2797d4ja7d++2WB8AkpKSrrt+fX099Hq9xY89nCmrxk955ZDJgHsGcUgmERGRVCQNN2VlZTAajQgPtxxPEB4ejqKioha3KSoqsmr9pUuXIigoyPwTE2Ofa2Hyy2sQFqDE7T06QRXsY5f3ICIiopuT/Jobe5s3bx4qKirMP2fPnrXL+9zesxN+mDsar90Xb5fXJyIiotbxlPLNQ0ND4eHhgeLiYovlxcXFiIiIaHGbiIgIq9ZXKpVQKpW2KfgmPD3kCAvwdsh7ERERUcskPXKjUCgwaNAgZGVlmZeZTCZkZWVh2LBhLW4zbNgwi/UB4Jtvvrnu+kRERNS+SHrkBgBmz56N9PR0JCQkYMiQIVi+fDmqq6sxbdo0AMDUqVMRFRWFpUuXAgBmzZqFkSNH4vXXX8fEiROxdu1a7Nu3D++++66UH4OIiIichOThJi0tDaWlpViwYAGKioqg0WiwefNm80XD+fn5kMsvH2AaPnw4Pv74Yzz//PN49tln0aNHD3zxxReIi4uT6iMQERGRE5H8PjeOZs/73BAREZF9uMx9boiIiIhsjeGGiIiI3ArDDREREbkVhhsiIiJyKww3RERE5FYYboiIiMitMNwQERGRW2G4ISIiIrfCcENERERuRfLxC47WfENmvV4vcSVERETUWs3f260ZrNDuwk1lZSUAICYmRuJKiIiIyFqVlZUICgq64TrtbraUyWSCTqdDQEAAZDKZTV9br9cjJiYGZ8+e5dwqO+J+dgzuZ8fgfnYc7mvHsNd+FkKgsrISKpXKYqB2S9rdkRu5XI7o6Gi7vkdgYCD/4jgA97NjcD87Bvez43BfO4Y99vPNjtg04wXFRERE5FYYboiIiMitMNzYkFKpxMKFC6FUKqUuxa1xPzsG97NjcD87Dve1YzjDfm53FxQTERGRe+ORGyIiInIrDDdERETkVhhuiIiIyK0w3BAREZFbYbix0ooVKxAbGwtvb28MHToUe/bsueH6GzZsQO/eveHt7Y3+/ftj06ZNDqrUtVmzn1etWoXbbrsNHTp0QIcOHZCYmHjT3xdqYu2f52Zr166FTCbD5MmT7Vugm7B2P1+8eBHTp09HZGQklEolevbsyX87WsHa/bx8+XL06tULPj4+iImJwdNPP426ujoHVeuavv/+eyQnJ0OlUkEmk+GLL7646Tbbtm3DwIEDoVQq0b17d6xZs8budUJQq61du1YoFAqxevVqcfToUfHoo4+K4OBgUVxc3OL6u3btEh4eHuLVV18Vx44dE88//7zw8vIShw8fdnDlrsXa/Xz//feLFStWiIMHD4rjx4+Lhx56SAQFBYlz5845uHLXYu1+bpaXlyeioqLEbbfdJlJTUx1TrAuzdj/X19eLhIQEMWHCBLFz506Rl5cntm3bJrRarYMrdy3W7uePPvpIKJVK8dFHH4m8vDyxZcsWERkZKZ5++mkHV+5aNm3aJJ577jnx2WefCQDi888/v+H6ubm5wtfXV8yePVscO3ZMvPnmm8LDw0Ns3rzZrnUy3FhhyJAhYvr06ebHRqNRqFQqsXTp0hbXnzJlipg4caLFsqFDh4o//vGPdq3T1Vm7n6/W2NgoAgICxPvvv2+vEt1CW/ZzY2OjGD58uHjvvfdEeno6w00rWLuf33nnHdG1a1dhMBgcVaJbsHY/T58+XYwePdpi2ezZs8WIESPsWqc7aU24+ctf/iL69etnsSwtLU0kJSXZsTIheFqqlQwGA/bv34/ExETzMrlcjsTEROzevbvFbXbv3m2xPgAkJSVdd31q236+Wk1NDRoaGhASEmKvMl1eW/fziy++iLCwMDz88MOOKNPltWU/Z2ZmYtiwYZg+fTrCw8MRFxeHJUuWwGg0Oqpsl9OW/Tx8+HDs37/ffOoqNzcXmzZtwoQJExxSc3sh1fdguxuc2VZlZWUwGo0IDw+3WB4eHo4TJ060uE1RUVGL6xcVFdmtTlfXlv18tWeeeQYqleqav1B0WVv2886dO/Gvf/0LWq3WARW6h7bs59zcXHz77bd44IEHsGnTJpw6dQpPPvkkGhoasHDhQkeU7XLasp/vv/9+lJWV4dZbb4UQAo2NjXj88cfx7LPPOqLkduN634N6vR61tbXw8fGxy/vyyA25lVdeeQVr167F559/Dm9vb6nLcRuVlZV48MEHsWrVKoSGhkpdjlszmUwICwvDu+++i0GDBiEtLQ3PPfccVq5cKXVpbmXbtm1YsmQJ3n77bRw4cACfffYZNm7ciJdeeknq0sgGeOSmlUJDQ+Hh4YHi4mKL5cXFxYiIiGhxm4iICKvWp7bt52Z/+9vf8Morr2Dr1q2Ij4+3Z5kuz9r9fPr0aZw5cwbJycnmZSaTCQDg6emJnJwcdOvWzb5Fu6C2/HmOjIyEl5cXPDw8zMv69OmDoqIiGAwGKBQKu9bsitqyn+fPn48HH3wQjzzyCACgf//+qK6uxmOPPYbnnnsOcjn/728L1/seDAwMtNtRG4BHblpNoVBg0KBByMrKMi8zmUzIysrCsGHDWtxm2LBhFusDwDfffHPd9alt+xkAXn31Vbz00kvYvHkzEhISHFGqS7N2P/fu3RuHDx+GVqs1/6SkpGDUqFHQarWIiYlxZPkuoy1/nkeMGIFTp06ZwyMAnDx5EpGRkQw219GW/VxTU3NNgGkOlIIjF21Gsu9Bu16u7GbWrl0rlEqlWLNmjTh27Jh47LHHRHBwsCgqKhJCCPHggw+KuXPnmtfftWuX8PT0FH/729/E8ePHxcKFC9kK3grW7udXXnlFKBQK8cknn4jCwkLzT2VlpVQfwSVYu5+vxm6p1rF2P+fn54uAgAAxY8YMkZOTI7766isRFhYmXn75Zak+gkuwdj8vXLhQBAQEiP/+978iNzdX/O9//xPdunUTU6ZMkeojuITKykpx8OBBcfDgQQFALFu2TBw8eFD88ssvQggh5s6dKx588EHz+s2t4H/+85/F8ePHxYoVK9gK7ozefPNN0blzZ6FQKMSQIUPEjz/+aH5u5MiRIj093WL99evXi549ewqFQiH69esnNm7c6OCKXZM1+/mWW24RAK75WbhwoeMLdzHW/nm+EsNN61m7n3/44QcxdOhQoVQqRdeuXcXixYtFY2Ojg6t2Pdbs54aGBvHCCy+Ibt26CW9vbxETEyOefPJJceHCBccX7kK+++67Fv+9bd636enpYuTIkddso9FohEKhEF27dhX//ve/7V6nTAgefyMiIiL3wWtuiIiIyK0w3BAREZFbYbghIiIit8JwQ0RERG6F4YaIiIjcCsMNERERuRWGGyIiInIrDDdERETkVhhuiMjCmjVrEBwcLHUZbSaTyfDFF1/ccJ2HHnoIkydPdkg9ROR4DDdEbuihhx6CTCa75ufUqVNSl4Y1a9aY65HL5YiOjsa0adNQUlJik9cvLCzE+PHjAQBnzpyBTCaDVqu1WOeNN97AmjVrbPJ+1/PCCy+YP6eHhwdiYmLw2GOPoby83KrXYRAjsp6n1AUQkX2MGzcO//73vy2WderUSaJqLAUGBiInJwcmkwnZ2dmYNm0adDodtmzZ8qtfOyIi4qbrBAUF/er3aY1+/fph69atMBqNOH78OP7whz+goqIC69atc8j7E7VXPHJD5KaUSiUiIiIsfjw8PLBs2TL0798ffn5+iImJwZNPPomqqqrrvk52djZGjRqFgIAABAYGYtCgQdi3b5/5+Z07d+K2226Dj48PYmJi8NRTT6G6uvqGtclkMkREREClUmH8+PF46qmnsHXrVtTW1sJkMuHFF19EdHQ0lEolNBoNNm/ebN7WYDBgxowZiIyMhLe3N2655RYsXbrU4rWbT0t16dIFADBgwADIZDLccccdACyPhrz77rtQqVQwmUwWNaampuIPf/iD+XFGRgYGDhwIb29vdO3aFYsWLUJjY+MNP6enpyciIiIQFRWFxMRE3Hffffjmm2/MzxuNRjz88MPo0qULfHx80KtXL7zxxhvm51944QW8//77yMjIMB8F2rZtGwDg7NmzmDJlCoKDgxESEoLU1FScOXPmhvUQtRcMN0TtjFwuxz/+8Q8cPXoU77//Pr799lv85S9/ue76DzzwAKKjo7F3717s378fc+fOhZeXFwDg9OnTGDduHO655x4cOnQI69atw86dOzFjxgyravLx8YHJZEJjYyPeeOMNvP766/jb3/6GQ4cOISkpCSkpKfj5558BAP/4xz+QmZmJ9evXIycnBx999BFiY2NbfN09e/YAALZu3YrCwkJ89tln16xz33334fz58/juu+/My8rLy7F582Y88MADAIAdO3Zg6tSpmDVrFo4dO4Z//vOfWLNmDRYvXtzqz3jmzBls2bIFCoXCvMxkMiE6OhobNmzAsWPHsGDBAjz77LNYv349AGDOnDmYMmUKxo0bh8LCQhQWFmL48OFoaGhAUlISAgICsGPHDuzatQv+/v4YN24cDAZDq2siclt2nztORA6Xnp4uPDw8hJ+fn/nn3nvvbXHdDRs2iI4dO5of//vf/xZBQUHmxwEBAWLNmjUtbvvwww+Lxx57zGLZjh07hFwuF7W1tS1uc/Xrnzx5UvTs2VMkJCQIIYRQqVRi8eLFFtsMHjxYPPnkk0IIIWbOnClGjx4tTCZTi68PQHz++edCCCHy8vIEAHHw4EGLddLT00Vqaqr5cWpqqvjDH/5gfvzPf/5TqFQqYTQahRBCjBkzRixZssTiNT788EMRGRnZYg1CCLFw4UIhl8uFn5+f8Pb2FgAEALFs2bLrbiOEENOnTxf33HPPdWttfu9evXpZ7IP6+nrh4+MjtmzZcsPXJ2oPeM0NkZsaNWoU3nnnHfNjPz8/AE1HMZYuXYoTJ05Ar9ejsbERdXV1qKmpga+v7zWvM3v2bDzyyCP48MMPzadWunXrBqDplNWhQ4fw0UcfmdcXQsBkMiEvLw99+vRpsbaKigr4+/vDZDKhrq4Ot956K9577z3o9XrodDqMGDHCYv0RI0YgOzsbQNMppTvvvBO9evXCuHHjMGnSJIwdO/ZX7asHHngAjz76KN5++20olUp89NFH+O1vfwu5XG7+nLt27bI4UmM0Gm+43wCgV69eyMzMRF1dHf7zn/9Aq9Vi5syZFuusWLECq1evRn5+Pmpra2EwGKDRaG5Yb3Z2Nk6dOoWAgACL5XV1dTh9+nQb9gCRe2G4IXJTfn5+6N69u8WyM2fOYNKkSXjiiSewePFihISEYOfOnXj44YdhMBha/JJ+4YUXcP/992Pjxo34+uuvsXDhQqxduxZ33XUXqqqq8Mc//hFPPfXUNdt17tz5urUFBATgwIEDkMvliIyMhI+PDwBAr9ff9HMNHDgQeXl5+Prrr7F161ZMmTIFiYmJ+OSTT2667fUkJydDCIGNGzdi8ODB2LFjB/7+97+bn6+qqsKiRYtw9913X7Ott7f3dV9XoVCYfw9eeeUVTJw4EYsWLcJLL70EAFi7di3mzJmD119/HcOGDUNAQABee+01/PTTTzest6qqCoMGDbIIlc2c5aJxIikx3BC1I/v374fJZMLrr79uPirRfH3HjfTs2RM9e/bE008/jd/97nf497//jbvuugsDBw7EsWPHrglRNyOXy1vcJjAwECqVCrt27cLIkSPNy3ft2oUhQ4ZYrJeWloa0tDTce++9GDduHMrLyxESEmLxes3XtxiNxhvW4+3tjbvvvhsfffQRTp06hV69emHgwIHm5wcOHIicnByrP+fVnn/+eYwePRpPPPGE+XMOHz4cTz75pHmdq4+8KBSKa+ofOHAg1q1bh7CwMAQGBv6qmojcES8oJmpHunfvjoaGBrz55pvIzc3Fhx9+iJUrV153/draWsyYMQPbtm3DL7/8gl27dmHv3r3m003PPPMMfvjhB8yYMQNarRY///wzMjIyrL6g+Ep//vOf8de//hXr1q1DTk4O5s6dC61Wi1mzZgEAli1bhv/+9784ceIETp48iQ0bNiAiIqLFGw+GhYXBx8cHmzdvRnFxMSoqKq77vg888AA2btyI1atXmy8kbrZgwQJ88MEHWLRoEY4ePYrjx49j7dq1eP755636bMOGDUN8fDyWLFkCAOjRowf27duHLVu24OTJk5g/fz727t1rsU1sbCwOHTqEnJwclJWVoaGhAQ888ABCQ0ORmpqKHTt2IC8vD9u2bcNTTz2Fc+fOWVUTkVuS+qIfIrK9li5CbbZs2TIRGRkpfHx8RFJSkvjggw8EAHHhwgUhhOUFv/X19eK3v/2tiImJEQqFQqhUKjFjxgyLi4X37Nkj7rzzTuHv7y/8/PxEfHz8NRcEX+nqC4qvZjQaxQsvvCCioqKEl5eXUKvV4uuvvzY//+677wqNRiP8/PxEYGCgGDNmjDhw4ID5eVxxQbEQQqxatUrExMQIuVwuRo4ced39YzQaRWRkpAAgTp8+fU1dmzdvFsOHDxc+Pj4iMDBQDBkyRLz77rvX/RwLFy4UarX6muX//e9/hVKpFPn5+aKurk489NBDIigoSAQHB4snnnhCzJ0712K7kpIS8/4FIL777jshhBCFhYVi6tSpIjQ0VCiVStG1a1fx6KOPioqKiuvWRNReyIQQQtp4RURERGQ7PC1FREREboXhhoiIiNwKww0RERG5FYYbIiIicisMN0RERORWGG6IiIjIrTDcEBERkVthuCEiIiK3wnBDREREboXhhoiIiNwKww0RERG5lf8HmD6mgZ/DZLwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from sklearn.model_selection import train_test_split, GridSearchCV\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression, LogisticRegression\n", + "from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier\n", + "from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "from sklearn import metrics\n", + "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score, accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, ConfusionMatrixDisplay\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "\n", + "# Создаем преобразователь для категориальных и числовых столбцов\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Список моделей и их гиперпараметров для задачи регрессии\n", + "models_reg = {\n", + " \"Linear Regression\": (LinearRegression(), {}),\n", + " \"Random Forest Regression\": (RandomForestRegressor(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__max_depth': [None, 10, 20]\n", + " }),\n", + " \"Gradient Boosting Regression\": (GradientBoostingRegressor(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__learning_rate': [0.01, 0.1],\n", + " 'model__max_depth': [3, 5]\n", + " })\n", + "}\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи регрессии\n", + "X_reg = df[numerical_cols]\n", + "y_reg = df['Volume']\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи регрессии\n", + "X_train_reg, X_test_reg, y_train_reg, y_test_reg = train_test_split(X_reg, y_reg, test_size=0.2, random_state=42)\n", + "\n", + "# Обучаем и оцениваем модели для задачи регрессии\n", + "print(\"Результаты для задачи регрессии:\")\n", + "for name, (model, params) in models_reg.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " grid_search = GridSearchCV(pipeline, params, cv=5, scoring='neg_mean_absolute_error')\n", + " grid_search.fit(X_train_reg, y_train_reg)\n", + " best_model = grid_search.best_estimator_\n", + " y_pred_reg = best_model.predict(X_test_reg)\n", + " mae = mean_absolute_error(y_test_reg, y_pred_reg)\n", + " mse = mean_squared_error(y_test_reg, y_pred_reg)\n", + " rmse = mean_squared_error(y_test_reg, y_pred_reg, squared=False)\n", + " r2 = r2_score(y_test_reg, y_pred_reg)\n", + " print(f\"Model: {name}\")\n", + " print(f\"Best Parameters: {grid_search.best_params_}\")\n", + " print(f\"MAE: {mae}\")\n", + " print(f\"MSE: {mse}\")\n", + " print(f\"RMSE: {rmse}\")\n", + " print(f\"R²: {r2}\")\n", + " print()\n", + "\n", + "# Список моделей и их гиперпараметров для задачи классификации\n", + "models_class = {\n", + " \"Logistic Regression\": (LogisticRegression(), {\n", + " 'model__C': [0.1, 1, 10],\n", + " 'model__solver': ['liblinear', 'lbfgs']\n", + " }),\n", + " \"Random Forest Classification\": (RandomForestClassifier(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__max_depth': [None, 10, 20]\n", + " }),\n", + " \"Gradient Boosting Classification\": (GradientBoostingClassifier(), {\n", + " 'model__n_estimators': [100, 200],\n", + " 'model__learning_rate': [0.01, 0.1],\n", + " 'model__max_depth': [3, 5]\n", + " })\n", + "}\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи классификации\n", + "X_class = df[numerical_cols]\n", + "y_class = (df['Volume'] > df['Volume'].mean()).astype(int)\n", + "\n", + "# Разделяем данные на обучающую и тестовую выборки для задачи классификации\n", + "X_train_class, X_test_class, y_train_class, y_test_class = train_test_split(X_class, y_class, test_size=0.2, random_state=42)\n", + "\n", + "# Обучаем и оцениваем модели для задачи классификации\n", + "print(\"Результаты для задачи классификации:\")\n", + "for name, (model, params) in models_class.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " grid_search = GridSearchCV(pipeline, params, cv=5, scoring='accuracy')\n", + " grid_search.fit(X_train_class, y_train_class)\n", + " best_model = grid_search.best_estimator_\n", + " y_pred_class = best_model.predict(X_test_class)\n", + " accuracy = accuracy_score(y_test_class, y_pred_class)\n", + " precision = precision_score(y_test_class, y_pred_class)\n", + " recall = recall_score(y_test_class, y_pred_class)\n", + " f1 = f1_score(y_test_class, y_pred_class)\n", + " print(f\"Model: {name}\")\n", + " print(f\"Best Parameters: {grid_search.best_params_}\")\n", + " print(f\"Accuracy: {accuracy}\")\n", + " print(f\"Precision: {precision}\")\n", + " print(f\"Recall: {recall}\")\n", + " print(f\"F1-score: {f1}\")\n", + " print()\n", + "\n", + " # Визуализация матрицы ошибок\n", + " cm = confusion_matrix(y_test_class, y_pred_class)\n", + " disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=['Less', 'More'])\n", + " disp.plot(cmap=plt.cm.Blues)\n", + " plt.title(f'Confusion Matrix for {name}')\n", + " plt.show()\n", + "\n", + " fpr, tpr, _ = metrics.roc_curve(y_test_class, y_pred_class)\n", + "# построение ROC кривой\n", + "plt.plot(fpr, tpr)\n", + "plt.ylabel(\"True Positive Rate\")\n", + "plt.xlabel(\"False Positive Rate\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Давайте проанализируем полученные значения метрик и определим, являются ли они нормальными или их можно улучшить.\n", + "\n", + "### Оценка смещения и дисперсии для задачи регрессии:\n", + "\n", + "### Вывод для задачи регрессии:\n", + "\n", + "- **Random Forest Regression** демонстрирует наилучшие результаты по метрикам MAE и R², что указывает на высокую точность и стабильность модели.\n", + "- **Linear Regression** и **Gradient Boosting Regression** также показывают хорошие результаты, но уступают случайному лесу.\n", + "\n", + "### Вывод для задачи классификации:\n", + "\n", + "- **Random Forest Classification** демонстрирует наилучшие результаты по всем метрикам (Accuracy, Precision, Recall, F1-score), что указывает на высокую точность и стабильность модели.\n", + "- **Logistic Regression** и **Gradient Boosting Classification** также показывают хорошие результаты, но уступают случайному лесу.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Для оценки смещения (bias) и дисперсии (variance) моделей можно использовать метод перекрестной проверки (cross-validation). Этот метод позволяет оценить, насколько хорошо модель обобщается на новых данных.\n", + "\n", + "Оценка смещения и дисперсии для задачи регрессии:\n", + "Для задачи регрессии мы будем использовать метрики MAE (Mean Absolute Error) и R² (R-squared) для оценки смещения и дисперсии.\n", + "\n", + "Оценка смещения и дисперсии для задачи классификации:\n", + "Для задачи классификации мы будем использовать метрики Accuracy, Precision, Recall и F1-score для оценки смещения и дисперсии.\n", + "\n", + "Пример кода для оценки смещения и дисперсии:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Оценка смещения и дисперсии для задачи регрессии:\n", + "Model: Linear Regression\n", + "MAE (Cross-Validation): Mean = 7579277.52146407, Std = 1960011.680230821\n", + "R² (Cross-Validation): Mean = -1.1347990784665156, Std = 2.3065621849539713\n", + "\n", + "Model: Random Forest Regression\n", + "MAE (Cross-Validation): Mean = 7754522.700048141, Std = 3427659.014394425\n", + "R² (Cross-Validation): Mean = -0.1137304863970167, Std = 0.10810217770802126\n", + "\n", + "Model: Gradient Boosting Regression\n", + "MAE (Cross-Validation): Mean = 7910587.394275409, Std = 3532347.1554693393\n", + "R² (Cross-Validation): Mean = -0.10880312818598341, Std = 0.09273172751065643\n", + "\n", + "Оценка смещения и дисперсии для задачи классификации:\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: Logistic Regression\n", + "Accuracy (Cross-Validation): Mean = 0.5892532514775223, Std = 0.12093239665054567\n", + "Precision (Cross-Validation): Mean = 0.35360976489674945, Std = 0.34878959634336554\n", + "Recall (Cross-Validation): Mean = 0.41634103019538193, Std = 0.47748852647480444\n", + "F1-score (Cross-Validation): Mean = 0.26337058226161625, Std = 0.2700065991354378\n", + "\n", + "Model: Random Forest Classification\n", + "Accuracy (Cross-Validation): Mean = 0.3738199946131199, Std = 0.16695202153057834\n", + "Precision (Cross-Validation): Mean = 0.39963086106197504, Std = 0.30512484964621966\n", + "Recall (Cross-Validation): Mean = 0.4790421167740182, Std = 0.28385647570934136\n", + "F1-score (Cross-Validation): Mean = 0.32536359853243246, Std = 0.10078029932440838\n", + "\n", + "Model: Gradient Boosting Classification\n", + "Accuracy (Cross-Validation): Mean = 0.32652713408687734, Std = 0.1786304773405863\n", + "Precision (Cross-Validation): Mean = 0.36258531023350526, Std = 0.3286759742498122\n", + "Recall (Cross-Validation): Mean = 0.38053955993249183, Std = 0.33220983429058126\n", + "F1-score (Cross-Validation): Mean = 0.23724814757869944, Std = 0.15518424638633993\n", + "\n" + ] + } + ], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression, LogisticRegression\n", + "from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier\n", + "from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "# Определяем категориальные и числовые столбцы\n", + "\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "\n", + "# Создаем преобразователь для категориальных и числовых столбцов\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи регрессии\n", + "X_reg = df[numerical_cols]\n", + "y_reg = df['Volume']\n", + "\n", + "# Список моделей для задачи регрессии\n", + "models_reg = {\n", + " \"Linear Regression\": LinearRegression(),\n", + " \"Random Forest Regression\": RandomForestRegressor(),\n", + " \"Gradient Boosting Regression\": GradientBoostingRegressor()\n", + "}\n", + "\n", + "# Оценка смещения и дисперсии для задачи регрессии\n", + "print(\"Оценка смещения и дисперсии для задачи регрессии:\")\n", + "for name, model in models_reg.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " mae_scores = -cross_val_score(pipeline, X_reg, y_reg, cv=5, scoring='neg_mean_absolute_error')\n", + " r2_scores = cross_val_score(pipeline, X_reg, y_reg, cv=5, scoring='r2')\n", + " print(f\"Model: {name}\")\n", + " print(f\"MAE (Cross-Validation): Mean = {mae_scores.mean()}, Std = {mae_scores.std()}\")\n", + " print(f\"R² (Cross-Validation): Mean = {r2_scores.mean()}, Std = {r2_scores.std()}\")\n", + " print()\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи классификации\n", + "X_class = df[numerical_cols]\n", + "y_class = (df['Volume'] > df['Volume'].mean()).astype(int)\n", + "\n", + "# Список моделей для задачи классификации\n", + "models_class = {\n", + " \"Logistic Regression\": LogisticRegression(),\n", + " \"Random Forest Classification\": RandomForestClassifier(),\n", + " \"Gradient Boosting Classification\": GradientBoostingClassifier()\n", + "}\n", + "\n", + "# Оценка смещения и дисперсии для задачи классификации\n", + "print(\"Оценка смещения и дисперсии для задачи классификации:\")\n", + "for name, model in models_class.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " accuracy_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='accuracy')\n", + " precision_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='precision')\n", + " recall_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='recall')\n", + " f1_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='f1')\n", + " print(f\"Model: {name}\")\n", + " print(f\"Accuracy (Cross-Validation): Mean = {accuracy_scores.mean()}, Std = {accuracy_scores.std()}\")\n", + " print(f\"Precision (Cross-Validation): Mean = {precision_scores.mean()}, Std = {precision_scores.std()}\")\n", + " print(f\"Recall (Cross-Validation): Mean = {recall_scores.mean()}, Std = {recall_scores.std()}\")\n", + " print(f\"F1-score (Cross-Validation): Mean = {f1_scores.mean()}, Std = {f1_scores.std()}\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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daut7TzwwAP6448/NGzYMIWHh+v48eNauXKlDh06ZHseFRWloKAgjR49WiVKlNCBAweueurZH3/8obvvvlsBAQEaNWqUPDw8NGPGDLVs2VLfffedGjVqZDf+sGHDVLJkScXGxurAgQOaPHmyhg4d6nAUXU7uuecelS9fXvPnz7ftfxYuXCh/f/9sj2DKa5swxuj+++/XunXr9Pjjj6tmzZr67LPP1KdPn2zX+Vr2JSkpKYqOjlZycrKGDRumkJAQHTlyRF999ZXOnDmj4sWL52kbALi+ZAY5V34XZOdq+2JJeuGFFzRu3Di1b99e7du315YtWxQVFWXpiOf89DGz68NkZGSoU6dOWrdunR577DHVrFlTv/32myZNmqTdu3dryZIltukfffRRffjhh+rRo4eaNm2qb7/9Ns9HmB45ckSHDh3Ktd9ypcwfja48wuiXX35R165dNWfOHN11110O0915553ZBjFZTZ48Wf/3f/+nzz77zHbKWma/cuzYsYqLi1NkZKQGDRqkXbt2adq0afrll1/svuul3PuF+VlPyb6dffvtt2rXrp0iIiIUGxsrV1dXzZkzR/fee69++OEH2xH2W7duVdu2bRUaGqq4uDilp6frxRdftP0we6Vvv/1WH3/8sYYOHarSpUsrPDxcx44dU+PGjW3hTVBQkL755hv1799fiYmJtputzJw5U8OHD1eXLl30xBNP6NKlS/r111/1008/2f7OePzxx7Vo0SINHTpUtWrV0qlTp7Ru3Trt2LEjx/feGKNOnTppzZo16t+/v+rVq6fly5fr6aef1pEjRxyOJl+3bp0+/fRTDR48WMWKFdNbb72lBx54QIcOHVKpUqXytM27d++uDz/8UK+++qpcXFx08uRJrVixQh988EG2YVVe28R7772ngQMHqmnTphoxYoT279+vTp06KTAwUGFhYbb55edzl10t48eP16OPPqqGDRsqMTFRmzZt0pYtWzj66mZncEOYM2eOkWR++eUXM2XKFFOsWDFz4cIFY4wxDz74oGnVqpUxxpiKFSuaDh062Kb74YcfjCQzb948u/ktW7bMYXjm/LIaOHCg8fX1NZcuXbINa9GihZFk/u///s82LDk52YSEhJgHHnggT+tz3333mWbNmtmev/vuu8bd3d0cP37cbrw+ffoYSWbYsGG2YRkZGaZDhw7G09PTnDhxwhhjzBNPPGECAgJMWlpajsscMWKEkWR++OEH27Bz586ZSpUqmfDwcJOenm6MMSY+Pt5IMnPmzLFb5xYtWjjMs0+fPqZixYq25ydOnDCSTGxsrMO4rVu3NnXq1LHblhkZGaZp06amatWqOdadSVKO/xYsWGBXqyQzffp0u+kz1ysgIMBhO9erV8+UKVPGnDp1yjZs+/btxtXV1fTu3ds2LDY21kgy3bt3v2q9xhgza9YsI8n89ttvDq9lttW0tDQTEhJiXnrpJWOMMX/++aeRZL777ju7dp/VokWLjCSzZ88eY4wxiYmJxtvb20yaNCnbdc7p38aNGx3q8vT0NIMGDbrqul35WTPGmMmTJxtJ5sMPP7QNS0lJMU2aNDH+/v4mMTHRrq7s3ovclhcVFWVOnDhhTpw4YX777TfTq1cvI8kMGTLENl5eP/NHjx417u7upnPnznbjjR071kgyffr0sQ3LfB+aN29u9xk7d+6cKVGihBkwYIDdPI4ePWqKFy9uG3769GkjyUyYMCHH9fvss8+yfa+vdOXnq3PnzsbT09Ps27fPNuzvv/82xYoVM/fcc4/DOkRGRpqMjAzb8JEjRxo3Nzdz5syZXJeb2fZPnDhhnnrqKVOlShXba3fddZfp16+frb6s70de28SSJUuMJPP666/bxktLSzN33323w/4or/uSNWvWGElmzZo1xhhjtm7daiSZTz75JNd1BXB9ytyPrVq1ypw4ccIcPnzYLFq0yAQFBRkvLy9z+PDhXKfPy774+PHjxtPT03To0MFuX/mf//zH4bshc7+YU53x8fG2YfntY17Zh/nggw+Mq6urXR/OGGOmT59uJJn169cbY4zZtm2bkWQGDx5sN16PHj1y7J9ltWrVKiPJfPnllw6vtWjRwtSoUcP2Pbxz507z9NNPG0kO/YGff/7ZhISEmM8++yzHZT322GPGx8cn13qMsf/+yZT5PkVFRdn6r8YYM2XKFCPJzJ49267u7Lbp1Za3a9cuc+LECXPgwAEze/Zs4+PjY4KCgkxSUpIx5vL3TtWqVU10dLRdW7lw4YKpVKmSadOmjW1Yx44dja+vrzly5Iht2J49e4y7u7tDG5JkXF1dzR9//GE3vH///iY0NNScPHnSbvhDDz1kihcvbmtj999/v7n99ttzXcfixYvbfVdn58o+fub39Lhx4+zG69Kli3FxcTF79+61WwdPT0+7Ydu3bzeSzNtvv53rcjP7iBMmTDC///673d8uU6dONf7+/iYpKcn06dPH+Pn52abLa5tISUkxZcqUMfXq1TPJycm28d59910jye7vnbx+7oy53E/Nun+oW7euw+cCtwZOkbsBZZ5S9tVXX+ncuXP66quvcjw145NPPlHx4sXVpk0bnTx50vYvIiJC/v7+dud++/j42B6fO3dOJ0+e1N13360LFy7YnQ4iSf7+/urZs6ftuaenpxo2bKj9+/dftf5Tp05p+fLl6t69u23YAw88IBcXF3388cfZTpP1rkyZv1ykpKRo1apVki4fiZKUlJTrYZdLly5Vw4YN7U7p8vf312OPPaYDBw7k+/Sk/Pjnn3/07bffqmvXrrZte/LkSZ06dUrR0dHas2dPnu4Ac//992vlypUO/1q1amU3npeXl/r165ftPB544AG7X4wSEhK0bds29e3b1+4ImjvuuENt2rTR0qVLHeaR17vWnTp1SlLuv6q6ubmpa9eutuvazJs3T2FhYbZDsbMzb948NWjQwHaxy8zTsnI6Te6xxx7LdrvVqlXLYdySJUtme7RTXixdulQhISF2bdvDw0PDhw/X+fPn9d1339mNf+V7cTUrVqxQUFCQgoKCVKdOHX3wwQfq16+f3a+/ef3Mr169WmlpaRo8eLDdMoYNG5bj8gcMGCA3Nzfb85UrV+rMmTPq3r273bLc3NzUqFEj27J8fHzk6emptWvXOpymlynzl9+vvvpKqampedoe6enpWrFihTp37qzbbrvNNjw0NFQ9evTQunXrlJiYaDfNY489Znc4/t1336309PR83Yq6R48e2rt3r3755Rfb/zntg/PaJpYuXSp3d3cNGjTINp6bm5vD+2FlX5J5hNLy5cuL/JomAApOZGSkgoKCFBYWpi5dusjPz09ffPGF3anL2cnLvnjVqlVKSUlxuPh05tEh1yo/fczs+jCffPKJatasqRo1ath939x7772SZPu+yeyzDB8+3G76vNZ/tX7Lzp07bd/DNWrU0IQJE9SpUyfNnTvXbrzOnTvLxcVFkydPVsuWLXX//fc7zKtkyZK6ePHiNe2PM9+nESNG2F3facCAAQoICHC4/ENu/cKcVK9eXUFBQQoPD9cjjzyiKlWq6JtvvpGvr6+kyxdD37Nnj3r06KFTp07Z3pOkpCS1bt1a33//vTIyMpSenq5Vq1apc+fOKlu2rG3+VapUyfGshxYtWtj10YwxWrx4sTp27ChjjF0biI6O1tmzZ22nt5UoUUJ//fWXfvnllxzXrUSJEvrpp5/0999/53l7LF26VG5ubg5t68knn5QxxuGO2JGRkbYj86XL/eqAgIA8/a2U6fbbb9cdd9xh6yPPnz9f999/v+09yCqvbWLTpk06fvy4Hn/8cbuzHzJP0c8qr5+77JQoUUJ//PGH9uzZk+f1xc3hlj5F7vvvv9eECRO0efNmJSQk6LPPPlPnzp3zPH3mYYhX8vX1LdQL4AYFBSkyMlLz58/XhQsXlJ6eri5dumQ77p49e3T27FmVKVMm29ezni/+xx9/6LnnntO3337r8EfZldfnKF++vMM50yVLltSvv/561foXLlyo1NRU1a9fX3v37rUNb9SokebNm6chQ4bYje/q6mr3x6P0v4snZh6uO3jwYH388cdq166dypUrp6ioKHXt2lVt27a1TXPw4EGH02Wky6c8Zb5eu3btq9Z/Lfbu3StjjJ5//nk9//zz2Y5z/PjxbC+EnVX58uVzvJ5RVuXKlbP70siqUqVKds8z/7CuXr26w7g1a9bU8uXLlZSUJD8/vxzncTXmKhfN7tGjh9566y1t375d8+fP10MPPZTjtQ/OnDmjpUuXaujQoXbtp1mzZlq8eLF2797tcFe9qlWr5mm7Zdaal+suZOfgwYOqWrWqw8U8s7axrPK7HRs1aqRx48YpPT1dv//+u8aNG6fTp0/bvdd5/cxn1nLlHWkCAwNz7FhfWW9mpyGzo3GlgIAASZc7tq+99pqefPJJBQcHq3HjxrrvvvvUu3dv2ymNLVq00AMPPKC4uDhNmjRJLVu2VOfOndWjR48cL7J54sQJXbhwIce2m5GRocOHD9tdzL1ChQp242Wua05/bGWnfv36qlGjhubPn68SJUooJCQkx22Q1zZx8OBBhYaGOtxy+Mp1s7IvqVSpkmJiYjRx4kTNmzdPd999tzp16qSePXtyehxwA5k6daqqVaums2fPavbs2fr+++/t9pMpKSn6559/7KYJCgrK0744c59UtWpVh+nzcgpeTvLTx8yuD7Nnzx7t2LEjxx9lsn63ubq62v1hL2Xfx8lNTv2W8PBw293F9u3bp5dfflknTpxwuKNXXn40zFzGtfQ5cuq7eXp66rbbbnPob+TWL8zJ4sWLFRAQoBMnTuitt95SfHy8XVCY2QfI7lTuTGfPntWlS5d08eLFbO+Al9Nd8a7sb5w4cUJnzpzRu+++q3fffTfbaTLbwDPPPKNVq1apYcOGqlKliqKiotSjRw81a9bMNu7rr7+uPn36KCwsTBEREWrfvr169+7t8PdGVgcPHlTZsmUd7licUx/vyv6GdLnPkZ/+hnS5j/zmm29q5MiR2rBhQ47Xz8prm8jpM+7h4eGw/nn93GXnxRdf1P33369q1aqpdu3aatu2rXr16mU7xRM3r1s6YEpKSlLdunX1yCOP2K6Xkx9PPfWUw5EcrVu3zvY864LWo0cPDRgwQEePHlW7du1yvLNERkaGypQpk+ORHZk7jDNnzqhFixYKCAjQiy++qMqVK8vb21tbtmzRM88843CbzqxHMWR1tSBBkq2WrDv6rPbv35/rDj47ZcqU0bZt27R8+XJ98803+uabbzRnzhz17t0724vp5peLi0u263blxSlzkrn9nnrqqRwvXF2Qt57N2gHIz2sFMf+sMs8xP336dK6/rDZq1EiVK1fWiBEjFB8fn+PRINLlX1OSk5P15ptv6s0333R4fd68edkGv3l15swZlS5d+pqnz4/8vhelS5e2BWXR0dGqUaOG7rvvPv33v/9VTEyMpLx/5gui3sx2/cEHH2R77aus17caMWKEOnbsqCVLlmj58uV6/vnnNX78eH377beqX7++XFxctGjRIv3444/68ssvtXz5cj3yyCN688039eOPPzoEL9fKyr4rqx49emjatGkqVqyYunXr5hAgFRar+5I333xTffv21eeff64VK1Zo+PDhGj9+vH788cerHv0A4PrQsGFDNWjQQNLlI2WaN2+uHj16aNeuXfL399eGDRscjmyOj49XeHj4VffF+ZFTMHJl3yi/fczsvhszMjJUp04dTZw4MdtlZr1ujBVZ+y3Z8fPzs/vBqlmzZrrzzjv1n//8J9vroObm9OnT8vX1LZB+2dVcyzLuueceW3+oY8eOqlOnjh5++GFt3rxZrq6utvdtwoQJqlevXrbz8Pf3v6Y7wOXU3+jZs2eOgVZmcFGzZk3t2rVLX331lZYtW6bFixfrnXfe0QsvvGDrH3bt2lV33323PvvsM61YsUITJkzQa6+9pk8//TRP15LNi4Lqb3Tv3l1jxozRgAEDVKpU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B2r8+PHatm2boqKi5OHhoT179uiTTz7Rf//7X3Xp0kVNmzZVyZIl1adPHw0fPlwuLi764IMP8n0Y59XMmzdP9erVy/Gogk6dOmnYsGHasmWL7Tah3t7eWrZsmfr06aNGjRrpm2++0ddff63//Oc/ttN9Hn30Uf3zzz+69957Vb58eR08eFBvv/226tWrZ/t1aPTo0VqwYIHatWun4cOHKzAwUO+//77i4+O1ePHiXE9xeeSRRzRx4kRFR0erf//+On78uKZPn67bb7/d7loCPj4+qlWrlhYuXKhq1aopMDBQtWvXVu3atTV16lQ1b95cderU0YABA3Tbbbfp2LFj2rhxo/766y9t3779qttv9+7ddkd7ZAoODrZ0y88JEyaoXbt2atKkifr376+LFy/q7bffVvHixTV27Nhrnq+3t7eioqK0atUq2y3dc1KxYsWrLmv+/Pm228Rmp3379nJ3d9e8efPsrre1ZcuWbLdb5cqV1aRJE9vzlStXqkKFCvk+TSDTY489phkzZqhv377avHmzwsPDtWjRIq1fv16TJ092OG+/ILRr1061a9fWxIkTNWTIkDx/5oODg/XEE0/ozTffVKdOndS2bVtt375d33zzjUqXLp2nX6oCAgI0bdo09erVS3feeaceeughBQUF6dChQ/r666/VrFkzTZkyRbt371br1q3VtWtX1apVS+7u7vrss8907NgxPfTQQ5Kk999/X++8847+9a9/qXLlyjp37pxmzpypgICAXEPOcePGaeXKlWrevLkGDx4sd3d3zZgxQ8nJyXr99dcLbDtn54knnrjqOHltEx07dlSzZs00evRoHThwQLVq1dKnn37q0AmWdM37km+//VZDhw7Vgw8+qGrVqiktLU0ffPCBreMO4Mb19NNP68EHH9TcuXNzvBFHXvbFQUFBeuqppzR+/Hjdd999at++vbZu3Wr7bsgqKipKFSpUUP/+/fX000/Lzc1Ns2fPtn0PZCqIPmavXr308ccf6/HHH9eaNWvUrFkzpaena+fOnfr444+1fPlyNWjQQPXq1VP37t31zjvv6OzZs2ratKlWr16d5yNlpMs3VPnss8/yfE3GWrVqqX379po1a5aef/75PN2CfvPmzfrnn3+yvfh3XgQFBWnMmDGKi4tT27Zt1alTJ+3atUvvvPOO7rrrLrsb8RQUDw8PPfHEE3r66ae1bNkytW3bVrNmzVK7du10++23q1+/fipXrpyOHDmiNWvWKCAgQF9++aWky9etXbFihZo1a6ZBgwbZgpratWtr27ZteVr+q6++qjVr1qhRo0YaMGCAatWqpX/++UdbtmzRqlWrbNcdi4qKUkhIiJo1a6bg4GDt2LFDU6ZMUYcOHVSsWDGdOXNG5cuXV5cuXVS3bl35+/tr1apV+uWXX3L9kbNjx45q1aqVnn32WR04cEB169bVihUr9Pnnn2vEiBEO1/0qSC1atLjqj5R5bRMeHh4aN26cBg4cqHvvvVfdunVTfHy85syZ43CJkrx+7rJTq1YttWzZUhEREQoMDNSmTZu0aNEiuxs34SZVZPeru85JsruV6FdffWUkGT8/P7t/7u7upmvXrg7Tz58/37i7u5ujR48WSn053a79StndOt2Yy7eejIiIMD4+PqZYsWKmTp06ZtSoUebvv/+2jbN+/XrTuHFj4+PjY8qWLWtGjRplli9fbneba2Mu3+40u9t/Xnk7zytt3rzZSDLPP/98juMcOHDASDIjR460zdPPz8/s27fPREVFGV9fXxMcHGxiY2PtbsG5aNEiExUVZcqUKWM8PT1NhQoVzMCBA01CQoLd/Pft22e6dOliSpQoYby9vU3Dhg3NV199ZTdO5u1Bs94W3BhjPvzwQ3PbbbcZT09PU69ePbN8+fJs13nDhg0mIiLCeHp6OtwSd9++faZ3794mJCTEeHh4mHLlypn77rvPLFq0KMdtkklSjv+y3lI0p/cn621Ps7Nq1SrTrFkz4+PjYwICAkzHjh3Nn3/+aTdOdrfKvZpPP/3UuLi4mEOHDtkNz6mtZnVlu69Tp46pUKFCrtO0bNnSlClTxqSmptrWOad/WW+nmp6ebkJDQ81zzz2Xp/XKqf5jx46Zfv36mdKlSxtPT09Tp04dh7Z0tfciP8szxpi5c+c6tNm8fObT0tLM888/b0JCQoyPj4+59957zY4dO0ypUqXM448/bhvvavufNWvWmOjoaFO8eHHj7e1tKleubPr27Ws2bdpkjDHm5MmTZsiQIaZGjRrGz8/PFC9e3DRq1Mh8/PHHtnls2bLFdO/e3VSoUMF4eXmZMmXKmPvuu882j0xXfqYyp42Ojjb+/v7G19fXtGrVymzYsMFunJzWYc2aNQ77uOzkte1Lcrj1cV7ahDHGnDp1yvTq1csEBASY4sWLm169epmtW7dmuz/Ky77kynXbv3+/eeSRR0zlypWNt7e3CQwMNK1atTKrVq3KdZ0AXB9y2xenp6ebypUrm8qVK5u0tLRsp8/LvjhzXnFxcSY0NNT4+PiYli1bmt9//93hNuTGXO7bNWrUyNb3mjhxoq3O+Ph423hW+5jGXL69+muvvWZuv/124+XlZUqWLGkiIiJMXFycOXv2rG28ixcvmuHDh5tSpUoZPz8/07FjR3P48OFsvz+ys2XLFrtbw+eltrVr1+Z5/sYY88wzz5gKFSqYjIyMq46b2/fPlClTTI0aNYyHh4cJDg42gwYNMqdPn85z3fld3tmzZ03x4sXt+p1bt241//73v02pUqWMl5eXqVixounatatZvXq13bSrV6829evXN56enqZy5cpm1qxZ5sknnzTe3t5242X3PZrp2LFjZsiQISYsLMx4eHiYkJAQ07p1a/Puu+/axpkxY4a55557bPVUrlzZPP3007Y2kpycbJ5++mlTt25dU6xYMePn52fq1q1r3nnnHbtlZdfHP3funBk5cqQpW7as8fDwMFWrVjUTJkxweB9zWofsPkNXymsfMfNvpCvlpU0YY8w777xjKlWqZLy8vEyDBg3M999/b1q0aGH33hqT98/dles2btw407BhQ1OiRAnj4+NjatSoYV5++WWTkpKS63rhxudiTAEfonKDcnFxsbuL3MKFC/Xwww/rjz/+cLhIm7+/v8MFbVu3bq2AgAB99tlnRVUycENIT09XrVq11LVr12xP27peLFmyRD169NC+ffsUGhrq7HKc5syZMypZsqTGjRunZ5991tnlAACuE+Hh4WrZsqXmzp3r7FIKXevWrVW2bNlcr7F3rZKTkxUeHq7Ro0fn6UjYm1nnzp25lT1wk+EaTDmoX7++0tPTdfz4cVWpUsXu35XhUnx8vNasWaP+/fs7qVrg+uXm5qYXX3xRU6dOzfYc/evFa6+9pqFDh95S4dLFixcdhmVepyLzZgYAANxqXnnlFS1cuNDhguUFYc6cOfLw8MjxVMab1ZV9jj179mjp0qX0N4CbzC19BNP58+dt52TXr19fEydOVKtWrRQYGKgKFSqoZ8+eWr9+vd58803Vr19fJ06c0OrVq3XHHXfYXTzv+eef1+zZs3Xo0KEcb0kJANebuXPnau7cuWrfvr38/f21bt06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lPHw8DC7d+/O83tzNVe2hd9++82EhISYRo0a2Yb99ddfZsKECWbr1q1m37595q233jJubm7mp59+sttWAQEBZuzYsWb37t3m/fffNy4uLmbFihXGGGPS09NN7dq1TevWrc22bdvMd999Z+rXr2/3Xp4/f96Ehoaaf//73+a3334zq1evNpUqVTJ9+vSxq7dYsWJmyJAhZufOnea9994zkkx0dLR5+eWXze7du81LL71kPDw8zOHDh/O83ln99ddfxtfX1wwePNjs2LHDfPbZZ6Z06dImNjbWbn0Lsm2cO3fOdO3a1bRt29YkJCSYhIQEW1u9lvds3LhxpkaNGmbZsmVm3759Zs6cOcbLy8usXbvWGGPM/v37jYeHh3nqqafMzp07zYIFC0y5cuWMJHP69GljjDFz5swxHh4epmnTpmb9+vVm586dJikpyTz66KOmadOm5vvvvzd79+41EyZMMF5eXrZ22aFDB9OiRQvj4uJinn76afPll1+a7777zhhjzJAhQ0y9evXML7/8YuLj483KlSvNF198YSSZUqVKGUnmyy+/NAcPHjTx8fHG3d3ddOnSxaxcudKMGDHCSDJdunSxrWelSpWMJNO1a1ezdOlSc8899xhJpkmTJnbv1RNPPGF7frX6M9c7MjLS/PLLL2bz5s2mZs2apkePHsYYY+m9OnfunBk4cKCpUqWKSU9PN8bkrd1fbV8wYcIEExYWZr7//ntz4MAB88MPP5j58+cbY4w5fvy4kWTmzJljEhISzPHjx40xjvubPn36mICAAPP444+bHTt2mC+//NL4+vqad9991zZOZGSkqVevnvnxxx/N5s2bTYsWLYyPj4+ZNGlStuuf3XLi4+PN7bffboKDg23DPvzwQxMaGmoWL15s9u/fbxYvXmwCAwPN3LlzjTHGnD171gQGBpqePXuaP/74wyxdutRUq1bNSDJbt241xuT8HXK1z0JObfJq29UYc037r6ttY1zf6D/Rf8pE/8kR/afTxhj6T/Sf6D9dj/0nAqZCdi0dpFmzZtle/+OPP4wks2PHDmOMMf379zePPfaY3Tx++OEH4+rqai5evJjtMn755RcjyZw7d84Y87/GvWTJkqvWL8l4e3sbPz8/4+rqaiSZ8PBwW4fqgw8+MNWrVzcZGRm2aZKTk42Pj49Zvny5McaY4OBgM2HCBNvraWlppkKF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NpbTPK/mynY2a9YsFS9eXDNnztS4ceOuaZ5XuvPOOxUfH69vvvlGq1atUteuXRUZGelw3YirKazPsKenp20bvPrqq+rQoYPi4uL00ksv2drrzJkz1ahRI7vprnyP8iLr5zIvn4V27drp4MGDWrp0qVauXGlrk2+88UaBbdesimo/iesH/afL6D/Rf8o6fVb0n+g/ZYf+E/2nrKxuYy7yfYO588479eeff9o6LFn/eXp6aufOnTp16pReffVV3X333apRo8Y1p9nZadiwoSIiIvTyyy/b6tmzZ4/KlCnjUE/x4sVVvHhxBQcH65dffrHNIz09XVu2bMnTuv7xxx8KDw93mHfmB9PFxUXNmjVTXFyctm7dKk9PT3322We2edSvX19jxozRhg0bVLt2bc2fP99hOQEBASpbtqzWr19vN3z9+vV2v1gWNFdXV/3nP//Rc889p4sXL9qWef/996tnz56qW7eubrvtNu3evTtf861Zs6YOHz5su9CfJP34448O42zfvt3u4qbr16+Xq6urqlevbmGt8qdmzZrauHGj3Rfi+vXrVaxYMZUvXz7H6ay2DU9PT6Wnp+e73ivfs6wXlLyyjrCwMEmXfxHZtGmT3Xyyfh5yUr9+faWnp+v48eMO8w4JCbGNd8cdd6hNmzY6e/ashg0bppkzZ9peCwoKUkhIiNq2bavJkyfr3XffzXZZGRkZ8vLy0qBBg1S/fn1VqVJFv//+u1xdXVW+fHkVL15cnp6eOnr0qG2atLQ0nT171nL9V3Ot75V0uQ24urraPl9Xa/d53RcEBASoW7dumjlzphYuXKjFixfbbmXr4eFxzfVmql69utLS0rR161bbsL179+r06dP5ntdzzz2nN954Q3///beCg4NVtmxZ7d+/3+E9yfzDoXr16vrtt9/sflnNS3vNy2dButwm+/Tpow8//NChTea2XbO6XvZfuLHQf6L/dDX0n+g/ZaL/RP+J/tO1I2AqAmfPntW2bdvs/h0+fPia5vXMM89ow4YNGjp0qLZt26Y9e/bo888/19ChQyVd/hXO09NTb7/9tvbv368vvvhCL730UkGujkaMGKEZM2boyJEjevjhh1W6dGndf//9+uGHHxQfH6+1a9dq+PDh+uuvvyRJw4YN0/jx4/X5559r165deuKJJ3T69Gm7XxuyM2TIEP3zzz/q3r27fvnlF+3b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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n", + "d:\\3_КУРС_ПИ\\МИИ\\aisenv\\Lib\\site-packages\\sklearn\\metrics\\_classification.py:1531: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n", + " _warn_prf(average, modifier, f\"{metric.capitalize()} is\", len(result))\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJoAAASlCAYAAADgRbP+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde3zP9f//8ft7s/PMeXPax5xybjKHnEuyEEkOUTmVhMmndSLlVNpHopUUyakiPiL5IqdFpUQJqZBDUtnmFGOY2Z6/P/z2/uxtG3vz2vs92+16ubh4v1/v1+H5er2f7/f7sfvrZDPGGAEAAAAAAAA3yMPdDQAAAAAAAEDBQNAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEFFD79u1Tu3btVKxYMdlsNi1btszdTbLr16+fwsLC3Lb8uXPnymaz6dChQw7DJ02apCpVqsjT01P169eXJIWFhalfv34ub+PYsWNls9lcvlx3upF+cccdd+iOO+6wtD0AgBt3Pd/tGzdulM1m08aNG/OkTdeSXT2QHxw6dEg2m01z5851Wxuyq4uyqzlzqrVcwWazaezYsS5frrvcSL9w92cNBRdBE/K1d955RzabTU2aNHF3U246ffv21a5duzRhwgR9+OGHatiwYZ4vMykpSePGjVN4eLgCAwPl5+enunXr6vnnn9eRI0fyfPk3Yu3atXruuefUvHlzzZkzR6+++mqeL/PcuXMaO3Zsvvtxt9lsstlseuyxx7J9fdSoUfZxjh8/7uLWAQCuJuMP/Ix/vr6+uuWWWxQVFaXExER3Ny/fc0c9IF3+g79r164qW7asvL29FRwcrE6dOmnp0qUuWf6NcEfNuWrVqnwXJmXsJPTw8NCff/6Z5fWkpCT5+fnJZrMpKirKDS0EXKeIuxsAXM38+fMVFhamrVu3av/+/apWrZq7m3RTOH/+vDZv3qxRo0a57Ifs4MGDatu2rQ4fPqzu3bvr8ccfl7e3t3766SfNmjVLn376qX777TeXtOVaHnnkET344IPy8fGxD/viiy/k4eGhWbNmydvb2z5879698vDIm0z+3LlzGjdunCRlORrnxRdf1IgRI/Jkubnh6+urJUuW6J133nHYHpL08ccfy9fXVxcuXHBT6wAA1zJ+/HhVrlxZFy5c0KZNm/Tuu+9q1apV+vnnn+Xv7++ydsycOVPp6elOTdOqVSudP38+y++PK+RUD+SlMWPGaPz48apevboGDRqkSpUq6cSJE1q1apUeeOABzZ8/X71793ZJW67lyroop5ozu1rLSqtWrdK0adOyDZvOnz+vIkXc92euj4+PPv74Yz333HMOw2+G0BCwCkc0Id/6/fff9e2332rKlCkqU6aM5s+f7+4m5Sg5OdndTXBw7NgxSVLx4sUtm+fV1vHSpUvq2rWrEhMTtXHjRn388ccaOnSoBg4cqKlTp+rgwYPq3r27ZW25UZ6envL19XU4Ne3o0aPy8/PLUlT6+PjIy8vL1U1UkSJF5Ovr6/LlZrjnnnuUlJSkzz//3GH4t99+q99//10dO3Z0U8sAALnRvn17Pfzww3rsscc0d+5c/fvf/9bvv/+uzz77LMdp8qKe8fLycjps8PDwkK+vb57t6LmanOqB62WM0fnz53N8/ZNPPtH48ePVrVs3/fLLLxo3bpwGDBigZ599Vhs2bNDq1asVFBRkSVuscGVdlFPNmV2t5Sq+vr5uDZo6dOigjz/+OMvwBQsWUD+h0CBoQr41f/58lShRQh07dlS3bt1yDJpOnTqlp556SmFhYfLx8VHFihXVp08fh1N6Lly4oLFjx+qWW26Rr6+vypUrp65du+rAgQOScj4/Obtznvv166fAwEAdOHBAHTp0UNGiRfXQQw9Jkr7++mt1795d//rXv+Tj46PQ0FA99dRT2RYYe/bsUY8ePVSmTBn5+fmpRo0aGjVqlCRpw4YNstls+vTTT7NMt2DBAtlsNm3evDnb7TF27FhVqlRJkvTss8/KZrM5XBth+/btat++vYKCghQYGKi77rpL3333ncM8Mg67//LLLzVkyBAFBwerYsWK2S5PkpYsWaKdO3dq1KhRatGiRZbXg4KCNGHChBynl6TXX39dzZo1U6lSpeTn56eIiAh98sknWcZbt26dWrRooeLFiyswMFA1atTQCy+84DDO1KlTVadOHfn7+6tEiRJq2LChFixYkGX9Mq4bYLPZNGfOHCUnJ9tPNch4z7O7FsG1+tzFixc1evRoRUREqFixYgoICFDLli21YcMG+zwOHTqkMmXKSJLGjRtnX27GnrnsrtF06dIlvfzyy6patap8fHwUFhamF154QSkpKQ7jhYWF6d5779WmTZvUuHFj+fr6qkqVKvrggw+u+h5kVqFCBbVq1cphu0mXP5f16tVT3bp1s51u8eLFioiIkJ+fn0qXLq2HH35Yf//9d5bxli1bprp168rX11d169bNtq9LUnp6umJjY1WnTh35+voqJCREgwYN0j///HPNdbhWPwCAwqRNmzaSLu/Ik65ezzjz3fv555+rdevWKlq0qIKCgtSoUSOH79rsrtG0cOFCRURE2KepV6+e3nzzTfvrOdVlufmNyVivv//+W126dFFgYKDKlCmjZ555RmlpaVfdRlerB5z9DV6zZo0aNmwoPz8/zZgxI8dlvvTSSypZsqRmz56d7Y6tyMhI3XvvvTlO/9NPP6lfv36qUqWKfH19VbZsWQ0YMEAnTpxwGO/MmTP697//ba9dgoODdffdd+vHH3+0j7Nv3z498MADKlu2rHx9fVWxYkU9+OCDOn36tMP6ZdRFV6s5c7pG07X6S25q6X79+mnatGmS5HCaaIbsrtHkTP37zTffKDo6WmXKlFFAQIDuv/9+e6CWG71799aOHTu0Z88e+7CEhAR98cUXOR6ZdvToUT366KMKCQmRr6+vwsPDNW/evCzjnTp1Sv369VOxYsVUvHhx9e3bV6dOncp2nnv27FG3bt1UsmRJ+fr6qmHDhlq+fPk125+bfgBcC6fOId+aP3++unbtKm9vb/Xq1Uvvvvuuvv/+ezVq1Mg+ztmzZ9WyZUvt3r1bAwYMUIMGDXT8+HEtX75cf/31l0qXLq20tDTde++9iouL04MPPqjhw4frzJkzWrdunX7++WdVrVrV6bZdunRJkZGRatGihV5//XX7IeiLFy/WuXPnNHjwYJUqVUpbt27V1KlT9ddff2nx4sX26X/66Se1bNlSXl5eevzxxxUWFqYDBw7o//7v/zRhwgTdcccdCg0N1fz583X//fdn2S5Vq1ZV06ZNs21b165dVbx4cT311FPq1auXOnTooMDAQEnSL7/8opYtWyooKEjPPfecvLy8NGPGDN1xxx368ssvs1wLa8iQISpTpoxGjx591b2cGT9ajzzyiNPbMsObb76pzp0766GHHtLFixe1cOFCde/eXStWrLDv/fnll19077336tZbb9X48ePl4+Oj/fv365tvvrHPZ+bMmXryySfVrVs3DR8+XBcuXNBPP/2kLVu25Pjj/uGHH+q9997T1q1b9f7770uSmjVrlu24uelzSUlJev/999WrVy8NHDhQZ86c0axZsxQZGamtW7eqfv36KlOmjN59910NHjxY999/v7p27SpJuvXWW3PcRo899pjmzZunbt266emnn9aWLVsUExOj3bt3Zwlq9u/fr27duunRRx9V3759NXv2bPXr108RERGqU6dOrt6T3r17a/jw4Tp79qwCAwN16dIlLV68WNHR0dmeNjd37lz1799fjRo1UkxMjBITE/Xmm2/qm2++0fbt2+17O9euXasHHnhAtWvXVkxMjE6cOKH+/ftnG2YOGjTIPt8nn3xSv//+u95++21t375d33zzTY5Hm11PPwCAgixj51qpUqXsw3KqZ3L73Tt37lwNGDBAderU0ciRI1W8eHFt375dq1evzvG7dt26derVq5fuuusuTZw4UZK0e/duffPNNxo+fHiO7c/tb4wkpaWlKTIyUk2aNNHrr7+u9evXa/LkyapataoGDx6c4zKuVg848xu8d+9e9erVS4MGDdLAgQNVo0aNbJe3b98+7dmzRwMGDFDRokVzbNfVrFu3TgcPHlT//v1VtmxZ/fLLL3rvvff0yy+/6LvvvrMHME888YQ++eQTRUVFqXbt2jpx4oQ2bdqk3bt3q0GDBrp48aIiIyOVkpKiYcOGqWzZsvr777+1YsUKnTp1SsWKFcuy7KvVnNnJTX/JTS09aNAgHTlyROvWrdOHH354zW3kbP07bNgwlShRQmPGjNGhQ4cUGxurqKgoLVq0KFfvSatWrVSxYkUtWLBA48ePlyQtWrRIgYGB2R7RdP78ed1xxx3av3+/oqKiVLlyZS1evFj9+vXTqVOn7J8LY4zuu+8+bdq0SU888YRq1aqlTz/9VH379s12nZs3b64KFSpoxIgRCggI0H//+1916dJFS5YsyfL3RYbr6QdAtgyQD/3www9Gklm3bp0xxpj09HRTsWJFM3z4cIfxRo8ebSSZpUuXZplHenq6McaY2bNnG0lmypQpOY6zYcMGI8ls2LDB4fXff//dSDJz5syxD+vbt6+RZEaMGJFlfufOncsyLCYmxthsNvPHH3/Yh7Vq1coULVrUYVjm9hhjzMiRI42Pj485deqUfdjRo0dNkSJFzJgxY7IsJ7t2T5o0yWF4ly5djLe3tzlw4IB92JEjR0zRokVN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UmJiok6dOpXt6WxW8PPzU5cuXfTRRx+pffv2Kl26dI7tky5fAPXKPXZ79+61v57x/759+7LM48q+WbVqVa1fv17NmzfPddGeWV72AwAoqHL73ZtxM5Wff/7Z6SOtvb291alTJ3Xq1Enp6ekaMmSIZsyYoZdeeinbeeX2Nyav5NVv8C233KIaNWros88+05tvvnnVC2ln559//lFcXJzGjRun0aNH24dn9xsrXT5dbMiQIRoyZIiOHj2qBg0aaMKECfagSZLq1aunevXq6cUXX9S3336r5s2ba/r06XrllVeuax0z5Ka/5LaWlnJfQ+Vl/XstvXv31ujRoxUfH3/Vi5ZXqlRJP/30k9LT0x3CqIy71mWuoeLi4uw3aclw5bpl/K3h5eVlr42dlVf9AIUHp84hXzl//ryWLl2qe++9V926dcvyLyoqSmfOnLHf5eyBBx7Qzp07s701esZehwceeEDHjx/P9kigjHEqVaokT09PffXVVw6vv/POO7lue8bej8x7O4wxDrfrlS7/4LVq1UqzZ8/W4cOHs21PhtKlS6t9+/b66KOPNH/+fN1zzz05/qGfm/a1a9dOn332mcOtZhMTE7VgwQK1aNHCfgi3s7p166Z69eppwoQJ2rx5c5bXz5w5o1GjRl21bTabzeEIskOHDmnZsmUO4508eTLLtPXr15ck++2Fr7ydr7e3t2rXri1jjFJTU3O7SjnKTZ/Lri9s2bIly7bJuLtPTrelzaxDhw6SpNjYWIfhU6ZMkaRs72JilWeeeUZjxozRSy+9lOM4DRs2VHBwsKZPn+5wq+fPP/9cu3fvtrevXLlyql+/vubNm+dwGPa6dev066+/OsyzR48eSktL08svv5xleZcuXbrqdsvrfgAABVVuv3vbtWunokWLKiYmJsudSK925MeV388eHh72O65m/v3ILLe/MXklL3+Dx40bpxMnTuixxx7TpUuXsry+du1arVixIttps6s3smtnWlpallOfgoODVb58efv2TEpKyrL8evXqycPDI8f3xRm56S+5raWlyzuTpGvXUHlZ/15L1apVFRsbq5iYGDVu3DjH8Tp06KCEhASHu9pdunRJU6dOVWBgoP3UwQ4dOujSpUt699137eOlpaVp6tSpDvMLDg7WHXfcoRkzZig+Pj7L8o4dO5ZjW/K6H6Dw4Igm5CvLly/XmTNn1Llz52xfv/3221WmTBnNnz9fPXv21LPPPqtPPvlE3bt314ABAxQREaGTJ09q+fLlmj59usLDw9WnTx998MEHio6O1tatW9WyZUslJydr/fr1GjJkiO677z4VK1ZM3bt319SpU2Wz2VS1alWtWLHiqteAuVLNmjVVtWpVPfPMM/r7778VFBSkJUuWZHs+91tvvaUWLVqoQYMGevzxx1W5cmUdOnRIK1eu1I4dOxzG7dOnj7p16yZJ2RZ9znjllVe0bt06tWjRQkOGDFGRIkU0Y8YMpaSk6LXXXrvu+Xp5eWnp0qVq27atWrVqpR49eqh58+by8vLSL7/8ogULFqhEiRKaMGFCttN37NhRU6ZM0T333KPevXvr6NGjmjZtmqpVq6affvrJPt748eP11VdfqWPHjqpUqZKOHj2qd955RxUrVlSLFi0kXS5kypYtq+bNmyskJES7d+/W22+/rY4dO97wBcsl5arP3XvvvVq6dKnuv/9+dezYUb///rumT5+u2rVr6+zZs/Z5+fn5qXbt2lq0aJFuueUWlSxZUnXr1s32+gXh4eHq27ev3nvvPZ06dUqtW7fW1q1bNW/ePHXp0sV+4fy8EB4ervDw8KuO4+XlpYkTJ6p///5q3bq1evXqZb/1dFhYmJ566in7uDExMerYsaNatGihAQMG6OTJk5o6darq1KnjsH1at26tQYMGKSYmRjt27FC7du3k5eWlffv2afHixXrzzTftn40r5XU/AICCKrffvUFBQXrjjTf02GOPqVGjRurdu7dKlCihnTt36ty5czmeBvfYY4/p5MmTatOmjSpWrKg//vhDU6dOVf369R2OFsrMmd+YvJCXv8E9e/bUrl27NGHCBG3fvl29evVSpUqVdOLECa1evVpxcXEOlxHILCgoSK1atdJrr72m1NRUVahQQWvXrtXvv//uMN6ZM2dUsWJFdevWTeHh4QoMDNT69ev1/fffa/LkyZIuX7oiKipK3bt31y233KJLly7pww8/lKenpx544IHrXr/Mbb1Wf3Gmlo6IiJAkPfnkk4qMjJSnp6cefPDBbJedV/VvbgwfPvya4zz++OOaMWOG+vXrp23btiksLEyffPKJvvnmG8XGxtrrlk6dOql58+YaMWKEDh06pNq1a2vp0qXZXj9p2rRpatGiherVq6eBAweqSpUqSkxM1ObNm/XXX39p586d2bYlr/sBChEX3+UOuKpOnToZX19fk5ycnOM4/fr1M15eXub48ePGGGNOnDhhoqKiTIUKFYy3t7epWLGi6du3r/11Yy7fKnXUqFGmcuXKxsvLy5QtW9Z069bN4Tanx44dMw888IDx9/c3JUqUMIMGDTI///xzltuFZnfb2wy//vqradu2rQkMDDSlS5c2AwcONDt37swyD2OM+fnnn839999vihcvbnx9fU2NGjXMSy+9lGWeKSkppkSJEqZYsWJZbgebk5xuNWuMMT/++KOJjIw0gYGBxt/f39x5553m22+/dRgn4/au33//fa6Wl+Gff/4xo0ePNvXq1TP+/v7G19fX1K1b14wcOdLEx8fbx7vyVsfGGDNr1ixTvXp14+PjY2rWrGnmzJljv01shri4OHPfffeZ8uXLG29vb1O+fHnTq1cv89tvv9nHmTFjhmnVqpUpVaqU8fHxMVWrVjXPPvusOX36dJb1y7jlbkabsntfr7yNrzHX7nPp6enm1VdfNZUqVTI+Pj7mtttuMytWrMh2vb/99lsTERFhvL29HW7He+W6G2NMamqqGTdunL0fh4aGmpEjRzrcujajzR07dsyyLq1btzatW7fOMvxKuuK2u9nJfAvfzBYtWmRuu+024+PjY0qWLGkeeugh+620M1uyZImpVauW8fHxMbVr1zZLly7NdvsYY8x7771nIiIijJ+fnylatKipV6+eee6558yRI0dyXLfc9AMAKIhy+xt+tXrGmNx99xpjzPLly02zZs2Mn5+fCQoKMo0bNzYff/yxw3Iyf7d/8sknpl27diY4ONh4e3ubf/3rX2bQoEEOdcKVt1zPkJvfmJzWK7vfVWe2y43+Bl9LRo0THBxsihQpYsqUKWM6depkPvvsM/s4GfVd5pryr7/+steTxYoVM927dzdHjhxxqClSUlLMs88+a8LDw03RokVNQECACQ8PN++88459PgcPHjQDBgwwVatWNb6+vqZkyZLmzjvvNOvXr8+yfpnropxqzuxqLWOu3V9yW0tfunTJDBs2zJQpU8bYbDaH9zbzume4kfo3p/54pZxqoytlV2clJiaa/v37m9KlSxtvb29Tr169LH87GHO5Bn3kkUdMUFCQKVasmHnkkUfM9u3bs/1b48CBA6ZPnz6mbNmyxsvLy1SoUMHce++95pNPPslx3XLbD4BrsRnj5FXN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AAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASTgdNYWFhGj9+vA4fPpwX7QEAAAAAAMBNyumg6d///reWLl2qKlWq6O6779bChQuVkpKSF20DAAAAAADATeS6gqYdO3Zo69atqlWrloYNG6Zy5copKipKP/74Y160EQAAoEBIS0vTrFmz1Lt3b7Vt21Zt2rRx+AcAAHCzu+5rNDVo0EBvvfWWjhw5ojFjxuj9999Xo0aNVL9+fc2ePVvGGCvbCQAAcNMbPny4hg8frrS0NNWtW1fh4eEO/5wxbdo0hYWFydfXV02aNNHWrVtzNd3ChQtls9nUpUuX61gDAACAqytyvROmpqbq008/1Zw5c7Ru3TrdfvvtevTRR/XXX3/phRde0Pr167VgwQIr2woAAHBTW7hwof773/+qQ4cONzSfRYsWKTo6WtOnT1eTJk0UGxuryMhI7d27V8HBwTlOd+jQIT3zzDNq2bLlDS0fAAAgJ04f0fTjjz86nC5Xp04d/fzzz9q0aZP69++vl156SevXr9enn36a63myRw4AABQG3t7eqlat2g3PZ8qUKRo4cKD69++v2rVra/r06fL399fs2bNznCYtLU0PPfSQxo0bpypVqtxwGwAAALLj9BFNjRo10t133613331XXbp0kZeXV5ZxKleurAcffDBX82OPHAAAKCyefvppvfnmm3r77bdls9muax4XL17Utm3bNHLkSPswDw8PtW3bVps3b85xuvHjxys4OFiPPvqovv7662suJyUlxeGGL0lJSZIuH9Wempp6XW2Ho8zbke3qHtM27Hd3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n3xSGzZsUFpamtLS0vTFF19o+PDhevDBB/OijQAAAAXC8OHD1bBhQ/3zzz/y8/OzD7///vsVFxfnxpYBAABYw+kjml5++WUdOnRId911l4oUuTx5enq6+vTpo1dffdXyBgIAABQUX3/9tb799lt5e3s7DA8LC9Pff//tplYBAABYx+mgydvbW4sWLdIrr7yiHTt2yM/PT/Xq1VOlSpXyon0AAAAFRnp6utLS0rIM/+uvv1S0aFE3tAgAAMBaTgdNGapXr67q1atb2RYAAIACrV27doqNjdV7770nSbLZbDp79qzGjBmjDh06uLl1AAAAN87pazQ98MADmjhxYpbhr732mrp3725JowAAAAqi119/Xd98841q166tCxcuqHfv3vbT5rKrrwAAAG42Th/R9NVXX2ns2LFZhrdv316TJ0+2ok0AAAAFUmhoqHbu3KlFixZp586dOnv2rB599FE99NBDDhcHBwAAuFk5HTSdPXs2ywUsJcnLy0tJSUmWNAoAAKCgSU1NVc2aNbVixQo99NBDeuihh9zdJAAAAMs5fepcvXr1tGjRoizDFy5cqNq1a1vSKAAAgILGy8tLFy5ccHczAAAA8pTTRzS99NJL6tq1qw4cOKA2bdpIkuLi4rRgwQJ98sknljcQAACgoBg6dKgmTpyo999/X0WKXPc9WQAAAPItpyucTp06admyZXr11Vf1ySefyM/PT+Hh4friiy9UsmTJvGgjAABAgfD9998rLi5Oa9euVb169RQQEODw+tKlS93UMgAAAGtc1660jh07qmPHjpKkpKQkffzxx3rmmWe0bds2paWlWdpAAACAgqJ48eJ64IEH3N0MAACAPHPdx2x/9dVXmjVrlpYsWaLy5cura9eumjZtmpVtAwAAKBDS09M1adIk/fbbb7p48aLatGmjsWPHcqc5AABQ4DgVNCUkJGju3LmaNWuWkpKS1KNHD6WkpGjZsmVcCBwAACAHEyZM0NixY9W2bVv5+fnprbfe0rFjxzR79mx3Nw0AAMBSub7rXKdOnVSjRg399NNPio2N1ZEjRzR16tS8bBsAAECB8MEHH+idd97RmjVrtGzZMv3f//2f5s+fr/T0dHc3DQAAwFK5PqLp888/15NPPqnBgwerevXqedkmAACAAuXw4cPq0KGD/Xnbtm1ls9l05MgRVaxY0Y0tAwAAsFauj2ja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O1cTJkyQJKWlpalLly7y9/fXli1b9N5772nUqFHZzn/EiBEaPny4du/ercjISM2fP1+jR4/WhAkTtHv3br366qt66aWXNG/ePEnSW2+9peXLl+u///2v9u7dq/nz5yssLOya2+tK6enpuu+++3Ty5El9+eWXWrdunQ4ePKiePXs6jJecnKxly5ZpxYoVeuutt3TkyBEdO3bM/vqFCxcUERGhlStX6ueff9bjjz+uRx55RFu3bnWYz7x58xQQEKAtW7botdde0/jx47Vu3Tp7W7p27Spvb29t2bJF06dP1/PPP5+lHZGRkSpRooS+//57LV68WOvXr1dUVJTDeF988YWOHDmir776SlOmTNGYMWN07733qkSJEtqyZYueeOIJDRo0SH/99VeO7/nV5KafZ6yvt7e3vvnmG02fPl2nTp1SmzZtdNttt+mHH37Q6tWrlZiYqB49ekiS4uPj1atXLw0YMEC7d+/Wxo0b1bVrVxlj9Mwzz6hHjx6655577H29WbNmWdp28uRJrV69WkOHDlVAQECW16+2h6No0aKaO3eufv31V7355puaOXOm3njjDfvrDz30kCpWrKjvv/9e27Zt04gRI+x7x4YOHaqUlBR99dVX2rVrlyZOnJjtXp0aNWrIZrNJutxXs1sPm81m/8xKl/dOjBo1Sk899ZQGDBig9PR0FStWTK+99po2btyol156STt27FBkZKQkKTQ0VI888ogkaerUqfryyy/VoEEDffrpp1nas27dOv3www9avny52rdvr1OnTsnLy0vbtm1T9+7dNXnyZCUnJ+v111/X448/riJFimjPnj2qWrWqvvrqKx0+fFjPPPOMJOX6PcrO2bNn9dFHH6latWoqVaqUpNz19zfffFOTJ0/W66+/rp9++kmRkZHq3Lmz9u3bJ+nq3xXff/+9JGnOnDmKj4+3P8/Ohg0bdODAAW3YsEHz5s3T3LlzNXfuXPvrffr00ZEjR7Rx40YtWbJE7733no4ePZrj/NLT07Vw4UI99NBDKl++fJbXAwMDVaRI9gcie3h46K233tIvv/yiefPm6YsvvtBzzz1nf/1qffGll17Sr7/+qs8//1y7d+/Wu+++q9KlS2dZRmhoqOLj4xUUFKTY2FjFx8dn+V6UpB07duiuu+5S7dq1tXnzZm3atEmdOnVSWlqapMvvYXR0tH744QfFxcXJw8ND999/v9LT0yXJ/h25fv16xcfHa+nSpdmu83PPPaclS5Zo3rx5+vHHH1WtWjVFRkbq5MmTDuONGjVKkydP1g8//KAiRYpowIAB2c4P+Q/1U8Gsn86cOaP4+HitWLFCK1as0Pr16xUXF+dwdA41FDVUbmqokydP6ocfftDTTz8tKfsaKqO+WrlypSTpxIkTGj9+vFasWKH77rtP6enpqlixogYPHqxZs2Zp8uTJSk1N1Q8//KB+/fpJkhYvXmxf9qpVq9S7d+8cf8/79eunH374QS1btlSdOnUUHh6u4OBgde3aVffcc48SEhJ07tw5rV69Wh4eHqpfv77KlCmjVq1aUT/9f9RPBaR+ciqWQo6utpci41zRzIn6tGnTTGBgoElLSzNJSUnGy8vLLF682P76qVOnjL+/f4575CZPnmxuueUWh/Q3s+xS3yv3qDVt2tQ89NBDuV7HjGsMZKTu+v9p6ZNPPmkf56677rIn2xk+/PBDU65cOWPM5SS2SJEiJj4+3v56TnvkYmNjHeZTtWrVLHuzXn75ZdO0aVNjjDHDhg0zbdq0yfY8V2e219q1a42np6c5fPiw/fVffvnFSLKnveHh4fZt4ePjY7/uQvXq1XPcfsYY07FjR/P000/bn7du3dq0aNHCYZxGjRqZ559/3hhjzJo1a0yRIkUc0vnPP//cYXu99957pkSJEg57mVauXGk8PDzsexH79u1rKlWqZNLS0uzj1KhRw7Rs2dL+/NKlSyYgIMB8/PHHOba/b9++xtPT0wQEBNj/devWzRhz7X6esb6Z91gac/k9bNeuncOwP//800gye/fuNdu2bTOSzKFDh3Js07XOX9+yZYuRZJYuXXrV8Yy59vUFJk2aZCIiIuzPixYtaubOnZvtuPXq1TNjx47N9rXMezG+++67bPdWBQYG2vvZc889Z//MSjL//ve/r7ku3bt3N5Lse2ZKlSrlsOckNTXVVKxY0eGIpsaNGxtJ5ptvvjF//PGH8fT0NLt27TJ+fn7mv//9rzHGmNq1axtJZv/+/fbvhbFjx5qQkBBjzOX3PeOxMc5dYyBz/5JkypUrZ7Zt22YfJzf9vXz58mbChAkO827UqJEZMmSIMebq3xXGZN8HstsjV6lSJXPp0iX7sO7du5uePXsaYy4feSDJvmfWGGP27dtnJOW4Ry4xMdFIMlOmTMlhC/3PtfbsLV682JQqVcr+/Gp9sVOnTqZ///7Zvpbd+f7FihWzHyVhTNbrVvTq1cs0b978muuQ4dixY0aS2bVrV47LNMaxH509e9Z4eXmZ+fPn21+/ePGiKV++vHnttdcc2pX5+iErV640klx2LRhcG/XTZYWlfhozZozx9PS0f9dn1FCSzCeffJLjNjSGGooa6n8yvt8zPgMffvihQw1VqlQpe9967rnnjDGXP7e5rZ+GDh1q2rRpY6+hypUrZwYNGmT/rcuon648oinjWklLliwxnp6e5u+//zbHjx+311B33XWX6dixo5FkJk6caK+lMuom6ifqp4JUP3FEkwvs3r1bTZs2tSfqktS8eXOdPXtWf/31lw4ePKjU1FSHvWHFihVTjRo1cpxn9+7ddf78eVWpUkUDBw7Up59+qkuXLjnVrozU1BlFixbVjh079MMPP2jy5Mlq0KCBfW+bJO3cuVPjx4+3n48bGBiogQMHKj4+XufOndPevXsVGhrqcD5qTnsBGzZsaH+cnJysAwcO6NFHH3WY9yuvvKIDBw5IurwHYceOHapRo4aefPJJrV271j69M9tr9+7dCg0NVWhoqH1Y7dq1Vbx4ce3evds+LCAgQDt27NCWLVvUt29fNW7c2GGeaWlpevnll1WvXj2VLFlSgYGBWrNmTZZzpW+99VaH5+XKlbOn9hltyZzON23aNEt7w8PDHfYyNW/eXOnp6dq7d699WJ06deTh8b+PfEhIiMNeSU9PT5UqVeqqewwk6c4779SOHTvs/9566y17O67WzzNEREQ4zG/nzp3asGGDw/tas2ZNSZfPZQ4PD9ddd92levXqqXv37po5c6b++eefq7bxSsYYp8bPbNGiRWrevLnKli2rwMBAvfjiiw7vYXR0tB577DG1bdtW//nPf+z9UZKefPJJvfLKK2revLnGjBmjn376yallv/TSSwoMDFSdOnWUkpLi8JnN/PnI8Pzzz6t48eLy9PSUzWbT4sWLJUmHDx/W6dOndeLECYfxixQpkmU+586dk81mU5MmTbRr1y6lpaXp9ttvV0pKih5++GEFBgZq79698vT0VNWqVSVJ/v7+uvXWW+19J3Mfdlbm/rV161ZFRkaqffv2+uOPPyRdu78nJSXpyJEjat68ucN8mzdvbv/8Xu27whl16tSxH40gOa733r17VaRIETVo0MD+erVq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xo36+uuvi+ynxZGQkKA1a9booYce0s8//6zU1FS99dZbSk9PV61atVSnTh1NmzZN27Zt03fffaf4+Hin+QMCAuTt7e24qO25R4rm8/X11YMPPqiRI0dqwYIF+u233zRo0CCdPHlS9913X6lrh2swfqra4yfp7I8c7u7ujKEYQ5V4DPXmm286QoTvvvtOmzZt0ubNm7VixQrl5eU5TtFKTEyUJH3yySdO79tmzZopNTVV1apVU1JSkoYNG6aVK1c69bfhw4dr5syZkqRp06bp3nvvLTRgq1mzpnr16qXnnntO119/ve68805FRUUpICBA9evXV3Jysn766aci/57nY/zE+KlCj5+KfTUnXFD+xd/O/3ffffcZY0p3e9727dubUaNGOaY59+JlX3zxhenQoYPx9/c3vr6+5p///KfTBbtWrlxp2rZt67gQnjGF3173s88+MxEREcbT09PUrVvX3H777UVuY2Hz569Lklm1apUxxpgFCxaYTp06GW9vb+Pv72/at29vpk2b5pg+//a8np6epkWLFua///2vkWQWLFhgjCn6QmbGGPPxxx876q1Vq5bp2rWr4+KE06ZNMxEREcbX19f4+/ub6667zqxbt65Y+6ukt+cNDw83/v7+TrW98sorpmbNmqZevXrmxIkT5vDhw6ZXr17Gz8/PBAQEmKefftrExMQ4XdTv/FswG2NMr169TGxsrOP55s2bTZcuXYynp6e57LLLzIIFCwpcbK+4t+Y9V2Hr/rsL5Flxa97z12nM2dsP33bbbaZmzZrG29vbtGjRwowYMcLk5eWZ3377zURHRztuwXnZZZeZ119/3THvwYMHzfXXX++4cHZRt3415uztUocOHWoaNmxoPD09TUhIiLn11lud5jl/344cOdLUqVPH+Pn5mX79+plXXnnF8T7Iysoyd955p+O2z/Xr1zfDhg1zXChv2LBhpkmTJsZut5t69eqZAQMGmPT0dGNMwQsA/vnnn0aSue2220yjRo2Mh4eH8fLyMu7u7ubFF180mZmZxpiz71lJplq1ak7v2dOnT5uuXbsam81mJJnAwEDzr3/9y+m9lJOTY/75z386pmnVqpWJiYlxuhh4t27dzJAhQxy35vXy8jJNmjQxDRo0MB4eHiY4ONhceeWVxs/Pzxjz1+fCF1984fisOfdxSf5G53+OVq9e3Vx11VUFLhBbnNvzjhkzxoSEhBgPD48Ct+e90GeFMWdvW960aVNTrVq1v70977nyLwaab9++febGG280drvdNGzY0MycOdMEBASYKVOmFLr9+Y4ePWpGjRplmjVrZjw9PU1gYKCJiooyX3zxheMCnOe/VydOnGiCg4ONt7e3iY6ONh988IFT/7pQX3zuuedMy5Ytjbe3t6ldu7bp1auX2b59uzGmdBezNObsZ0GnTp2M3W43NWvWNNHR0Y7XFy9ebFq2bGnsdrtp27atWbp0aYH33fTp001oaKhxc3Mr8va8p06dMg8//LCpW7fuBW/Pe25d69evN5LMjh07Lvg3QPlh/FS1xk+JiYmmVq1aTu/lV155xTRs2NAkJyczhmIMVaoxVP4FpIODg42Hh4fx8/MzjRs3Nl5eXo7xU359YWFhTu/b06dPm4EDBxofHx/j5uZm3NzcTP369U2jRo0c76ecnBwzfPhwY7fbHWOoJk2aFLgY+PDhw82RI0fMgAEDjL+/v6lWrZrx9vZ2jJ9uu+028+yzzzq+R/P3Rf64ifHTWYyfKsf4yWbMRVw9C2UmMzNTISEhevnllyv9r7PLly9Xly5dtG3bNsfFhQGgsvnjjz8UGhrquPAkAOsxfgKAyoXxU8VUzdUF4Kz169crNTVV7du317Fjx/Tss89Kknr16uXiyqz3xRdfyM/PT82aNdO2bds0fPhwde7cmUESgErlu+++04kTJ9SmTRvt379fjz/+uMLCwtS1a1dXlwZUGoyfGD8BqFwYP1UOBE2XkJdeekmbN2+Wp6enIiMj9cMPP6hu3bquLstyx48f1xNPPKHdu3erbt26ioqK0ssvv+zqsgDAUjk5OXryySe1fft2Va9eXZ06ddLHH39c4G4rAC4O4ycAqDwYP1UOnDoHAAAAAAAAS3DXOQAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCypHNZtOYMWMcz9977z3ZbDbt3Lnzb+ddsGCBIiIi5OXlJZvNpqNHj5ZZnSUVFhamgQMHumz9AwcOVFhYmFPbiRMndP/99ysoKEg2m00jRozQzp07ZbPZ9N5775V7jd27d1f37t3Lfb2udDH94vz3CgAAZWnNmjXq1KmTfH19ZbPZtGHDBleX5ODqMcSYMWNks9mc2s6cOaPHH39coaGhcnNzU+/evSW57vu7sLFgZXcx/cLVY3dUfgRNqDTyQ5v8f9WqVVNISIgGDhyovXv3urq8i3L48GH17dtX3t7emjx5sj788EP5+vqW+Xp///13DRkyRI0bN5aXl5f8/f3VuXNnvfrqqzp16lSZr/9ijB8/Xu+9954efPBBffjhhxowYECZr/O3337TmDFjihUclpelS5c63hMfffRRodN07txZNptNrVu3LufqAABl4fwx0bn/Ro0a5Zhu0aJFuu+++9S6dWu5u7tXuf9Rz5eTk6M+ffroyJEjeuWVV/Thhx+qYcOGZb7etLQ0PfbYY2rRooV8fHzk6+uryMhIjR079pL6QbEwM2bM0Isvvqg77rhD77//vh555JEyX+e+ffs0ZsyYSyoEzP8R02azaezYsYVOc/fdd8tms8nPz6+cqwNcp5qrCwCs9uyzz6pRo0Y6ffq0/u///k/vvfeeli1bpl9//VVeXl6uLq9U1qxZo+PHj+u5555TVFRUuaxz3rx56tOnj+x2u2JiYtS6dWtlZ2dr2bJlGjlypDZu3Khp06aVSy1/Z/r06crLy3Nq++677/TPf/5TiYmJjjZjjE6dOiUPD48yqeO3335TUlKSunfvXmCwvmjRojJZZ3F5eXlp5syZuueee5zad+7cqRUrVlTY9wYAoGj5Y6JznfujwsyZMzVr1ixdeeWVql+/fnmXd8n4/ffftWvXLk2fPl33339/uaxzzZo16tmzp06cOKF77rlHkZGRkqQff/xRzz//vL7//nuXjx3yPf30004BpXR2nBUSEqJXXnnFqf3UqVOqVq1s/hdz3759SkpKUlhYmCIiIpxeK2wsWJ68vLz0ySef6Omnn3Zqz8zM1FdffcU4C1UOQRMqnRtvvFHt2rWTJN1///2qW7euJkyYoLlz56pv374urq50Dh48KEmqWbOmZcvMzMws8qioHTt26M4771TDhg313XffKTg42PHa0KFDtW3bNs2bN8+yWi5WYcHRwYMH1apVK6c2m83msi96T09Pl6w3X8+ePTV37lylp6erbt26jvaZM2cqMDBQzZo1059//unCCgEAVjt3TFSY8ePHa/r06fLw8NDNN9+sX3/9tRyrs8aFxjPFVd7jrKNHj+q2226Tu7u71q9frxYtWji9Pm7cOE2fPt2yWi5WtWrVCoRHBw8eLHR/uWqcVVY/IhZXz5499fnnn+unn35SeHi4o/2rr75Sdna2brjhBn333XcurBAoX5w6h0rv6quvlnT216pzpaam6o477lDt2rXl5eWldu3aae7cuQXmP3r0qB555BGFhYXJbrerQYMGiomJUXp6uiQpOztbo0ePVmRkpGrUqCFfX19dffXVWrJkiSX1d+/eXbGxsZKkq666Sjabzemc6tmzZysyMlLe3t6qW7eu7rnnngKnCg4cOFB+fn76/fff1bNnT1WvXl133313ket84YUXdOLECb3zzjtOIVO+pk2bavjw4UXOf+TIET322GNq06aN/Pz85O/vrxtvvFE//fRTgWlff/11XX755fLx8VGtWrXUrl07zZw50/H68ePHNWLECMf+DwgI0PXXX69169Y5bV/+EUT5p4rt2LFD8+bNcxzOvHPnziKv0ZSamqq+ffuqXr168vb2VvPmzfXUU085Xt+1a5ceeughNW/eXN7e3qpTp4769OnjdIrce++9pz59+kiSrrnmGsd6ly5dKqnw8+gPHjyo++67T4GBgfLy8lJ4eLjef/99p2nya37ppZc0bdo0NWnSRHa7XVdddZXWrFlT5N/gfL169ZLdbtfs2bOd2mfOnKm+ffvK3d29wDxnzpzRc88951hnWFiYnnzySWVlZTlNZ4zR2LFj1aBBA/n4+Oiaa67Rxo0bC63j6NGjGjFihEJDQ2W329W0aVNNmDDhb3+FLE4/AACUTP369S/qf9CL+9m8atUq9ezZU7Vq1ZKvr6/atm2rV1991Wma7777TldffbV8fX1Vs2ZN9erVS5s2bXKaJv9aQb/99pvuuusu1apVS126dHG8/tFHHznGRLVr19add96pPXv2XHAbBg4cqG7dukmS+vTpI5vN5vR9bUVd55s6dar27t2riRMnFgiZJCkwMLDAkTHnKsnY89NPP1VkZKSqV68uf39/tWnTxmnf5+TkKCkpSc2aNZOXl5fq1KmjLl26aPHixQW2T/prXLJkyRJt3LixwHinsGs07d27V/fdd5/q168vu92uRo0a6cEHH1R2drak4o0bly5dqquuukqSFBcX51hv/piusGs0ZWZm6tFHH3WMOZo3b66XXnpJxhin6Ww2m4YNG6Yvv/xSrVu3lt1u1+WXX64FCxYU+Tc4X8eOHdWoUSOnMawkffzxx7rhhhtUu3btQud78803dfnll8tut6t+/foaOnRooadN5o8Bvb291b59e/3www+FLi8rK0uJiYlq2rSp7Ha7QkND9fjjjxcYu52vOP0AKAmOaEKllx8G1KpVy9G2ceNGde7cWSEhIRo1apR8fX31n//8R71799Znn32m2267TdLZC0pfffXV2rRpk+69915deeWVSk9P19y5c/XHH3+obt26ysjI0Ntvv63+/ftr0KBBOn78uN555x1FR0dr9erVBQ7tLamnnnpKzZs317Rp0xyHwDdp0kTS2XAjLi5OV111lZKTk5WWlqZXX31Vy5cv1/r1651+aTpz5oyio6PVpUsXvfTSS/Lx8Slynf/973/VuHFjderUqVQ1b9++XV9++aX69OmjRo0aKS0tTVOnTlW3bt3022+/OQ7Pnz59uv7973/rjjvu0PDhw3X69Gn9/PPPWrVqle666y5J0gMPPKA5c+Zo2LBhatWqlQ4fPqxly5Zp06ZNuvLKKwusu2XLlvrwww/1yCOPqEGDBnr00UclSfXq1dOhQ4cKTP/zzz/r6quvloeHhwYPHqywsDD9/vvv+u9//6tx48ZJOnt4+4oVK3TnnXeqQYMG2rlzp9566y11795dv/32m3x8fNS1a1f9+9//1muvvaYnn3xSLVu2dNRTmFOnTql79+7atm2bhg0bpkaNGmn27NkaOHCgjh49WiDImzlzpo4fP64hQ4bIZrPphRde0O23367t27cX638SfHx81KtXL33yySd68MEHJUk//fSTNm7cqLfffls///xzgXnuv/9+vf/++7rjjjv06KOPatWqVUpOTtamTZv0xRdfOKYbPXq0xo4dq549e6pnz55at26devTo4RhA5jt58qS6deumvXv3asiQIfrHP/6hFStWKCEhQfv379ekSZOKrL+k/QAAIB07dszxw1i+c49qvVjF+WxevHixbr75ZgUHB2v48OEKCgrSpk2b9PXXXzu+67799lvdeOONaty4scaMGaNTp07p9ddfV+fOnbVu3boCAUKfPn3UrFkzjR8/3hEajBs3Ts8884z69u2r+++/X4cOHdLrr7+url27FhgTnWvIkCEKCQnR+PHj9e9//1tXXXWVAgMDLaurMHPnzpW3t7fuuOOOUux1FXvsuXjxYvXv31/XXXedJkyYIEnatGmTli9f7tj3Y8aMUXJysu6//361b99eGRkZ+vHHH7Vu3Tpdf/31BdZdr149ffjhhxo3bpxOnDih5ORkSUWPd/bt26f27dvr6NGjGjx4sFq0aKG9e/dqzpw5OnnypDw9PYs1bmzZsqWeffZZjR49WoMHD3b8kFzUWNUYo1tvvVVLlizRfffdp4iICC1cuFAjR47U3r17C5zyt2zZMn3++ed66KGHVL16db322mv617/+pd27d6tOnTrF+rv0799fH330kZ5//nnZbDalp6dr0aJF+vDDDwsNrcaMGaOkpCRFRUXpwQcf1ObNm/XWW29pzZo1Wr58uWN8984772jIkCHq1KmTRowYoe3bt+vWW29V7dq1FRoa6lheXl6ebr31Vi1btkyDBw9Wy5Yt9csvv+iVV17Rli1b9OWXXxZZe0n7AfC3DFBJvPvuu0aS+fbbb82hQ4fMnj17zJw5c0y9evWM3W43e/bscUx73XXXmTZt2pjTp0872vLy8kynTp1Ms2bNHG2jR482ksznn39eYH15eXnGGGPOnDljsrKynF77888/TWBgoLn33nud2iWZxMTEAjXv2LGjWNu2Zs0aR1t2drYJCAgwrVu3NqdOnXK0f/3110aSGT16tKMtNjbWSDKjRo264HqMMebYsWNGkunVq9ffTpuvYcOGJjY21vH89OnTJjc312maHTt2GLvdbp599llHW69evczll19+wWXXqFHDDB069ILTxMbGmoYNGxao6aabbipQgyTz7rvvOtq6du1qqlevbnbt2uU0bf7f1xhjTp48WWCdK1euNJLMBx984GibPXu2kWSWLFlSYPpu3bqZbt26OZ5PmjTJSDIfffSRoy07O9t07NjR+Pn5mYyMDKea69SpY44cOeKY9quvvjKSzH//+9+CO+QcS5YsMZLM7Nmzzddff21sNpvZvXu3McaYkSNHmsaNGzvqO/dvsWHDBiPJ3H///U7Le+yxx4wk89133xljjDl48KDx9PQ0N910k9M+e/LJJ40kp37x3HPPGV9fX7NlyxanZY4aNcq4u7s76jKm4HulOP0AAHBW/rihsH9Fuemmmwp8l/6dv/tsPnPmjGnUqJFp2LCh+fPPP51eO/c7IyIiwgQEBJjDhw872n766Sfj5uZmYmJiHG2JiYlGkunfv7/Tsnbu3Gnc3d3NuHHjnNp/+eUXU61atQLt5zv3u/JcF1tXUWrVqmXCw8OLNa0xBccQxR17Dh8+3Pj7+5szZ84Uuezw8PAC46Xz5W/f+TUVNoY7//s7JibGuLm5OY1h8+X3geKOG9esWVNgHJfv/LHgl19+aSSZsWPHOk13xx13GJvNZrZt2+ZUs6enp1PbTz/9ZCSZ119/vcC6zq9TknnxxRfNr7/+aiSZH374wRhjzOTJk42fn5/JzMw0sbGxxtfX1zFf/vipR48eTtv+xhtvGElmxowZxpi/xvsRERFOf/Np06YZSU794sMPPzRubm6O9eebMmWKkWSWL1/uaDt/7F6cfgCUBKfOodKJiopSvXr1FBoaqjvuuEO+vr6aO3euGjRoIOns4bnfffed+vbtq+PHjys9PV3p6ek6fPiwoqOjtXXrVsepZ5999pnCw8MdRzidK/8QYnd3d8f1d/Ly8nTkyBGdOXNG7dq1K9PTen788UcdPHhQDz30kNP58DfddJNatGhR6DWU8o9kuZCMjAxJUvXq1Utdm91ul5vb2Y+X3NxcHT58WH5+fmrevLnTPqlZs6b++OOPC54CVrNmTa1atUr79u0rdT1FOXTokL7//nvde++9+sc//uH02rm38fX29nY8zsnJ0eHDh9W0aVPVrFmz1H/j+fPnKygoSP3793e0eXh46N///rdOnDih//3vf07T9+vXz+movPxf8rZv317sdfbo0UO1a9fWp59+KmOMPv30U6f1n1+fJMXHxzu15x8hlt+/vv32W2VnZ+vhhx922mcjRowosMzZs2fr6quvVq1atRzvu/T0dEVFRSk3N1fff/99kbWXZT8AgMpq8uTJWrx4sdM/K/3dZ/P69eu1Y8cOjRgxosARRfnfGfv379eGDRs0cOBAp9OL2rZtq+uvv97xfXSuBx54wOn5559/rry8PPXt29fp+yUoKEjNmjUr1eUMrKirKBkZGRc1ziru2LNmzZrKzMy84N+9Zs2a2rhxo7Zu3VrqeoqSl5enL7/8Urfcckuh1wrL7wPFHTeWxPz58+Xu7q5///vfTu2PPvqojDH65ptvnNqjoqIcZwxIZ//O/v7+JRpnXX755Wrbtq0++eQTSWePRu/Vq1ehZxHkj59GjBjh2HZJGjRokPz9/R3jrPzx/gMPPOB0vc+BAweqRo0aTsucPXu2WrZsqRYtWji9D6699lpJuuD7oCz7AaomgiZUOvmDqjlz5qhnz55KT0+X3W53vL5t2zYZY/TMM8+oXr16Tv/y71CWf1HI33//vVi3fH///ffVtm1bxznN9erV07x583Ts2LGy2UidvW6QJDVv3rzAay1atHC8nq9atWqOsO1C/P39JZ297kJp5eXl6ZVXXlGzZs1kt9tVt25d1atXTz///LPTPnniiSfk5+en9u3bq1mzZho6dKiWL1/utKwXXnhBv/76q0JDQ9W+fXuNGTOmRF/6F5K/nL/7G586dUqjR492nOOfvz1Hjx4t9d94165datasmdPgQvrr0PPz/37nB2H5oVNJLuDt4eGhPn36aObMmfr++++1Z88exymKhdXn5uampk2bOrUHBQWpZs2ajvry/9usWTOn6erVq+cUjEnS1q1btWDBggLvu/w7Kea/7wpTlv0AACqr9u3bKyoqyulfSeXm5urAgQNO//JPjf67z+b862Ne6Hv2QuOZli1bKj09XZmZmU7t599Jb+vWrTLGqFmzZgW+YzZt2nTB75eyrKso/v7+FzXOkoo39nzooYd02WWX6cYbb1SDBg107733FjiF69lnn9XRo0d12WWXqU2bNho5cmShp9OXxqFDh5SRkfG346zijhtLYteuXapfv36BQK+44yzp7FirpDdKueuuuzR79mxt27ZNK1asuOA4SyrYvzw9PdW4ceO/HWd5eHiocePGTm1bt27Vxo0bC7wHLrvsMkkXHmeVZT9A1cQ1mlDptG/f3vGrSe/evdWlSxfddddd2rx5s/z8/BwXHX7ssccUHR1d6DLO/5/rC/noo480cOBA9e7dWyNHjlRAQIDc3d2VnJxc4ALkrnTur0UX4u/vr/r161/UnWfGjx+vZ555Rvfee6+ee+451a5dW25ubhoxYoTTRZ9btmypzZs36+uvv9aCBQv02Wef6c0339To0aOVlJQkSerbt6+uvvpqffHFF1q0aJFefPFFTZgwQZ9//rluvPHGUtdYEg8//LDeffddjRgxQh07dlSNGjVks9l05513ltutdAu7WLekC14DojB33XWXpkyZojFjxig8PLzAnfnOd+5RShcrLy9P119/vR5//PFCX88fCBXmUugHAFAV7dmzp0CAsmTJEnXv3t1ln83nHmksnf1+sdls+uabbwr9vvTz8yuzWi5UV1FatGihDRs2KDs7u1R3pS3u2DMgIEAbNmzQwoUL9c033+ibb77Ru+++q5iYGMfNR7p27arff/9dX331lRYtWqS3335br7zyiqZMmaL777+/xLWVRnHHjWXJqnFW//79lZCQoEGDBqlOnTrq0aOHFeUVS15entq0aaOJEycW+vq513M636XQD1C5EDShUsv/0r3mmmv0xhtvaNSoUY7038PD429/2WvSpMnfBi5z5sxR48aN9fnnnzv9T3n+0VFlpWHDhpKkzZs3Ow6Jzbd582bH66Vx8803a9q0aVq5cqU6duxY4vnnzJmja665Ru+8845T+9GjRwtchNTX11f9+vVTv379lJ2drdtvv13jxo1TQkKC45TA4OBgPfTQQ3rooYd08OBBXXnllRo3btxFD2Lz+0Jx/saxsbF6+eWXHW2nT58ucFeQkoQyDRs21M8//6y8vDynADA1NdXxelno0qWL/vGPf2jp0qWOC4MWVV9eXp62bt3qdIHPtLQ0HT161FFf/n+3bt3q9MvaoUOHCvwK2KRJE504caJUv6hLZdcPAABFCwoKKnDq1bm3b7/QZ3P+qUi//vprkZ/9545nzpeamqq6devK19f3gjU2adJExhg1atTogj9alIQVdRXllltu0cqVK/XZZ58VeQr7hZRk7Onp6albbrlFt9xyi/Ly8vTQQw9p6tSpeuaZZxw/rNauXVtxcXGKi4vTiRMn1LVrV40ZM+aiA4Z69erJ39+/WOOs4owbSzrO+vbbb3X8+HGno5rKepz1j3/8Q507d9bSpUv14IMPqlq1wv93+9z+de74KTs7Wzt27HC8X84dZ5073s/JydGOHTuc3otNmjTRTz/9pOuuu65UPxSWVT9A1cSpc6j0unfvrvbt22vSpEk6ffq0AgIC1L17d02dOlX79+8vMP25dyb717/+pZ9++snpDlv58n/hyP8F5NxfPFatWqWVK1davSlO2rVrp4CAAE2ZMsXplqXffPONNm3apJtuuqnUy3788cfl6+ur+++/X2lpaQVe//333wvclvhc7u7uBX4Bmj17tuPaV/kOHz7s9NzT01OtWrWSMUY5OTnKzc0tcMh0QECA6tev/7e3aS2OevXqqWvXrpoxY4Z2797t9Nq59Re2Pa+//rpyc3Od2vIHnIXdlvZ8PXv21IEDBzRr1ixH25kzZ/T666/Lz8/Pcatlq9lsNr322mtKTEzUgAEDLlifpAJ3gsv/lSy/f0VFRcnDw0Ovv/660z4q7A5yffv21cqVK7Vw4cICrx09elRnzpwptJay7gcAgKJ5eXkVOP2uVq1axfpsvvLKK9WoUSNNmjSpwHdj/ndGcHCwIiIi9P777ztN8+uvv2rRokWO76MLuf322+Xu7q6kpKQC39fGmALjjeKwoq6iPPDAAwoODtajjz6qLVu2FHj94MGDGjt2bJHzF3fsef52u7m5qW3btpLk+BudP42fn5+aNm1qyferm5ubevfurf/+97/68ccfC7x+7li6OOPGko6zcnNz9cYbbzi1v/LKK7LZbGX6I9XYsWOVmJiohx9+uMhpoqKi5Onpqddee81p29955x0dO3bMMc5q166d6tWrpylTpjjdzfe9994rsB/69u2rvXv3avr06QXWd+rUqQKnep6rLPsBqiaOaEKVMHLkSPXp00fvvfeeHnjgAU2ePFldunRRmzZtNGjQIDVu3FhpaWlauXKl/vjjD/3000+O+ebMmaM+ffro3nvvVWRkpI4cOaK5c+dqypQpCg8P180336zPP/9ct912m2666Sbt2LFDU6ZMUatWrXTixIky2yYPDw9NmDBBcXFx6tatm/r376+0tDS9+uqrCgsL0yOPPFLqZTdp0kQzZ85Uv3791LJlS8XExKh169bKzs7WihUrNHv2bA0cOLDI+W+++WY9++yziouLU6dOnfTLL7/o448/LnAueY8ePRQUFKTOnTsrMDBQmzZt0htvvKGbbrpJ1atX19GjR9WgQQPdcccdCg8Pl5+fn7799lutWbPG6eiii/Haa6+pS5cuuvLKKzV48GA1atRIO3fu1Lx587RhwwbH9nz44YeqUaOGWrVqpZUrV+rbb78tcLvbiIgIubu7a8KECTp27JjsdruuvfZaBQQEFFjv4MGDNXXqVA0cOFBr165VWFiY5syZo+XLl2vSpEkXdZHQv9OrVy/16tXrgtOEh4crNjZW06ZN09GjR9WtWzetXr1a77//vnr37q1rrrlG0tmw7rHHHlNycrJuvvlm9ezZU+vXr9c333xT4Oi1kSNHau7cubr55ps1cOBARUZGKjMzU7/88ovmzJmjnTt3Fnrb7ePHj5d5PwCAqujnn3/W3LlzJZ29huWxY8ccAUd4eLhuueWWIuctzmezm5ub3nrrLd1yyy2KiIhQXFycgoODlZqaqo0bNzp+eHjxxRd14403qmPHjrrvvvt06tQpvf7666pRo4bGjBnzt9vRpEkTjR07VgkJCdq5c6d69+6t6tWra8eOHfriiy80ePBgPfbYYyXePxdbV1Fq1aqlL774Qj179lRERITuueceRUZGSpLWrVunTz755IJHlBd37Hn//ffryJEjuvbaa9WgQQPt2rVLr7/+uiIiIhxHK7dq1Urdu3dXZGSkateurR9//FFz5szRsGHDSr195xo/frwWLVqkbt26afDgwWrZsqX279+v2bNna9myZapZs2axx41NmjRRzZo1NWXKFFWvXl2+vr7q0KFDodfGuuWWW3TNNdfoqaee0s6dOxUeHq5Fixbpq6++0ogRI5wu/G21bt26/e0PhvXq1VNCQoKSkpJ0ww036NZbb9XmzZv15ptv6qqrrtI999wj6ex4f+zYsRoyZIiuvfZa9evXTzt27NC7775bYP8MGDBA//nPf/TAAw9oyZIl6ty5s3Jzc5Wamqr//Oc/WrhwYaEXZZfKvh+gCirXe9wBZSj/Vr6F3T41NzfXNGnSxDRp0sRxi9fff//dxMTEmKCgIOPh4WFCQkLMzTffbObMmeM07+HDh82wYcNMSEiI8fT0NA0aNDCxsbEmPT3dGHP21qzjx483DRs2NHa73VxxxRXm66+/LnCbVWMK3vI1v+YdO3aUettmzZplrrjiCmO3203t2rXN3Xffbf744w+nac6/pWpxbdmyxQwaNMiEhYUZT09PU716ddO5c2fz+uuvm9OnTzumO/8WqadPnzaPPvqoCQ4ONt7e3qZz585m5cqVBW7PO3XqVNO1a1dTp04dY7fbTZMmTczIkSPNsWPHjDHGZGVlmZEjR5rw8HBTvXp14+vra8LDw82bb75ZYPvO39cNGzYscJvW/FvQnn9b3F9//dXcdtttpmbNmsbLy8s0b97cPPPMM47X//zzTxMXF2fq1q1r/Pz8THR0tElNTS2w3cYYM336dNO4cWPj7u5uJJklS5YYYwremtgYY9LS0hzL9fT0NG3atClQ27m3zT3f+f2pMEXdsvl8hd2mOCcnxyQlJZlGjRoZDw8PExoaahISEpz+9sacfX8lJSU5/t7du3c3v/76a6H75/jx4yYhIcE0bdrU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dtD0888/F3uhbdu2LVUxAAAAlZWHh0eJxlMAAAAVUbGDpoiICNlsNhljCn09/zWbzabc3FzLCgQAAKgs7rnnHr3zzjt6/vnnXV0KAABAmSh20LRjx46yrAMAAKDSO3PmjGbMmKFvv/1WkZGR8vX1dXp94sSJLqoMAADAGsUOmho2bFiWdQAAAFR6v/76q6688kpJ0pYtW5xes9lsrigJAADAUsUOmubOnVvshd56662lKgYAAKAyW7JkiatLAAAAKFPFDpp69+5drOm4RhMAAMDf++OPPyRJDRo0cHElAAAA1nEr7oR5eXnF+kfIBAAAULi8vDw9++yzqlGjhho2bKiGDRuqZs2aeu6555SXl+fq8gAAAC5asY9oAgAAwMV56qmnHHed69y5syRp2bJlGjNmjE6fPq1x48a5uEIAAICLU+qgKTMzU//73/+0e/duZWdnO73273//+6ILAwAAqGzef/99vf32207Xs2zbtq1CQkL00EMPETQBAIAKr1RB0/r169WzZ0+dPHlSmZmZql27ttLT0+Xj46OAgACCJgAAgEIcOXJELVq0KNDeokULHTlyxAUVAQAAWKvY12g61yOPPKJbbrlFf/75p7y9vfV///d/2rVrlyIjI/XSSy9ZXSMAAEClEB4erjfeeKNA+xtvvKHw8HAXVAQAAGCtUh3RtGHDBk2dOlVubm5yd3dXVlaWGjdurBdeeEGxsbG6/fbbra4TAACgwnvhhRd000036dtvv1XHjh0lSStXrtSePXs0f/58F1cHAABw8Up1RJOHh4fc3M7OGhAQoN27d0uSatSooT179lhXHQAAQCXSrVs3bd68WbfddpuOHj2qo0eP6vbbb9fmzZt19dVXu7o8AACAi1aqI5quuOIKrVmzRs2aNVO3bt00evRopaen68MPP1Tr1q2trhEAAKDSCAkJ4aLfAACg0irVEU3jx49XcHCwJGncuHGqVauWHnzwQR06dEhTp061tEAAAIDK4t1339Xs2bMLtM+ePVvvv/++CyoCAACwVqmOaGrXrp3jcUBAgBYsWGBZQQAAAJVVcnJyoT/KBQQEaPDgwYqNjXVBVQAAANYp1RFNO3bs0NatWwu0b926VTt37rzYmgAAACql3bt3q1GjRgXaGzZs6LjmJQAAQEVWqiOaBg4cqHvvvVfNmjVzal+1apXefvttLV261IraKqRXFm9xdQnlLuvUScfj11O2yu7t48JqXOeR6y9zdQkAgEtcQECAfv75Z4WFhTm1//TTT6pTp45riroEVMXxk8QYSmL8BACVUamOaFq/fr06d+5coP2f//ynNmzYcLE1AQAAVEr9+/fXv//9by1ZskS5ubnKzc3Vd999p+HDh+vOO+90dXkAAAAXrVRHNNlsNh0/frxA+7Fjx5Sbm3vRRQEAAFRGzz33nHbu3KnrrrtO1aqdHYbl5eUpJiZG48ePd3F1AAAAF69UQVPXrl2VnJysTz75RO7u7pKk3NxcJScnq0uXLpYWCAAAUFl4enpq1qxZGjt2rDZs2CBvb2+1adNGDRs2dHVpAAAAlijVqXMTJkzQd999p+bNmysuLk5xcXFq3ry5vv/+e7344oslXt7kyZMVFhYmLy8vdejQQatXry7WfJ9++qlsNpt69+5d4nUCAAC4SrNmzdSnTx/deOON+vPPP/Xnn3+6uiQAAABLlCpoatWqlX7++Wf17dtXBw8e1PHjxxUTE6PU1FS1bt26RMuaNWuW4uPjlZiYqHXr1ik8PFzR0dE6ePDgBefbuXOnHnvsMV199dWl2QQAAIByN2LECL3zzjuSzh4N3q1bN1155ZUKDQ2t0jdTAQAAlUepTp2TpPr161tyLYGJEydq0KBBiouLkyRNmTJF8+bN04wZMzRq1KhC58nNzdXdd9+tpKQk/fDDDzp69OhF1wEAAFDW5syZo3vuuUeS9N///lfbt29XamqqPvzwQz311FNavny5iysEAAC4OKUOmn744QdNnTpV27dv1+zZsxUSEqIPP/xQjRo1KvZ1mrKzs7V27VolJCQ42tzc3BQVFaWVK1cWOd+zzz6rgIAA3Xffffrhhx8uuI6srCxlZWU5nmdkZEiScnJylJOTU6w6S8Jmqt7F0G3KdXpcFfeBpDLpT8VVVfc5fc+1/a4qO3e/l9X3SVVUFfZjenq6goKCJEnz589X3759ddlll+nee+/Vq6++6uLqAAAALl6pgqbPPvtMAwYM0N13361169Y5gpxjx45p/Pjxmj9/frGWk56ertzcXAUGBjq1BwYGKjU1tdB5li1bpnfeeUcbNmwo1jqSk5OVlJRUoH3RokXy8fEp1jJKopHlS7z0nT592vE47NQ2eRkvF1bjOvPnb3HZuqtiv5Poe5Jr+11Vdm7fW7hwoby8ql7fKwsnT550dQllLjAwUL/99puCg4O1YMECvfXWW5LObnv+DVYAAAAqslIFTWPHjtWUKVMUExOjTz/91NHeuXNnjR071rLiznf8+HENGDBA06dPV926dYs1T0JCguLj4x3PMzIyFBoaqh49esjf39/yGicv2Wb5Mi91Wba//sdgp3dT2b2sD/AqgqHXNHXZuqtiv5Poe5Jr+11VlpmZ6XgcHR0tX19fF1ZTeeQfdVyZxcXFqW/fvgoODpbNZlNUVJQkadWqVWrRooWLqwMAALh4pQqaNm/erK5duxZor1GjRomul1S3bl25u7srLS3NqT0tLc1xWPm5fv/9d+3cuVO33HKLoy0vL0+SVK1aNW3evFlNmjRxmsdut8tutxdYloeHhzw8PIpda3EZW9X7NdLI3elxVdwHksqkPxVXVd3n9D3X9ruq7Nz9XlbfJ1VRVdiPY8aMUevWrbVnzx716dPHMUZxd3cv8tqUAAAAFUmpgqagoCBt27ZNYWFhTu3Lli1T48aNi70cT09PRUZGKiUlRb1795Z0NjhKSUnRsGHDCkzfokUL/fLLL05tTz/9tI4fP65XX31VoaGhJd4WAACA8nTHHXdIkv744w/l5eXJzc1NsbGxLq4KAADAGqUKmgYNGqThw4drxowZstls2rdvn1auXKlHH31Uo0ePLtGy4uPjFRsbq3bt2ql9+/aaNGmSMjMzHXehi4mJUUhIiJKTk+Xl5aXWrVs7zV+zZk1JKtAOAABwKWvVqpU2bNhQoh/pAAAALnWlCppGjRqlvLw8XXfddTp58qS6du0qu92ukSNH6v777y/Rsvr166dDhw5p9OjROnDggCIiIrRgwQLHBcJ3794tNze30pQJAABwyTLGuLoEAAAAy5UqaLLZbHrqqac0cuRIbdu2TSdOnFCrVq00depUNWrUSAcOHCjR8oYNG1boqXKStHTp0gvO+95775VoXQAAAAAAACgbJTpUKCsrSwkJCWrXrp06d+6s+fPnq1WrVtq4caOaN2+uV199VY888khZ1QoAAFBpPPnkk6pdu7arywAAALBUiY5oGj16tKZOnaqoqCitWLFCffr0UVxcnP7v//5PL7/8svr06SN396p31ycAAICSSkhIcHUJAAAAlivREU2zZ8/WBx98oDlz5mjRokXKzc3VmTNn9NNPP+nOO+8kZAIAACiFPXv26N5773V1GQAAABetREc0/fHHH4qMjJR09i5vdrtdjzzyiGw2W5kUBwC4tL2yeIurS3CJrFMnHY9fT9kqu7ePC6txjUeuv8zVJVQqR44c0fvvv68ZM2a4uhQAAICLUqKgKTc3V56enn/NXK2a/Pz8LC8KAACgMpk7d+4FX9++fXs5VQIAAFC2ShQ0GWM0cOBA2e12SdLp06f1wAMPyNfX12m6zz//3LoKAQAAKrjevXvLZrPJGFPkNBwhDgAAKoMSXaMpNjZWAQEBqlGjhmrUqKF77rlH9evXdzzP/wcAAIC/BAcH6/PPP1deXl6h/9atW+fqEgEAACxRoiOa3n333bKqAwAAoNKKjIzU2rVr1atXr0Jf/7ujnQAAACqKEgVNAAAAKLmRI0cqMzOzyNebNm2qJUuWlGNFAABXqoo3VOFmKmdVhRuqEDQBAACUsZCQEDVq1KjI1319fdWtW7dyrAgAAKBslOgaTQAAACi5Zs2a6dChQ47n/fr1U1pamgsrAgAAKBsETQAAAGXs/OsvzZ8//4Kn0gEAAFRUBE0AAAAAAACwBNdoAgAAKGM2m002m61AGwBcrIzDB5Vx5NDfT/j/ZWeddjze+/smedq9SrQ+/9r15F8noETzAKhaCJoAAADKmDFGAwcOlN1ulySdPn1aDzzwgHx9fZ2m+/zzz11RHoAKbMW8WVr00RulmveN+LtKPE+Pe4bphpiHS7U+AFUDQRMAAEAZi42NdXp+zz33uKgSAJVNp5v6qXXHa8ttff6165XbugBUTARNAAAAZezdd991dQkAKin/OgGcygbgksLFwAEAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAIAKaPLkyQoLC5OXl5c6dOig1atXFznt9OnTdfXVV6tWrVqqVauWoqKiLjg9AABAaRE0AQAAVDCzZs1SfHy8EhMTtW7dOoWHhys6OloHDx4sdPqlS5eqf//+WrJkiVauXKnQ0FD16NFDe/fuLefKAQBAZVfN1QUAAACgZCZOnKhBgwYpLi5OkjRlyhTNmzdPM2bM0KhRowpM//HHHzs9f/vtt/XZZ58pJSVFMTExha4jKytLWVlZjucZGRmSpJycHOXk5Fi1KZIkm8m1dHkVhU25To+r4n6wui+VVFXc5ziLvlf++Mw7qyz6nqv78/kImgAAACqQ7OxsrV27VgkJCY42Nzc3RUVFaeXKlcVaxsmTJ5WTk6PatWsXOU1ycrKSkpIKtC9atEg+Pj4lL/wCGlm6tIrj9OnTjsdhp7bJy3i5sBrXmD9/i0vXX1X7Huh7rsBn3lll0fdOnjxp+TIvBkETAABABZKenq7c3FwFBgY6tQcGBio1NbVYy3jiiSdUv359RUVFFTlNQkKC4uPjHc8zMjIcp9z5+/uXrvgiTF6yzdLlVRRZtr/+x2Cnd1PZvawN8CqCodc0den6q2rfA33PFfjMO6ss+l7+UceXCoImAACAKuT555/Xp59+qqVLl8rLq+hfk+12u+x2e4F2Dw8PeXh4WFqTsblburyKwsjd6XFV3A9W96WSqor7HGfR98ofn3lnlUXfc3V/Ph9BEwAAQAVSt25dubu7Ky0tzak9LS1NQUFBF5z3pZde0vPPP69vv/1Wbdu2LcsyAQBAFcVd5wAAACoQT09PRUZGKiUlxdGWl5enlJQUdezYscj5XnjhBT333HNasGCB2rVrVx6lAgCAKogjmgAAACqY+Ph4xcbGql27dmrfvr0mTZqkzMxMx13oYmJiFBISouTkZEnShAkTNHr0aM2cOVNhYWE6cOCAJMnPz09+fn4u2w4AAFD5EDQBAABUMP369dOhQ4c0evRoHThwQBEREVqwYIHjAuG7d++Wm9tfB66/9dZbys7O1h133OG0nMTERI0ZM6Y8SwcAAJUcQRMAAEAFNGzYMA0bNqzQ15YuXer0fOfOnWVfEAAAgLhGEwAAAAAAACxC0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLEDQBAAAAAADAEgRNAAAAAAAAsARBEwAAAAAAACxB0AQAAAAAAABLXBJB0+TJkxUWFiYvLy916NBBq1evLnLa6dOn6+qrr1atWrVUq1YtRUVFXXB6AAAAAAAAlA+XB02zZs1SfHy8EhMTtW7dOoWHhys6OloHDx4sdPqlS5eqf//+WrJkiVauXKnQ0FD16NFDe/fuLefKAQAAAAAAcK5qri5g4sSJGjRokOLi4iRJU6ZM0bx58zRjxgyNGjWqwPQff/yx0/O3335bn332mVJSUhQTE1Ng+qysLGVlZTmeZ2RkSJJycnKUk5Nj5aZIkmwm1/JlXupsynV6XBX3gaQy6U/FVVX3OX3Ptf1Oou/lP66K+6Es+p6r+zMAAAAunkuDpuzsbK1du1YJCQmONjc3N0VFRWnlypXFWsbJkyeVk5Oj2rVrF/p6cnKykpKSCrQvWrRIPj4+pSv8AhpZvsRL3+nTpx2Pw05tk5fxcmE1rjN//haXrbsq9juJvie5tt9J9D2JvmelkydPWr5MAAAAlC+XBk3p6enKzc1VYGCgU3tgYKBSU1OLtYwnnnhC9evXV1RUVKGvJyQkKD4+3vE8IyPDcbqdv79/6YsvwuQl2yxf5qUuy/bX/xjs9G4qu5f1AV5FMPSapi5bd1XsdxJ9T3Jtv5PoexJ9z0r5Rx0DAACg4nL5qXMX4/nnn9enn36qpUuXysur8F+T7Xa77HZ7gXYPDw95eHhYXpOxuVu+zEudkbvT46q4DySVSX8qrqq6z+l7ru13En0v/3FV3A9l0fdc3Z8BAABw8VwaNNWtW1fu7u5KS0tzak9LS1NQUNAF533ppZf0/PPP69tvv1Xbtm3LskwA5STj8EFlHDlU7Omzs/46fWnv75vkaS/Z6Uv+tevJv05AieYBAAAAABTNpUGTp6enIiMjlZKSot69e0uS8vLylJKSomHDhhU53wsvvKBx48Zp4cKFateuXTlVC6CsrZg3S4s+eqNU874Rf1eJ5+lxzzDdEPNwqdYHAAAAACjI5afOxcfHKzY2Vu3atVP79u01adIkZWZmOu5CFxMTo5CQECUnJ0uSJkyYoNGjR2vmzJkKCwvTgQMHJEl+fn7y8/Nz2XYAuHidbuqn1h2vLbf1+deuV27rAgAAAICqwOVBU79+/XTo0CGNHj1aBw4cUEREhBYsWOC4QPju3bvl5ubmmP6tt95Sdna27rjjDqflJCYmasyYMeVZOgCL+dcJ4FQ2AAAAAKjAXB40SdKwYcOKPFVu6dKlTs937txZ9gUBAAAAAACgxNz+fhIAAAAAAADg7xE0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAVECTJ09WWFiYvLy81KFDB61evbrIaTdu3Kh//etfCgsLk81m06RJk8qvUAAAUKUQNAEAAFQws2bNUnx8vBITE7Vu3TqFh4crOjpaBw8eLHT6kydPqnHjxnr++ecVFBRUztUCAICqhKAJAACggpk4caIGDRqkuLg4tWrVSlOmTJGPj49mzJhR6PRXXXWVXnzxRd15552y2+3lXC0AAKhKqrm6AAAAABRfdna21q5dq4SEBEebm5uboqKitHLlSsvWk5WVpaysLMfzjIwMSVJOTo5ycnIsW48k2UyupcurKGzKdXpcFfeD1X2ppKriPsdZ9L3yx2feWWXR91zdn89H0AQAAFCBpKenKzc3V4GBgU7tgYGBSk1NtWw9ycnJSkpKKtC+aNEi+fj4WLYeSWpk6dIqjtOnTzseh53aJi/j5cJqXGP+/C0uXX9V7Xug77kCn3lnlUXfO3nypOXLvBgETQAAACggISFB8fHxjucZGRkKDQ1Vjx495O/vb+m6Ji/ZZunyKoos21//Y7DTu6nsXtYGeBXB0GuaunT9VbXvgb7nCnzmnVUWfS//qONLBUETAABABVK3bl25u7srLS3NqT0tLc3SC33b7fZCr+fk4eEhDw8Py9YjScbmbunyKgojd6fHVXE/WN2XSqoq7nOcRd8rf3zmnVUWfc/V/fl8XAwcAACgAvH09FRkZKRSUlIcbXl5eUpJSVHHjh1dWBkAAABHNAEAAFQ48fHxio2NVbt27dS+fXtNmjRJmZmZiouLkyTFxMQoJCREycnJks5eQPy3335zPN67d682bNggPz8/NW3q2tNHAABA5ULQBAAAUMH069dPhw4d0ujRo3XgwAFFRERowYIFjguE7969W25ufx24vm/fPl1xxRWO5y+99JJeeukldevWTUuXLi3v8gEAQCVG0AQAAFABDRs2TMOGDSv0tfPDo7CwMBljyqEqAABQ1XGNJgAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYIlqri4AAAAAAABULBmHDyrjyKFiT5+dddrxeO/vm+Rp9yrR+vxr15N/nYASzQPXIGgCAAAAAAAlsmLeLC366I1SzftG/F0lnqfHPcN0Q8zDpVofyhdBEwAAAAAAKJFON/VT647Xltv6/GvXK7d14eIQNAEAAAAAgBLxrxPAqWwoFBcDBwAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAlqjm6gIAAHC1jMMHlXHkULGnz8467Xi89/dN8rR7lWh9/rXryb9OQInmAQAAACoCgiYAQJW3Yt4sLfrojVLN+0b8XSWep8c9w3RDzMOlWh8AAABwKSNoAgBUeZ1u6qfWHa8tt/X5165XbusCAAAAyhNBEwCgyvOvE8CpbAAAAIAFuBg4AAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEsQNAEAAAAAAMASBE0AAAAAAACwBEETAAAAAAAALEHQBAAAAAAAAEtcEkHT5MmTFRYWJi8vL3Xo0EGrV6++4PSzZ89WixYt5OXlpTZt2mj+/PnlVCkAAAAAAACK4vKgadasWYqPj1diYqLWrVun8PBwRUdH6+DBg4VOv2LFCvXv31/33Xef1q9fr969e6t379769ddfy7lyAAAAAAAAnKuaqwuYOHGiBg0apLi4OEnSlClTNG/ePM2YMUOjRo0qMP2rr76qG264QSNHjpQkPffcc1q8eLHeeOMNTZkypcD0WVlZysrKcjzPyMiQJOXk5CgnJ8fy7bGZXMuXeamzKdfpcVXcB5LKpD8VV1Xd53Btv5Poe1VZWfQ9V/dnAAAAXDyXBk3Z2dlau3atEhISHG1ubm6KiorSypUrC51n5cqVio+Pd2qLjo7Wl19+Wej0ycnJSkpKKtC+aNEi+fj4lL74IjSyfImXvtOnTzseh53aJi/j5cJqXGf+/C0uW3dV7Hc4y5X9TqLvVWVl0fdOnjxp+TIBAABQvlwaNKWnpys3N1eBgYFO7YGBgUpNTS10ngMHDhQ6/YEDBwqdPiEhwSmYysjIUGhoqHr06CF/f/+L3AJIUmZmpuNxdHS0fH19XVgNAKCiyj/qGAAAABWXy0+dK2t2u112u71Au4eHhzw8PFxQUeVz7n5kvwIASovvDwAAgIrPpRcDr1u3rtzd3ZWWlubUnpaWpqCgoELnCQoKKtH0AAAAAAAAKB8uDZo8PT0VGRmplJQUR1teXp5SUlLUsWPHQufp2LGj0/SStHjx4iKnBwAAAAAAQPlw+alz8fHxio2NVbt27dS+fXtNmjRJmZmZjrvQxcTEKCQkRMnJyZKk4cOHq1u3bnr55Zd100036dNPP9WPP/6oadOmuXIzAAAAAAAAqjyXB039+vXToUOHNHr0aB04cEARERFasGCB44Lfu3fvlpvbXwdederUSTNnztTTTz+tJ598Us2aNdOXX36p1q1bu2oTAAAAAAAAoEsgaJKkYcOGadiwYYW+tnTp0gJtffr0UZ8+fcq4KgAAAAAAAJSES6/RBAAAAAAAgMqDoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCAAAAAACAJQiaAAAAAAAAYAmCJgAAAAAAAFiCoAkAAAAAAACWIGgCAACogCZPnqywsDB5eXmpQ4cOWr169QWnnz17tlq0aCEvLy+1adNG8+fPL6dKAQBAVULQBAAAUMHMmjVL8fHxSkxM1Lp16xQeHq7o6GgdPHiw0OlXrFih/v3767777tP69evVu3dv9e7dW7/++ms5Vw4AACq7aq4uAAAAACUzceJEDRo0SHFxcZKkKVOmaN68eZoxY4ZGjRpVYPpXX31VN9xwg0aOHClJeu6557R48WK98cYbmjJlSqHryMrKUlZWluN5RkaGJCknJ0c5OTmWbo/N5Fq6vIrCplynx1VxP1jdl0qqKu5znEXfg6uURd9zdX8+H0ETAABABZKdna21a9cqISHB0ebm5qaoqCitXLmy0HlWrlyp+Ph4p7bo6Gh9+eWXRa4nOTlZSUlJBdoXLVokHx+f0hVfhEaWLq3iOH36tONx2Klt8jJeLqzGNebP3+LS9VfVvgf6HlynLPreyZMnLV/mxSBoAgAAqEDS09OVm5urwMBAp/bAwEClpqYWOs+BAwcKnf7AgQNFrichIcEpnMrIyFBoaKh69Oghf3//i9gC5MvMzHQ8jo6Olq+vrwurAQBUVPlHHV8qCJoAAABQgN1ul91uL9Du4eEhDw8PF1RU+Zy7H9mvAIDSutS+P7gYOAAAQAVSt25dubu7Ky0tzak9LS1NQUFBhc4TFBRUoukBAABKi6AJAACgAvH09FRkZKRSUlIcbXl5eUpJSVHHjh0Lnadjx45O00vS4sWLi5weAACgtDh1DgXs379f+/fvL/b0p06dcjzesGGDvL29S7S+4OBgBQcHl2geAACqsvj4eMXGxqpdu3Zq3769Jk2apMzMTMdd6GJiYhQSEqLk5GRJ0vDhw9WtWze9/PLLuummm/Tpp5/qxx9/1LRp01y5GZUOYygAAAiaUIipU6cWepeZ4ujSpUuJ50lMTNSYMWNKtT4AAKqifv366dChQxo9erQOHDigiIgILViwwHHB7927d8vN7a8D1zt16qSZM2fq6aef1pNPPqlmzZrpyy+/VOvWrV21CZUSYygAACSbMca4uojylJGRoRo1aujYsWPcMaUIJf017mLxaxwAQOI7+lLH3+fvMYYCALjCpfYdzRFNKIBBCwAAQMkxhgIAgIuBAwAAAAAAwCIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAASxA0AQAAAAAAwBIETQAAAAAAALAEQRMAAAAAAAAsQdAEAAAAAAAAS1RzdQHlzRgjScrIyHBxJQAA4Fz5383539W4tDCGAgDg0nSpjaGqXNB0/PhxSVJoaKiLKwEAAIU5fvy4atSo4eoycB7GUAAAXNoulTGUzVwqkVc5ycvL0759+1S9enXZbDZXl1NpZGRkKDQ0VHv27JG/v7+ry0EVQt+Dq9D3rGeM0fHjx1W/fn25uXF2/6WGMVTZ4LMErkC/g6vQ98rGpTaGqnJHNLm5ualBgwauLqPS8vf35wMDLkHfg6vQ96x1KfwKh8IxhipbfJbAFeh3cBX6nvUupTGU66MuAAAAAAAAVAoETQAAAAAAALAEQRMsYbfblZiYKLvd7upSUMXQ9+Aq9D0AVuCzBK5Av4Or0Peqhip3MXAAAAAAAACUDY5oAgAAAAAAgCUImgAAAAAAAGAJgiYAAAAAAABYgqAJAAAAAAAAliBoqkDCwsI0adKkUs//3nvvqWbNmpbVU5lc7L4tbzabTV9++aWry6iUymvfLl26VDabTUePHnW0ffnll2ratKnc3d01YsSIcnnPDhw4UHXr1tWIESMkSd27d3c8xl/GjBmjiIgIV5fhUF6fWTt37pTNZtOGDRscbcuXL1ebNm3k4eGh3r17F9qXy8LAgQPVu3fvMl0HKifGT2Wnoo2fJMZQZakqjaHyv5Pyx02MnwrH+GmDo63KjZ8MLBEbG2t69epVpus4ePCgyczMLNa0DRs2NK+88opT28mTJ01aWlqp1//uu+8aSUaSsdlsJigoyPTt29fs2rWr1Mu8VJRk3xpz9u+dvy+qVatmwsLCzMiRI82pU6fKsMq/SDJffPFFuazrXOdu97n/tm7dWu61nFtTcd97+/fvN8OGDTONGjUynp6epkGDBubmm2823377rWOa8tq3WVlZZv/+/SYvL8/RVqdOHRMZGWnCwsKM3W43AQEB5qqrrjJvvvlmifpnUZYsWWIkmT///NPRFhsba2688UaTkZFhjDHm8OHDjsdWKe7f6Pz+Vbt2bRMdHW1++uknS+v5O4X1gePHj5v09PRyWf+xY8fMk08+aZo3b27sdrsJDAw01113nfnss88c/aWwz/iycObMGbN//36Tk5PjaGvfvr255557zJ49e8yff/5ZaF++GDt27DCSzPr1653ajx496tR3UTkwfqrYSjp+MoYxFGOoi3f+987+/fuNt7e3qVmzprHb7aZevXrmn//8p5kwYYIl4ydjCo6h8vdd/riJ8RPjp3MxfjKmWlkHWbBOvXr1Lmp+b29veXt7X9Qy/P39tXnzZhljtGPHDj300EPq06ePVq1adVHL/Ts5OTny8PAos+WXZt/ecMMNevfdd5WTk6O1a9cqNjZWNptNEyZMKIMKLx35232u0vbN7OxseXp6WlHW39q5c6c6d+6smjVr6sUXX1SbNm2Uk5OjhQsXaujQoUpNTS2XOvJ5enoqKCjI8fyXX37R4cOH5evr66jPbrfrl19+0bRp0xQSEqJbb7210GVd7PvD09NT1atXlyTVrl271Muxwrn968CBA3r66ad18803a/fu3S6ty8/PT35+fmW+nqNHj6pLly46duyYxo4dq6uuukrVqlXT//73Pz3++OO69tpry/XICnd3d6d+Kkm///67HnjgATVo0MDRdv40ZaFGjRplvg5UToyfLq3xk8QY6lyMoUru3DHU9u3b1alTJ506dUojR47UnXfe6TR+atGiRZmNnyTXj5vyMX5i/FQUl42fyj3aqqT+LnFeunSpueqqq4ynp6cJCgoyTzzxhFPCmZGRYe666y7j4+NjgoKCzMSJE023bt3M8OHDHdOcm8Dm5eWZxMREExoaajw9PU1wcLB5+OGHjTHGdOvWrcCvJcac/UWtRo0aTnXNnTvXtGvXztjtdlOnTh3Tu3fvIrehsPlfe+01I8kcO3bM0fbll1+aK664wtjtdtOoUSMzZswYp23dtGmT6dy5s7Hb7aZly5Zm8eLFTgl4fhr76aefmq5duxq73W7effddY4wx06dPNy1atDB2u900b97cTJ482bHcrKwsM3ToUBMUFGTsdrv5xz/+YcaPH/+3++v8fWuMMbt27TK33nqr8fX1NdWrVzd9+vQxBw4ccLweHh5u/P39zQcffGAaNmxo/P39TYMGDUx4eLhjmvT0dHPnnXea+vXrG29vb9O6dWszc+ZMp/3XrVs38/DDD5uRI0eaWrVqmcDAQJOYmOg0zZYtW8zVV1/t2F+LFi0q8IvBzz//bK655hrj5eVlateubQYNGmSOHz/ueD2/f44bN84EBASYGjVqmKSkJJOTk2Mee+wxU6tWLRMSEmJmzJhR8A9/jovt5926dTNDhw41w4cPN3Xq1DHdu3c3xhjzyy+/mBtuuMH4+vqagIAAc88995hDhw455ps9e7Zp3bq1Y/uuu+46c+LECZOYmFigry9ZsqTQ2m688UYTEhJiTpw4UeC1c1P+8/ft448/bpo1a2a8vb1No0aNzNNPP22ys7Mdr2/YsMF0797d+Pn5merVq5srr7zSrFmzxhhjzM6dO83NN99satasaXx8fEyrVq3MvHnzjDHOv4zlPz5/O859z+X/2jF37lzHr8AeHh7G3d3dJCYmmjNnzpiuXbsaT09PI8m4u7ubK6+80vErfP776tx/l19+uYmJiTF16tRxfNZ069bNDBkyxAwYMMDUrFnTeHl5mbCwMBMQEGB8fHxM+/btzRNPPGFq1KhhFixYYIKCgowkExkZaZo2bWp8fX1NdHS02bdvnzHGlOhvVFj/+uGHH4wkc/DgQUfb3/X33Nxck5SUZEJCQoynp6cJDw8333zzjeP1C31WNGzY0KnWhg0bOrbj3Pd3fq0vvviiCQoKMrVr1zYPPfSQU9/Yt2+f6dmzp2Mffvzxx3/7S9qDDz5ofH19zd69ewu8dvz4ccf76fzlvPzyy6Z169bGx8fHNGjQwDz44INO++RCffHIkSPmrrvuMnXr1jVeXl6madOmjs+Cc38dK6wPvfvuu4UeKbds2TLTrVs3xy/MPXr0MEeOHDHGGPPNN9+Yzp07mxo1apjatWubm266yWzbts0x7/nr6Natm9M+z3f69Gnz8MMPm3r16hm73W46d+5sVq9e7Xg9v65vv/3WREZGGm9vb9OxY0eTmppa5P5H+WP8VLXGT4mJiaZWrVrmyiuvdIyf+vXrZ2699VZzxRVXOKZjDMUYqrhjqKuuuuqCY6hzjxaRZP7xj38YNzc3I8k0b97cnDlzxtx7772mbt26xmazGZvNZqpXr2769+/vGENt27atwDqaNGlievXq5fi8yf/vkSNHzIABA0yNGjVMtWrVjN1uN97e3qZ9+/ZOdcXHxxs3Nzdjt9uNr6+v8fHxYfz0/zF+qhzjJ67RVA727t2rnj176qqrrtJPP/2kt956S++8847Gjh3rmCY+Pl7Lly/X3LlztXjxYv3www9at25dkcv87LPP9Morr2jq1KnaunWrvvzyS7Vp00aS9Pnnn6tBgwZ69tlntX//fu3fv7/QZcybN0+33XabevbsqfXr1yslJUXt27cv9nYdPHhQX3zxhdzd3eXu7i5J+uGHHxQTE6Phw4frt99+09SpU/Xee+9p3LhxkqTc3Fz17t1bPj4+WrVqlaZNm6annnqq0OWPGjVKw4cP16ZNmxQdHa2PP/5Yo0eP1rhx47Rp0yaNHz9ezzzzjN5//31J0muvvaa5c+fqP//5jzZv3qyPP/5YYWFhf7u/zpeXl6devXrpyJEj+t///qfFixdr+/bt6tevn9N0mZmZ+vLLL/X111/rtdde0759+3To0CHH66dPn1ZkZKTmzZunX3/9VYMHD9aAAQO0evVqp+W8//778vX11apVq/TCCy/o2Wef1eLFix213H777fL09NSqVas0ZcoUPfHEEwXqiI6OVq1atbRmzRrNnj1b3377rYYNG+Y03Xfffad9+/bp+++/18SJE5WYmKibb75ZtWrV0qpVq/TAAw9oyJAh+uOPP4r8m19Icfp5/vZ6enpq+fLlmjJlio4ePaprr71WV1xxhX788UctWLBAaWlp6tu3ryRp//796t+/v+69915t2rRJS5cu1e233y5jjB577DH17dtXN9xwg6Ovd+rUqUBtR44c0YIFCzR06FD5+voWeP1Cv3BUr15d7733nn777Te9+uqrmj59ul555RXH63fffbcaNGigNWvWaO3atRo1apTj17GhQ4cqKytL33//vX755RdNmDCh0F91mjdvLpvNJulsXy1sO2w2m+M9K539deKpp57SI488onvvvVd5eXmqUaOGXnjhBS1dulTPPPOMNmzYoOjoaElSaGioBgwYIEl6/fXX9b///U9XXnmlvvjiiwL1LF68WD/++KPm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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.linear_model import LinearRegression, LogisticRegression\n", + "from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier\n", + "from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer\n", + "from sklearn.preprocessing import OneHotEncoder\n", + "\n", + "# Загружаем набор данных\n", + "df = pd.read_csv(\".//static//csv//Starbucks Dataset.csv\")\n", + "\n", + "# Определяем категориальные и числовые столбцы\n", + "numerical_cols = [\"Open\", \"Close\", \"High\", \"Low\"]\n", + "\n", + "# Создаем преобразователь для категориальных и числовых столбцов\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " ('num', StandardScaler(), numerical_cols)\n", + " ])\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи регрессии\n", + "X_reg = df[numerical_cols]\n", + "y_reg = df['Volume']\n", + "\n", + "# Список моделей для задачи регрессии\n", + "models_reg = {\n", + " \"Linear Regression\": LinearRegression(),\n", + " \"Random Forest Regression\": RandomForestRegressor(),\n", + " \"Gradient Boosting Regression\": GradientBoostingRegressor()\n", + "}\n", + "\n", + "# Оценка смещения и дисперсии для задачи регрессии\n", + "mae_means = []\n", + "mae_stds = []\n", + "r2_means = []\n", + "r2_stds = []\n", + "\n", + "for name, model in models_reg.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " mae_scores = -cross_val_score(pipeline, X_reg, y_reg, cv=5, scoring='neg_mean_absolute_error')\n", + " r2_scores = cross_val_score(pipeline, X_reg, y_reg, cv=5, scoring='r2')\n", + " mae_means.append(mae_scores.mean())\n", + " mae_stds.append(mae_scores.std())\n", + " r2_means.append(r2_scores.mean())\n", + " r2_stds.append(r2_scores.std())\n", + "\n", + "# Визуализация результатов для задачи регрессии\n", + "fig, ax = plt.subplots(1, 2, figsize=(12, 6))\n", + "\n", + "ax[0].bar(models_reg.keys(), mae_means, yerr=mae_stds, align='center', alpha=0.5, ecolor='black', capsize=10)\n", + "ax[0].set_ylabel('MAE')\n", + "ax[0].set_title('Mean Absolute Error (MAE) for Regression Models')\n", + "ax[0].yaxis.grid(True)\n", + "\n", + "ax[1].bar(models_reg.keys(), r2_means, yerr=r2_stds, align='center', alpha=0.5, ecolor='black', capsize=10)\n", + "ax[1].set_ylabel('R²')\n", + "ax[1].set_title('R-squared (R²) for Regression Models')\n", + "ax[1].yaxis.grid(True)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "# Разделяем данные на признаки (X) и целевую переменную (y) для задачи классификации\n", + "X_class = df[numerical_cols]\n", + "y_class = (df['Volume'] > df['Volume'].mean()).astype(int)\n", + "\n", + "# Список моделей для задачи классификации\n", + "models_class = {\n", + " \"Logistic Regression\": LogisticRegression(),\n", + " \"Random Forest Classification\": RandomForestClassifier(),\n", + " \"Gradient Boosting Classification\": GradientBoostingClassifier()\n", + "}\n", + "\n", + "# Оценка смещения и дисперсии для задачи классификации\n", + "accuracy_means = []\n", + "accuracy_stds = []\n", + "precision_means = []\n", + "precision_stds = []\n", + "recall_means = []\n", + "recall_stds = []\n", + "f1_means = []\n", + "f1_stds = []\n", + "\n", + "for name, model in models_class.items():\n", + " pipeline = Pipeline(steps=[\n", + " ('preprocessor', preprocessor),\n", + " ('model', model)\n", + " ])\n", + " accuracy_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='accuracy')\n", + " precision_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='precision')\n", + " recall_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='recall')\n", + " f1_scores = cross_val_score(pipeline, X_class, y_class, cv=5, scoring='f1')\n", + " accuracy_means.append(accuracy_scores.mean())\n", + " accuracy_stds.append(accuracy_scores.std())\n", + " precision_means.append(precision_scores.mean())\n", + " precision_stds.append(precision_scores.std())\n", + " recall_means.append(recall_scores.mean())\n", + " recall_stds.append(recall_scores.std())\n", + " f1_means.append(f1_scores.mean())\n", + " f1_stds.append(f1_scores.std())\n", + "\n", + "# Визуализация результатов для задачи классификации\n", + "fig, ax = plt.subplots(2, 2, figsize=(12, 12))\n", + "\n", + "ax[0, 0].bar(models_class.keys(), accuracy_means, yerr=accuracy_stds, align='center', alpha=0.5, ecolor='black', capsize=10)\n", + "ax[0, 0].set_ylabel('Accuracy')\n", + "ax[0, 0].set_title('Accuracy for Classification Models')\n", + "ax[0, 0].yaxis.grid(True)\n", + "\n", + "ax[0, 1].bar(models_class.keys(), precision_means, yerr=precision_stds, align='center', alpha=0.5, ecolor='black', capsize=10)\n", + "ax[0, 1].set_ylabel('Precision')\n", + "ax[0, 1].set_title('Precision for Classification Models')\n", + "ax[0, 1].yaxis.grid(True)\n", + "\n", + "ax[1, 0].bar(models_class.keys(), recall_means, yerr=recall_stds, align='center', alpha=0.5, ecolor='black', capsize=10)\n", + "ax[1, 0].set_ylabel('Recall')\n", + "ax[1, 0].set_title('Recall for Classification Models')\n", + "ax[1, 0].yaxis.grid(True)\n", + "\n", + "ax[1, 1].bar(models_class.keys(), f1_means, yerr=f1_stds, align='center', alpha=0.5, ecolor='black', capsize=10)\n", + "ax[1, 1].set_ylabel('F1-score')\n", + "ax[1, 1].set_title('F1-score for Classification Models')\n", + "ax[1, 1].yaxis.grid(True)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "aisenv", + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}