{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Набор данных с ценами на мобильные устройства" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Вывод всех столбцов" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['Unnamed: 0', 'Name', 'Rating', 'Spec_score', 'No_of_sim', 'Ram',\n", " 'Battery', 'Display', 'Camera', 'External_Memory', 'Android_version',\n", " 'Price', 'company', 'Inbuilt_memory', 'fast_charging',\n", " 'Screen_resolution', 'Processor', 'Processor_name'],\n", " dtype='object')\n" ] } ], "source": [ "import pandas as pd \n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "print(df.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Бизнес-цели:\n", "1. Классифицировать мобильные устройства по ценовым категориям (например, бюджетные, средний класс, флагманы).\n", "2. Определить, какие характеристики мобильных устройств наиболее сильно влияют на их рейтинг." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Выполним разбиение на 3 выборки: обучающую, контрольную и тестовую" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки: 671\n", "Размер контрольной выборки: 288\n", "Размер тестовой выборки: 411\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки:\", len(train_df))\n", "print(\"Размер контрольной выборки:\", len(val_df))\n", "print(\"Размер тестовой выборки:\", len(test_df))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Распределение классов в company:\n", "company\n", "Vivo 186\n", "Realme 186\n", "Samsung 181\n", "Motorola 127\n", "Xiaomi 90\n", "Honor 88\n", "Poco 75\n", "OnePlus 75\n", "Huawei 62\n", "iQOO 57\n", "OPPO 38\n", "Oppo 27\n", "TCL 26\n", "Google 23\n", "Asus 21\n", "POCO 19\n", "Lava 19\n", "Nothing 15\n", "Lenovo 14\n", "Tecno 13\n", "itel 12\n", "LG 6\n", "Gionee 5\n", "Itel 3\n", "IQOO 1\n", "Coolpad 1\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAHHCAYAAAD3WI8lAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACIwklEQVR4nOzdeXwN1//48ddNyM2+WRIhRFZBEGsJYm1CbS0NmiKkqF1Rmo9dEUtttVaL0NprLa211tiXWCqIEKL2LSEqiWR+f/iZrytBRLhZ3s/HYx7NnTlz5n3mJu67Z849R6MoioIQQgghhPigDPQdgBBCCCFEXiRJmBBCCCGEHkgSJoQQQgihB5KECSGEEELogSRhQgghhBB6IEmYEEIIIYQeSBImhBBCCKEHkoQJIYQQQuiBJGFCCCGEEHogSZgQQgghhB5IEibEK4SFhaHRaNTN2NgYd3d3evbsyc2bN/UdnhBCiBwun74DECK7GzVqFCVLluTJkyfs3buX2bNn8+eff3L69GlMTU31HZ4QQogcSpIwId6gUaNGVK5cGYCvvvqKAgUKMHnyZNatW0fbtm31HJ0QQoicSh5HCvGW6tWrB8ClS5cAuHfvHgMGDMDLywtzc3MsLS1p1KgRJ06cSHPukydPGDFiBO7u7hgbG1OkSBE+++wzoqOjAYiJidF5BPryVqdOHbWunTt3otFoWL58Of/73/+wt7fHzMyMZs2aERsbm+baBw8exN/fHysrK0xNTfH19SU8PDzdNtapUyfd648YMSJN2d9++41KlSphYmKCra0tbdq0Sff6r2vbi1JTU5k6dSplypTB2NgYOzs7unbtyv3793XKOTk50aRJkzTX6dmzZ5o604t94sSJae4pQGJiIsOHD8fV1RWtVoujoyMDBw4kMTEx3Xv1ojp16qSpb8yYMRgYGLBkyZJM3Y8ffviBGjVqUKBAAUxMTKhUqRK///57utf/7bffqFq1KqamptjY2FC7dm22bNmiU+avv/7C19cXCwsLLC0tqVKlSprYVq5cqb6nBQsW5Msvv+Tff//VKRMUFKQTs42NDXXq1GHPnj1vvE/vci7A2bNnCQgIoFChQpiYmODh4cHgwYN1yhw/fpxGjRphaWmJubk59evX58CBAzplng852Lt3L71796ZQoUJYW1vTtWtXkpKSePDgAe3bt8fGxgYbGxsGDhyIoijq+c/fwx9++IEpU6ZQokQJTExM8PX15fTp0zrXOnnyJEFBQTg7O2NsbIy9vT2dOnXi7t27OuVGjBiBRqPhwoULBAUFYW1tjZWVFR07duTx48dqOV9fX8qXL5/u/fHw8MDPzy9D91Lol/SECfGWnidMBQoUAODixYusXbuWzz//nJIlS3Lz5k1++uknfH19OXPmDA4ODgCkpKTQpEkTtm/fTps2bejTpw8PHz5k69atnD59GhcXF/Uabdu2pXHjxjrXDQkJSTeeMWPGoNFoGDRoELdu3WLq1Kk0aNCAiIgITExMAPj7779p1KgRlSpVYvjw4RgYGLBgwQLq1avHnj17qFq1app6ixUrRmhoKACPHj2iW7du6V576NChBAQE8NVXX3H79m2mT59O7dq1OX78ONbW1mnO6dKlC7Vq1QJg9erVrFmzRud4165dCQsLo2PHjvTu3ZtLly4xY8YMjh8/Tnh4OPnz50/3PryNBw8eqG17UWpqKs2aNWPv3r106dIFT09PTp06xZQpUzh//jxr1659q+ssWLCAIUOGMGnSJL744ot0y7zpfkybNo1mzZoRGBhIUlISy5Yt4/PPP2fDhg188sknarmRI0cyYsQIatSowahRozAyMuLgwYP8/ffffPzxx8CzpKNTp06UKVOGkJAQrK2tOX78OJs2bVLje37vq1SpQmhoKDdv3mTatGmEh4eneU8LFizIlClTALh69SrTpk2jcePGxMbGpvvevyiz5548eZJatWqRP39+unTpgpOTE9HR0fzxxx+MGTMGgH/++YdatWphaWnJwIEDyZ8/Pz/99BN16tRh165dVKtWTafOXr16YW9vz8iRIzlw4ABz587F2tqaffv2Ubx4ccaOHcuff/7JxIkTKVu2LO3bt9c5f9GiRTx8+JAePXrw5MkTpk2bRr169Th16hR2dnYAbN26lYsXL9KxY0fs7e35559/mDt3Lv/88w8HDhxIk3wHBARQsmRJQkNDOXbsGL/88guFCxdm/PjxALRr147OnTtz+vRpypYtq553+PBhzp8/z5AhQ157/0U2oQgh0rVgwQIFULZt26bcvn1biY2NVZYtW6YUKFBAMTExUa5evaooiqI8efJESUlJ0Tn30qVLilarVUaNGqXumz9/vgIokydPTnOt1NRU9TxAmThxYpoyZcqUUXx9fdXXO3bs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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Распределение классов в Обучающей выборке:\n", "company\n", "Vivo 138\n", "Samsung 128\n", "Realme 125\n", "Motorola 89\n", "Xiaomi 66\n", "Honor 59\n", "OnePlus 56\n", "Poco 52\n", "Huawei 46\n", "iQOO 37\n", "Oppo 21\n", "OPPO 20\n", "Google 16\n", "Lava 16\n", "POCO 14\n", "TCL 14\n", "Asus 12\n", "Lenovo 12\n", "itel 10\n", "Nothing 8\n", "Tecno 8\n", "LG 5\n", "Gionee 4\n", "IQOO 1\n", "Itel 1\n", "Coolpad 1\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "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NDQUDQ0NSExMREJCAlpbWwEANTU1AIDi4mJ0dnYiPz//nu6PiOxDq3YBRET/JgMDA9i7dy9ycnJgNpsBAPPmzcOyZctw+PBh3Lx5E0eOHIGnpycAICcnB6tXr0ZWVhb0ev2YH+epp55CYmIiACA9PR179uxBWVkZ5s+fj+nTpwMAfHx8YDAY7vEOiche+EoYEdE4tLS04NatW4iIiBh1Ljg4WGnAACA8PBwWi0V5FWusFi1apPys0WhgMBjQ3d39vxdORBMOmzAionHQ6XT/6PZOTk4QEaux4eHhu9a5uLhYXddoNLBYLP/osYloYmETRkQ0Dv7+/tDpdCgpKblrLjAwEOfOncPg4KAy9s0338DJyQnz588HAEyfPh2dnZ3K/MjICJqamsZVg6urq3JbIvr3YhNGRDQO7u7uSE9Px9atW3HkyBF89913qKqqwvvvv4+YmBi4u7vDbDajqakJZWVlePXVVxEbG6u8H2zlypU4efIkTp48iYsXLyIhIQG9vb3jqsHX1xc6nQ5ffvklrl69ir6+PhvslIhsjU0YEdE4ZWRkYMuWLdi+fTsCAwPxwgsvoLu7Gx4eHjh9+jR6enrwyCOP4Nlnn0VERARycnKU28bFxcFsNmP9+vVYvnw55s6di8cee2xcj6/VarFv3z4cPHgQRqMRa9euvddbJCI70Midb04gIiIiIpvjK2FEREREKmATRkRERKQCNmFEREREKmATRkRERKQCNmFEREREKmATRkRERKQCNmFEREREKmATRkRERKQCNmFEREREKmATRkRERKQCNmFEREREKmATRkRERKSC/wNsDs63G6yqdQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Распределение классов в Контрольной выборке:\n", "company\n", "Realme 26\n", "Samsung 26\n", "Vivo 22\n", "Motorola 18\n", "Honor 15\n", "OPPO 13\n", "Poco 12\n", "Xiaomi 11\n", "iQOO 11\n", "OnePlus 8\n", "Huawei 7\n", "Asus 7\n", "TCL 6\n", "POCO 5\n", "Oppo 4\n", "Google 4\n", "Tecno 3\n", "Nothing 3\n", "itel 2\n", "Lava 1\n", "Lenovo 1\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "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tatgZmYmaGpqChUrVhS6du0q3L59W9lhlQhHjhwRAORYevXqJQjCu9tUTJw4UTAxMRGkUqnQrFkz4datW8oNWkXlda5TU1OFli1bCuXLlxc0NDQES0tLoV+/fsLjx4+VHbbKye0cAxDWrVsnlnn9+rUwaNAgwdDQUNDR0RG+/fZb4dGjR8oLWkV96lzfv39faNy4sWBkZCRIpVLB1tZWGDNmjCCXy5UbeCFIBEEQvmbSR0REREScE0ZERESkFEzCiIiIiJSASRgRERGREjAJIyIiIlICJmFERERESsAkjIiIiEgJmIQRERERKQGTMCIiIiIlYBJGRKRi4uLiIJFIxOflEZFqYhJGREREpARMwoiICigrKwtz586Fra0tpFIpKleujJkzZwIArl27hqZNm0JbWxvlypVD//79kZycLNb19PTE8OHDFdrr2LEj/Pz8xNdWVlaYNWsW+vTpA319fVSuXBmrV68Wt1epUgUA4OrqColEAk9Pzy92rET05TAJIyIqoMDAQMyePRsTJ07EjRs3sHHjRpiYmCAlJQVeXl4wNDTE+fPnsXXrVhw6dAiDBw8u8D7mz58PNzc3XL58GYMGDcLAgQNx69YtAMC5c+cAAIcOHcKjR4+wY8eOIj0+Ivo6yig7ACIiVfLq1SssXrwYwcHB6NWrFwDAxsYGDRs2xK+//oo3b95g/fr10NXVBQAEBwejXbt2mDNnDkxMTPK9n9atW2PQoEEAgHHjxmHhwoU4cuQIHBwcUL58eQBAuXLlYGpqWsRHSERfC3vCiIgKICoqCmlpaWjWrFmu21xcXMQEDADc3d2RlZUl9mLll7Ozs/izRCKBqakpnj59WvjAiajYYRJGRFQA2tran1VfTU0NgiAorMvIyMhRTkNDQ+G1RCJBVlbWZ+2biIoXJmFERAVgZ2cHbW1tHD58OMc2R0dHREZGIiUlRVwXEREBNTU1ODg4AADKly+PR48eidszMzNx/fr1AsWgqakp1iUi1cUkjIioALS0tDBu3DiMHTsW69evR2xsLM6cOYM1a9bA19cXWlpa6NWrF65fv44jR45gyJAh6NGjhzgfrGnTpvjrr7/w119/4ebNmxg4cCASExMLFEOFChWgra2N/fv348mTJ5DL5V/gSInoS2MSRkRUQBMnTsSoUaMwadIkODo6omvXrnj69Cl0dHQQHh6OhIQE1KlTB126dEGzZs0QHBws1u3Tpw969eqFnj17wsPDA9bW1mjSpEmB9l+mTBksWbIEq1atgrm5OTp06FDUh0hEX4FE+HByAhERERF9cewJIyIiIlICJmFERERESsAkjIiIiEgJmIQRERERKQGTMCIiIiIlYBJGREREpARMwoiIiIiUgEkYERERkRIwCSMiIiJSAiZhRERERErAJIyIiIhICZiEERERESnB/wH3dduN51rWOQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Распределение классов в Тестовой выборке:\n", "company\n", "Realme 35\n", "Samsung 27\n", "Vivo 26\n", "Motorola 20\n", "Honor 14\n", "Xiaomi 13\n", "Poco 11\n", "OnePlus 11\n", "Huawei 9\n", "iQOO 9\n", "TCL 6\n", "OPPO 5\n", "Nothing 4\n", "Google 3\n", "Lava 2\n", "Asus 2\n", "Oppo 2\n", "Tecno 2\n", "Itel 2\n", "Gionee 1\n", "Lenovo 1\n", "LG 1\n", "Name: count, dtype: int64\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAHHCAYAAAD3WI8lAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACAAUlEQVR4nO3deVxN+f8H8Ndtu+2baCFFm5BkHRoiS2UfTJimEQ3GFiPLNHaD7MvIMsYSxi7bMGSZbNmyZBlJIrKv3VRU6vz+8Ot8XS2Scrv1ej4e56F7zud8zvt87qn79vl87jkSQRAEEBEREdEXpaLoAIiIiIjKIyZhRERERArAJIyIiIhIAZiEERERESkAkzAiIiIiBWASRkRERKQATMKIiIiIFIBJGBEREZECqCk6ACIiIioeb968wYsXL6CmpoZKlSopOhz6CPaEERERfURISAiSkpLE1wsWLEBqaqriAnrPoUOH0KlTJxgaGkJLSwuVK1fGsGHDFB0WFQKTMFKI0NBQSCQScdHU1IS9vT2GDBmCx48fKzo8onIlISFB7vexoCUhIUHR4SrE33//jUmTJiExMRHr16/H+PHjoaWlpeiwsGTJEnh4eEAmk2HhwoU4ePAgDh48iClTpig6NCoEDkeSQk2ZMgXVqlXDmzdvcOLECSxduhT//PMPrl69Cm1tbUWHR1QuVKxYEevWrZNbN3fuXNy7dw/z58/PVbY8+vXXX9GpUycsXLgQKioqmDt3LlRUFNuPERcXhxEjRqB///5YsmQJJBKJQuOhTyfhA7xJEUJDQ9GnTx9ERUWhQYMG4vrAwEDMmzcPGzZsQK9evRQYIVH51qFDB1y9erXc9nzlJSkpCTExMbC0tESVKlUUHQ6GDh2Kv//+G3FxcVBXV1d0OFQEHI6kUsXd3R0AcPv2bQDAixcvMHLkSDg5OUFXVxf6+vrw8vLCpUuXcu375s0bTJo0Cfb29tDU1IS5uTm6du2K+Ph4AB8fcmnRooVY15EjRyCRSLB582b8+uuvMDMzg46ODjp16oTExMRcxz5z5gw8PT1hYGAAbW1tuLm5ITIyMs9zbNGiRZ7HnzRpUq6yf/31F+rXrw8tLS0YGxujZ8+eeR6/oHN7X3Z2NhYsWIBatWpBU1MTpqamGDBgAF6+fClXztraGh06dMh1nCFDhuSqM6/YZ8+enatNASA9PR0TJ06Era0tpFIpLC0tMXr0aKSnp+fZVu9r0aJFrvqmTZsGFRUVbNiwoUjtMWfOHDRt2hQVKlSAlpYW6tevj23btuV5/L/++guNGjWCtrY2jIyM0Lx5cxw4cECuzL59++Dm5gY9PT3o6+ujYcOGuWLbunWr+J6amJjg+++/x/379+XK+Pn5ycVsZGSEFi1a4Pjx4x9tp8/Z91MkJSVh+PDhsLS0hFQqha2tLWbOnIns7Gy5ctnZ2Vi4cCGcnJygqamJihUrwtPTE+fOnQOAjw5/vv+eP3nyBP7+/jA1NYWmpiacnZ2xZs0aueN9+N6rq6vD2toao0aNQkZGhlzZW7du4dtvv4WxsTG0tbXx1VdfYe/evXJlcv4WHDlyBIaGhmjSpAmqVKmC9u3b5/t7m9f+OYtUKoW9vT2Cg4Pxfh/IpEmTIJFI8OzZs3zrsra2hp+fn/j69OnTqF+/PgYNGgRTU1NIpVLUrl0bf/75Z659U1NTERgYKL5fDg4OmDNnDj7sh5FIJBgyZAjWr18PBwcHaGpqon79+jh27JhcuZx43xcREQGpVIqffvpJbv39+/fRt29fMcZatWph1apVBbZbecHhSCpVchKmChUqAHj3R3Lnzp349ttvUa1aNTx+/Bh//PEH3NzccO3aNVhYWAAAsrKy0KFDBxw+fBg9e/bEsGHD8OrVKxw8eBBXr16FjY2NeIxevXqhXbt2cscNCgrKM55p06ZBIpFgzJgxePLkCRYsWIDWrVsjOjpanA/y77//wsvLC/Xr18fEiROhoqKC1atXw93dHcePH0ejRo1y1VulShUEBwcDAFJSUjBw4MA8jz1+/Hh4e3vjxx9/xNOnT7Fo0SI0b94cFy9ehKGhYa59+vfvj2bNmgEAtm/fjh07dshtHzBggNgLGRAQgNu3byMkJAQXL15EZGRksfxvOikpSTy392VnZ6NTp044ceIE+vfvD0dHR1y5cgXz58/HjRs3sHPnzk86zurVqzFu3DjMnTsX3333XZ5lPtYeCxcuRKdOneDj44OMjAxs2rQJ3377Lfbs2YP27duL5SZPnoxJkyahadOmmDJlCjQ0NHDmzBn8+++/aNu2LYB3vbt9+/ZFrVq1EBQUBENDQ1y8eBH79+8X48tp+4YNGyI4OBiPHz/GwoULERkZmes9NTExEYcC7927h4ULF6Jdu3ZITEzM871/3+fsWxhpaWlwc3PD/fv3MWDAAFStWhUnT55EUFAQHj58iAULFohl/f39ERoaCi8vL/z44494+/Ytjh8/jtOnT6NBgwZyw6DHjx/H8uXLMX/+fJiYmAAATE1NAQCvX79GixYtcPPmTQwZMgTVqlXD1q1b4efnh6SkpFwT0XPe+/T0dISHh2POnDnQ1NTEb7/9BgB4/PgxmjZtirS0NAQEBKBChQpYs2YNOnXqhG3btuGbb77J9/yPHTuGf/7555Pa7Ndff4WjoyNev34t/ueuUqVK8Pf3/6R63vf8+XOcO3cOampqGDx4MGxsbLBz5070798fz58/xy+//AIAEAQBnTp1QkREBPz9/VG3bl2Eh4dj1KhRuH//fq4h56NHj2Lz5s0ICAiAVCrFkiVL4OnpibNnz6J27dp5xnLp0iV06dIF7dq1w+LFi8X1jx8/xldffSUmdxUrVsS+ffvg7++P5ORkDB8+vMjnXyYIRAqwevVqAYBw6NAh4enTp0JiYqKwadMmoUKFCoKWlpZw7949QRAE4c2bN0JWVpbcvrdv3xakUqkwZcoUcd2qVasEAMK8efNyHSs7O1vcD4Awe/bsXGVq1aoluLm5ia8jIiIEAELlypWF5ORkcf2WLVsEAMLChQvFuu3s7AQPDw/xOIIgCGlpaUK1atWENm3a5DpW06ZNhdq1a4uvnz59KgAQJk6cKK5LSEgQVFVVhWnTpsnte+XKFUFNTS3X+ri4OAGAsGbNGnHdxIkThfd/xY8fPy4AENavXy+37/79+3Ott7KyEtq3b58r9sGDBwsf/tn4MPbRo0cLlSpVEurXry/XpuvWrRNUVFSE48ePy+2/bNkyAYAQGRmZ63jvc3NzE+vbu3evoKamJgQGBuZZtjDtIQjv3qf3ZWRkCLVr1xbc3d3l6lJRURG++eabXNdiznuelJQk6OnpCY0bNxZev36dZ5mMjAyhUqVKQu3ateXK7NmzRwAgTJgwQVzXu3dvwcrKSq6e5cuXCwCEs2fP5nnOxbHv+9q3b5+rnhy//faboKOjI9y4cUNu/S+//CKoqqoKd+/eFQRBEP79918BgBAQEJCrjvd/X3Lk/F24fft2rm0LFiwQAAh//fWXuC4jI0No0qSJoKurK/6e5vyer169Wm5/CwsLoV27duLr4cOHCwDkrsdXr14J1apVE6ytrcX3OudvQUREhFiucePGgpeXV65rPy957f/mzRtBRUVFGDRokLgu5/p8+vRpvnVZWVkJvXv3lnsNQAgNDRXXvX37VmjVqpUglUqFZ8+eCYIgCDt37hQACFOnTpWrr3v37oJEIhFu3rwprgMgABDOnTsnrrtz546gqakpfPPNN7niFYR3f6/Mzc2Fr7/+Otf17+/vL5ibm4ux5OjZs6dgYGCQ63ewvOFwJClU69atUbFiRVhaWqJnz57Q1dXFjh07ULlyZQCAVCoVJ79mZWXh+fPn0NXVhYODAy5cuCDWExYWBhMTEwwdOjTXMT5nsuoPP/wAPT098XX37t1hbm4u/i84OjoacXFx+O677/D8+XM8e/YMz549Q2pqKlq1aoVjx47lGp558+YNNDU1Czzu9u3bkZ2dDW9vb7HOZ8+ewczMDHZ2doiIiJArnzPMIpVK861z69atMDAwQJs2beTqrF+/PnR1dXPVmZmZKVfu2bNnePPmTYFx379/H4sWLcL48eOhq6ub6/iOjo6oUaOGXJ05Q9AfHj8/Z8+ehbe3N7p164bZs2fnWaYw7QFA7tttL1++hEwmQ7NmzeSurZ07dyI7OxsTJkzINRE759o6ePAgXr16hV9++SXXe5tT5ty5c3jy5AkGDRokV6Z9+/aoUaNGrmGw7OxssY2io6Oxdu1amJubw9HRscBz+tx9C2Pr1q1o1qwZjIyM5N7L1q1bIysrSxy6CgsLg0QiwcSJE3PV8am/l//88w/MzMzk5oqqq6sjICAAKSkpOHr0qFz5lJQUPHv2DPfv38fy5cvx6NEjtGrVSq6+Ro0a4euvvxbX6erqon///khISMC1a9fyjGP79u2IiorCjBkzPil+mUyGZ8+e4e7du5g1axays7PFa/99L168EP+GFIapqSl8fX3F16qqqhg+fDjS09Nx6NAhAO/OVVVVFQEBAXL7BgYGQhAE7Nu3T259kyZNUL9+ffF11apV0blzZ4SHhyMrK0uu7PPnz+Hh4QE9PT3s3r1b7toWBAFhYWHo2LEjBEGQu1ZyvtH5/u9aecThSFKoxYsXw97eHmpqajA1NYWDg4PcB13OfJIlS5bg9u3bcn8AcoYsgXfDmA4ODlBTK95L2s7OTu61RCKBra2tOFk5Li4OANC7d+9865DJZDAyMhJfP3v2LFe9H4qLi4MgCPmW+3DYMOf+RR8mPh/WKZPJ8r2B45MnT+ReHzhw4JO/CTdx4kRYWFhgwIABueZWxcXFISYmJt86Pzx+Xu7fv4/27dsjNTUVz58/z/eDvDDtAQB79uzB1KlTER0dLTcv7f164+PjoaKigpo1a+ZbT84wen5DNQBw584dAICDg0OubTVq1MCJEyfk1iUmJsq1lbm5OcLCwj56Tp+7b2HExcXh8uXLH30v4+PjYWFhAWNj488+5p07d2BnZ5crEc5JLHPaN8fQoUPl/lPWp08f/Pzzz3L1NW7cONdx3q/vw/czKysLv/76K3x8fFCnTp1Pir9Lly7izyoqKhg3bhy6deuWq9z710elSpXQr18/TJ48GaqqqrnKSiQS2Nvb59smOX+n7ty5AwsLC7n/UL5f7sO2y+vvjr29PdLS0vD06VOYmZmJ6zt06IDY2FhUqlQp1/yyp0+fIikpCcuXL8fy5ctz1QkU7ve+LGMSRgrVqFEjuW9Hfmj69OkYP348+vbti99++w3GxsZQUVHB8OHDc/UwKUJODLNnz0bdunXzLPP+B19GRgYePnyINm3afLReiUSCffv25fnH98MP00ePHgGA3B/HvOqsVKkS1q9fn+f2Dz9QGzdujKlTp8qtCwkJwa5du/LcPyYmBqGhofjrr7/ynFuWnZ0NJycnzJs3L8/9LS0t8409x82bN1GvXj3Mnz8fvr6+WLNmTZ4JcGHa4/jx4+jUqROaN2+OJUuWwNzcHOrq6li9enWuyfSKYGpqir/++gvAu0R+1apV8PT0xIkTJ+Dk5FRi+xZGdnY22rRpg9GjR+e53d7e/rOP8blGjRqFtm3bIisrC//99x+mTJkCQRCwevXqIte5cuVKJCQkIDw8/JP3nTNnDpydnZGZmYmoqChMnToVampquXoJw8LCoK+vj7S0NOzYsQPTpk2Dvr5+nm1dGu5Tdv36dezbtw/e3t4IDAyUa9+cv4/ff/99vv9R/dRktqxhEkal2rZt29CyZUusXLlSbn1SUpI4cRcAbGxscObMGWRmZhbrV7VzerpyCIKAmzdvin84cib86+vro3Xr1h+t79KlS8jMzCww8cypVxAEVKtWrVAfaNeuXYNEIsmzl+X9Og8dOgRXV9dC/fE2MTHJdU4FTZ4PCgpC3bp10aNHj3yPf+nSJbRq1arIQ8Q5Q8GmpqbYtWsXAgMD0a5du1wJZGHaIywsDJqamggPD5cbtvzwQ9rGxgbZ2dm4du1avol2znVw9epV2Nra5lnGysoKABAbG5trGCo2NlbcnkNTU1Ou/Tt16gRjY2OEhITgjz/+yPe8PnffwrCxsUFKSspHr3kbGxuEh4fjxYsXn90bZmVlhcuXLyM7O1uu5+f69evi9vfVrFlTjM/DwwPp6en49ddfMW3aNFhYWMDKygqxsbG5jpNffWlpaZg8eTIGDRqUa1th1K9fX/ymp5eXF+7fv4+ZM2di/PjxcufTvHlz8W9bp06dEBkZif379+eZhFWrVg0XLlzIt02sra3Fczl06BBevXol1xuW37l++HcPAG7cuAFtbe1cv2u7d+9Gs2bNEBwcjCFDhuD7778Xh30rVqwIPT09ZGVlFervY3nEOWFUqqmqqubq4t66dWuur/R369YNz549Q0hISK46Ptz/U6xduxavXr0SX2/btg0PHz6El5cXgHd/WG1sbDBnzhykpKTk2v/p06e5YldVVc3z9g/v69q1K1RVVTF58uRc8QuCgOfPn4uv3759i7CwMDRq1KjA4SZvb29kZWWJ3w5739u3b+UeyfKpTp06hV27dmHGjBn5Jlje3t64f/9+nl+ff/36daHmwNjb24vfllu0aBGys7NzfSuusO2hqqoKiUQiN8SdkJCQK9Hs0qULVFRUMGXKlFy9rznvTdu2baGnp4fg4OBc8+ZyyjRo0ACVKlXCsmXL5IY+9+3bh5iYGLlvY+YlIyMDb9++LdTtPIpz37x4e3vj1KlTefYIJSUl4e3btwDe/V4KgoDJkyfnKvepv5ft2rXDo0ePsHnzZnHd27dvsWjRIujq6sLNza3A/V+/fg3gf/MF27Vrh7Nnz+LUqVNimdTUVCxfvhzW1ta5hp8XLlyI1NRUjB079pPiLiiet2/fim2VF0EQIAhCnr3hOefwYZvkTOGQSqVi4tOuXTtkZWXl+vs4f/58SCQS8e9ZjlOnTsnN1UpMTMSuXbvQtm3bXLHkfPt40KBBaNq0KQYMGCC2taqqKrp164awsDBcvXo1V/wf/n0sj9gTRqVahw4dMGXKFPTp0wdNmzbFlStXsH79elSvXl2u3A8//IC1a9dixIgROHv2LJo1a4bU1FQcOnQIgwYNQufOnYt0fGNjY3z99dfo06cPHj9+jAULFsDW1hb9+vUD8G5ux4oVK+Dl5YVatWqhT58+qFy5Mu7fv4+IiAjo6+vj77//RmpqKhYvXozff/8d9vb2OHLkiHiMnOTt8uXLOHXqFJo0aQIbGxtMnToVQUFBSEhIQJcuXaCnp4fbt29jx44d6N+/P0aOHIlDhw5h/PjxuHz5Mv7+++8Cz8XNzQ0DBgxAcHAwoqOj0bZtW6irqyMuLg5bt27FwoUL0b179yK104EDB9CmTZsC/7fr6+uLLVu24KeffkJERARcXV2RlZWF69evY8uWLQgPD/9oD+H7zMzMMHv2bPz444/4/vvv0a5du09qj/bt22PevHnw9PTEd999hydPnmDx4sWwtbXF5cuXxXK2trYYO3YsfvvtNzRr1gxdu3aFVCpFVFQULCwsEBwcDH19fcyfPx8//vgjGjZsiO+++w5GRka4dOkS0tLSsGbNGqirq2PmzJno06cP3Nzc0KtXL/EWFdbW1nLzlYB3CcH7Q4rr1q3DmzdvCrx1QnHsWxijRo3C7t270aFDB/j5+aF+/fpITU3FlStXsG3bNiQkJMDExAQtW7aEr68vfv/9d8TFxcHT0xPZ2dk4fvw4WrZsiSFDhhT6mP3798cff/wBPz8/nD9/HtbW1ti2bRsiIyOxYMGCXPOdTp06BTU1NXE4ctGiRXBxcRF7h3755Rds3LgRXl5eCAgIgLGxMdasWYPbt28jLCws1zyrAwcOYNq0aXJzUT/FwYMHce/ePXE4cv369ejUqRM0NDTkyv37779yw5E3b97M9zYO/v7+WLp0Kfz8/HDu3DlUq1YNO3fuxOHDhzFjxgwx1o4dO6Jly5YYO3YsEhIS4OzsjAMHDmDXrl0YPny43C18gHdzGz08PORuUQEgz2Q6h0QiwYoVK1C3bl1MnDgRs2bNAgDMmDEDERERaNy4Mfr164eaNWvixYsXuHDhAg4dOoQXL14UqT3LjC/9dUwiQfjfV9GjoqIKLPfmzRshMDBQMDc3F7S0tARXV1fh1KlTcrcryJGWliaMHTtWqFatmqCuri6YmZkJ3bt3F+Lj4wVBKNotKjZu3CgEBQUJlSpVErS0tIT27dsLd+7cybX/xYsXha5duwoVKlQQpFKpYGVlJXh7ewuHDx+WO/bHlve/fi4IghAWFiZ8/fXXgo6OjqCjoyPUqFFDGDx4sBAbGysIgiAMHTpUaN68ubB///5cMeV1SwZBeHe7gvr16wtaWlqCnp6e4OTkJIwePVp48OCBWOZTb1EhkUiE8+fPy63P6z3KyMgQZs6cKdSqVUuQSqWCkZGRUL9+fWHy5MmCTCbLdbyP1ScIguDu7i5UrVpVePXq1Se3x8qVKwU7OztBKpUKNWrUEFavXp1vu61atUpwcXER43ZzcxMOHjwoV2b37t1C06ZNBS0tLUFfX19o1KiRsHHjRrkymzdvFusxNjYWfHx8xFuy5Ojdu7fcdaGrqyvUq1dPWLduXYFt9Ln7vq+gW1QIwrvbOQQFBQm2traChoaGYGJiIjRt2lSYM2eOkJGRIZZ7+/atMHv2bKFGjRqChoaGULFiRcHLyyvX9SIIBd+iQhAE4fHjx0KfPn0EExMTQUNDQ3Bycsp1K4oPf9dUVFSEKlWqCL17987VzvHx8UL37t0FQ0NDQVNTU2jUqJGwZ88euTI5fwvMzc2F1NRUuW34hFtU5CxqamqClZWVEBAQILx8+VIsl3Pd5SxaWlpCzZo1hfnz54tlPrxFhSAIwpMnT4S+ffuKbVK7dm3hzz//zBXHq1evhJ9//lmwsLAQ1NXVBTs7O2H27Nm5bhUCQBg8eLDw119/ib8bLi4ucrfYeD/eD02ePFlQU1MTLly4IK57/PixMHjwYMHS0lL829yqVSth+fLlBbZdecDHFhHl4ciRI2jZsiW2bt1a5N6h9yUkJKBatWq4ffu2+D/xD02aNAkJCQkIDQ397OMRERWFRCLB4MGD85zaQcWPc8KIiIiIFIBzwoi+AF1dXfj4+BQ4UbxOnTriY5iIiKjsYxJG9AWYmJiIE6Xz07Vr1y8UDRERlQacE0ZERESkAJwTRkRERKQATMKIiIiIFIBzwkqx7OxsPHjwAHp6ekV+zAsRERF9WYIg4NWrV7CwsMh149/3MQkrxR48eFCohxoTERFR6ZOYmIgqVarku51JWCmW8xiOxMRE6OvrKzgaIiIiKozk5GRYWlrmepzWh5iElWI5Q5AdZu2FqlRLwdEQERGVHedn/1Dix/jYVCJOzP+An58funTpougwiIiIqIxTqiTMz88PEokEEokE6urqqFatGkaPHo03b94oOjQiIiKiT6J0w5Genp5YvXo1MjMzcf78efTu3RsSiQQzZ85UdGhEREREhaZUPWEAIJVKYWZmBktLS3Tp0gWtW7fGwYMHAby7pUNwcDCqVasGLS0tODs7Y9u2beK+WVlZ8Pf3F7c7ODhg4cKFBR6vRYsWGDp0KIYPHw4jIyOYmprizz//RGpqKvr06QM9PT3Y2tpi3759cvtdvXoVXl5e0NXVhampKXx9ffHs2bPibxAiIiJSSkqXhL3v6tWrOHnyJDQ0NAAAwcHBWLt2LZYtW4b//vsPP//8M77//nscPXoUwLskrUqVKti6dSuuXbuGCRMm4Ndff8WWLVsKPM6aNWtgYmKCs2fPYujQoRg4cCC+/fZbNG3aFBcuXEDbtm3h6+uLtLQ0AEBSUhLc3d3h4uKCc+fOYf/+/Xj8+DG8vb1LtkGIiIhIaSjVsyP9/Pzw119/QVNTE2/fvkV6ejpUVFSwZcsWdOjQAcbGxjh06BCaNGki7vPjjz8iLS0NGzZsyLPOIUOG4NGjR2KPmZ+fH5KSkrBz504A73rCsrKycPz4cQDvetMMDAzQtWtXrF27FgDw6NEjmJub49SpU/jqq68wdepUHD9+HOHh4eJx7t27B0tLS8TGxsLe3j7PWNLT05Geni6+zvmKq/PQZfx2JBERUTEqyW9HJicnw8DAADKZrMBbTCndnLCWLVti6dKlSE1Nxfz586GmpoZu3brhv//+Q1paGtq0aSNXPiMjAy4uLuLrxYsXY9WqVbh79y5ev36NjIwM1K1bt8Bj1qlTR/xZVVUVFSpUgJOTk7jO1NQUAPDkyRMAwKVLlxAREQFdXd1cdcXHx+ebhAUHB2Py5MkFNwARERGVCUqXhOno6MDW1hYAsGrVKjg7O2PlypWoXbs2AGDv3r2oXLmy3D5SqRQAsGnTJowcORJz585FkyZNoKenh9mzZ+PMmTMFHlNdXV3udc63M99/Dbwb7gSAlJQUdOzYMc8vC5ibm+d7nKCgIIwYMUJ8ndMTRkRERGWP0iVh71NRUcGvv/6KESNG4MaNG5BKpbh79y7c3NzyLB8ZGYmmTZti0KBB4rr4+Phij6tevXoICwuDtbU11NQK38RSqVRMGImIiKhsU+qJ+QDw7bffQlVVFX/88QdGjhyJn3/+GWvWrEF8fDwuXLiARYsWYc2aNQAAOzs7nDt3DuHh4bhx4wbGjx+PqKioYo9p8ODBePHiBXr16oWoqCjEx8cjPDwcffr0QVZWVrEfj4iIiJSPUveEAYCamhqGDBmCWbNm4fbt26hYsSKCg4Nx69YtGBoaol69evj1118BAAMGDMDFixfRo0cPSCQS9OrVC4MGDcp1e4nPZWFhgcjISIwZMwZt27ZFeno6rKys4OnpWeDT1ImIiKj8UKpvR5Y3Od+u4LcjiYiIihe/HUmFcmxqrwLfRCIiIlI+HBsjIiIiUgAmYUREREQKwCSMiIiISAE4J0wJNB+3kRPziYhKuZKc6E1lE3vCiIiIiBRAoUnY06dPMXDgQFStWhVSqRRmZmbw8PBAZGSkIsMiIiIiKnEKHY7s1q0bMjIysGbNGlSvXh2PHz/G4cOH8fz5c0WGRURERFTiFNYTlpSUhOPHj2PmzJlo2bIlrKys0KhRIwQFBaFTp04AgHnz5sHJyQk6OjqwtLTEoEGDkJKSItYRGhoKQ0ND7NmzBw4ODtDW1kb37t2RlpaGNWvWwNraGkZGRggICJB7XNCSJUtgZ2cHTU1NmJqaonv37uI2a2trLFiwQC7WunXrYtKkSeJriUSCFStW4JtvvoG2tjbs7Oywe/duuX12794tHqNly5ZYs2YNJBIJkpKSiq8RiYiISGkpLAnT1dWFrq4udu7cifT09DzLqKio4Pfff8d///2HNWvW4N9//8Xo0aPlyqSlpeH333/Hpk2bsH//fhw5cgTffPMN/vnnH/zzzz9Yt24d/vjjD2zbtg0AcO7cOQQEBGDKlCmIjY3F/v370bx580+Of/LkyfD29sbly5fRrl07+Pj44MWLFwCA27dvo3v37ujSpQsuXbqEAQMGYOzYsR+tMz09HcnJyXILERERlU0KS8LU1NQQGhqKNWvWwNDQEK6urvj1119x+fJlsczw4cPRsmVLWFtbw93dHVOnTsWWLVvk6snMzMTSpUvh4uKC5s2bo3v37jhx4gRWrlyJmjVrokOHDmjZsiUiIiIAAHfv3oWOjg46dOgAKysruLi4ICAg4JPj9/PzQ69evWBra4vp06cjJSUFZ8+eBQD88ccfcHBwwOzZs+Hg4ICePXvCz8/vo3UGBwfDwMBAXCwtLT85LiIiIlIOCp2Y361bNzx48AC7d++Gp6cnjhw5gnr16iE0NBQAcOjQIbRq1QqVK1eGnp4efH198fz5c6SlpYl1aGtrw8bGRnxtamoKa2tr6Orqyq178uQJAKBNmzawsrJC9erV4evri/Xr18vVV1h16tQRf9bR0YG+vr54jNjYWDRs2FCufKNGjT5aZ1BQEGQymbgkJiZ+clxERESkHBR+iwpNTU20adMG48ePx8mTJ+Hn54eJEyciISEBHTp0QJ06dRAWFobz589j8eLFAICMjAxxf3V1dbn6JBJJnuuys7MBAHp6erhw4QI2btwIc3NzTJgwAc7OzuJcLRUVFXz4TPPMzMxccRd0jKKSSqXQ19eXW4iIiKhsUngS9qGaNWsiNTUV58+fR3Z2NubOnYuvvvoK9vb2ePDgQbEcQ01NDa1bt8asWbNw+fJlJCQk4N9//wUAVKxYEQ8fPhTLJicn4/bt259Uv4ODA86dOye3Lioq6vMDJyIiojJDYUnY8+fP4e7ujr/++guXL1/G7du3sXXrVsyaNQudO3eGra0tMjMzsWjRIty6dQvr1q3DsmXLPvu4e/bswe+//47o6GjcuXMHa9euRXZ2NhwcHAAA7u7uWLduHY4fP44rV66gd+/eUFVV/aRjDBgwANevX8eYMWNw48YNbNmyRRxilUgkn30OREREpPwU+u3Ixo0bY/78+WjevDlq166N8ePHo1+/fggJCYGzszPmzZuHmTNnonbt2li/fj2Cg4M/+7iGhobYvn073N3d4ejoiGXLlmHjxo2oVasWgHfzstzc3NChQwe0b98eXbp0kZtzVhjVqlXDtm3bsH37dtSpUwdLly4Vvx0plUo/+xyIiIhI+UmEDydAUYmYNm0ali1b9kmT7ZOTk2FgYADnocv47EgiolKOz46kHDmf3zKZrMD53XyAdwlZsmQJGjZsiAoVKiAyMhKzZ8/GkCFDilTXsam9OEmfiIiojGESVkLi4uIwdepUvHjxAlWrVkVgYCCCgoIUHRYRERGVEhyOLMUK251JREREpQeHI8uQ5uM2ck4YEdEXxPld9CWUuvuEEREREZUHTMIKYdKkSahbt66iwyAiIqIypNwnYR07doSnp2ee244fPw6JRIKuXbvi8OHDXzgyIiIiKsvKfRLm7++PgwcP4t69e7m2rV69Gg0aNECdOnVQoUIFBURHREREZVW5T8I6dOiAihUrio8VypGSkoKtW7fC399fbjjywIED0NTUFB/4nWPYsGFwd3cXX4eFhaFWrVqQSqWwtrbG3LlzS/hMiIiISJmU+yRMTU0NP/zwA0JDQ/H+3Tq2bt2KrKws9OrVS658q1atYGhoiLCwMHFdVlYWNm/eDB8fHwDA+fPn4e3tjZ49e+LKlSuYNGkSxo8fnyvR+1B6ejqSk5PlFiIiIiqbyn0SBgB9+/ZFfHw8jh49Kq5bvXo1unXrBgMDA7myqqqq6NmzJzZs2CCuO3z4MJKSktCtWzcAwLx589CqVSuMHz8e9vb28PPzw5AhQzB79uwC4wgODoaBgYG4WFpaFuNZEhERUWnCJAxAjRo10LRpU6xatQoAcPPmTRw/fhz+/v55lvfx8cGRI0fw4MEDAMD69evRvn17GBoaAgBiYmLg6uoqt4+rqyvi4uKQlZWVbxxBQUGQyWTi8inPmSQiIiLlwiTs//n7+yMsLAyvXr3C6tWrYWNjAzc3tzzLNmzYEDY2Nti0aRNev36NHTt2iEORn0MqlUJfX19uISIiorKJSdj/8/b2hoqKCjZs2IC1a9eib9++kEgk+Zb38fHB+vXr8ffff0NFRQXt27cXtzk6OiIyMlKufGRkJOzt7aGqqlpi50BERETKg0nY/9PV1UWPHj0QFBSEhw8fws/Pr8DyPj4+uHDhAqZNm4bu3btDKpWK2wIDA3H48GH89ttvuHHjBtasWYOQkBCMHDmyhM+CiIiIlAWTsPf4+/vj5cuX8PDwgIWFRYFlbW1t0ahRI1y+fDnXUGS9evWwZcsWbNq0CbVr18aECRMwZcqUjyZ2REREVH5IhPfvy0ClSs5T2J2HLuMDvImIviA+wJs+R87nt0wmK3B+t9oXjImK6NjUXpykT0REVMZwOJKIiIhIAZiEERERESkAhyOVQPNxGzknjIgKjfOZiJQDe8KIiIiIFIBJWDE4cuQIJBIJkpKSFB0KERERKYlSk4T5+flBIpHgp59+yrVt8ODBkEgkhb7PFpMiIiIiKu1KTRIGAJaWluLzGHO8efMGGzZsQNWqVb94PIIg4O3bt1/8uERERFT2laokrF69erC0tMT27dvFddu3b0fVqlXh4uIirktPT0dAQAAqVaoETU1NfP3114iKigIAJCQkoGXLlgAAIyMjuR60gvYD/teDtm/fPtSvXx9SqRQnTpz46H4fev78OXr16oXKlStDW1sbTk5O2LhxY3E2FRERESm5UpWEAUDfvn2xevVq8fWqVavQp08fuTKjR49GWFgY1qxZgwsXLsDW1hYeHh548eIFLC0tERYWBgCIjY3Fw4cPsXDhwo/u975ffvkFM2bMQExMDOrUqVPo/XK8efMG9evXx969e3H16lX0798fvr6+OHv2bIHnnp6ejuTkZLmFiIiIyqZSl4R9//33OHHiBO7cuYM7d+4gMjIS33//vbg9NTUVS5cuxezZs+Hl5YWaNWvizz//hJaWFlauXAlVVVUYGxsDACpVqgQzMzMYGBh8dL/3TZkyBW3atIGNjQ2kUmmh98tRuXJljBw5EnXr1kX16tUxdOhQeHp6YsuWLQWee3BwMAwMDMTF0tLyM1uTiIiISqtSd5+wihUron379ggNDYUgCGjfvj1MTEzE7fHx8cjMzISrq6u4Tl1dHY0aNUJMTEy+9X7Kfg0aNPis42VlZWH69OnYsmUL7t+/j4yMDKSnp0NbW7vAcw8KCsKIESPE18nJyUzEiIiIyqhSl4QB74YkhwwZAgBYvHjxFz++jo7OZ+0/e/ZsLFy4EAsWLICTkxN0dHQwfPhwZGRkFLifVCqFVCr9rGMTERGRcih1w5EA4OnpiYyMDGRmZsLDw0Num42NDTQ0NBAZGSmuy8zMRFRUFGrWrAkA0NDQAPCuR+pT9stLUfaLjIxE586d8f3338PZ2RnVq1fHjRs3PqEFiIiIqKwrlT1hqqqq4lCfqqqq3DYdHR0MHDgQo0aNgrGxMapWrYpZs2YhLS0N/v7+AAArKytIJBLs2bMH7dq1g5aWFnR1dT+6X14Kc7wP2dnZYdu2bTh58iSMjIwwb948PH78uMBkj4iIiMqXUpmEAYC+vn6+22bMmIHs7Gz4+vri1atXaNCgAcLDw2FkZATg3cT4yZMn45dffkGfPn3www8/IDQ09KP7FfV4Hxo3bhxu3boFDw8PaGtro3///ujSpQtkMlnRG4SIiIjKFIkgCIKig6C8JScnw8DAAM5Dl/EB3kRUaHyAN5Fi5Xx+y2SyAjuVSm1PGP3Psam9CnwTiYiISPmUyon5RERERGUdkzAiIiIiBeBwpBJoPm4j54RRucH5TERUXrAnjIiIiEgBmIQRERERKUCZTML8/PzQpUuXXOuPHDkCiUSCpKSkLx4TERER0fvKZBJWmn3s+ZFERERUPpTrJCwsLAy1atWCVCqFtbU15s6dK7fd2toa06dPR9++faGnp4eqVati+fLlcmWuXLkCd3d3aGlpoUKFCujfvz9SUlLE7Tm9ctOmTYOFhQUcHBy+yLkRERFR6VZuk7Dz58/D29sbPXv2xJUrVzBp0iSMHz8eoaGhcuXmzp2LBg0a4OLFixg0aBAGDhyI2NhYAEBqaio8PDxgZGSEqKgobN26FYcOHcKQIUPk6jh8+DBiY2Nx8OBB7NmzJ9+Y0tPTkZycLLcQERFR2VRmb1GxZ88e6Orqyq3LysoSf543bx5atWqF8ePHAwDs7e1x7do1zJ49G35+fmK5du3aYdCgQQCAMWPGYP78+YiIiICDgwM2bNiAN2/eYO3atdDR0QEAhISEoGPHjpg5cyZMTU0BvHsI+IoVK6ChoVFgzMHBwZg8efJnnzsRERGVfmW2J6xly5aIjo6WW1asWCFuj4mJgaurq9w+rq6uiIuLk0vW6tSpI/4skUhgZmaGJ0+eiHU4OzuLCVhOHdnZ2WJvGQA4OTl9NAEDgKCgIMhkMnFJTEz89BMnIiIipVBme8J0dHRga2srt+7evXufXI+6urrca4lEguzs7E+OpTCkUimkUukn1U1ERETKqcz2hH2Mo6MjIiMj5dZFRkbC3t4eqqqqha7j0qVLSE1NlatDRUWFE/CJiIioQOU2CQsMDMThw4fx22+/4caNG1izZg1CQkIwcuTIQtfh4+MDTU1N9O7dG1evXkVERASGDh0KX19fcT4YERERUV7KbRJWr149bNmyBZs2bULt2rUxYcIETJkyRW5S/sdoa2sjPDwcL168QMOGDdG9e3e0atUKISEhJRc4ERERlQkSQRAERQdBeUtOToaBgQFkMhn09fUVHQ4REREVQmE/v8ttTxgRERGRIjEJIyIiIlIAJmFEREREClBm7xNWljQftxGqUi1Fh0H0Sc7P/kHRIRARlWpluifsyJEjkEgkSEpKUnQoaNGiBYYPH67oMIiIiKiUUNqesKysLDRr1gxmZmbYvn27uF4mk6F27dr44YcfMHHiRDx8+BAGBgYKjPSd7du357r7PhEREZVfStsTpqqqitDQUOzfvx/r168X1w8dOhTGxsaYOHEiNDQ0YGZmBolEosBI3zE2Noaenp6iwyAiIqJSQmmTMACwt7fHjBkzMHToUDx8+BC7du3Cpk2bsHbtWmhoaOQajnz+/Dl69eqFypUrQ1tbG05OTti4caNcnenp6QgICEClSpWgqamJr7/+GlFRUeL2nDrDw8Ph4uICLS0tuLu748mTJ9i3bx8cHR2hr6+P7777DmlpaeJ+HI4kIiKi9yl1Ega86/lydnaGr68v+vfvjwkTJsDZ2TnPsm/evEH9+vWxd+9eXL16Ff3794evry/Onj0rlhk9ejTCwsKwZs0aXLhwAba2tvDw8MCLFy/k6po0aRJCQkJw8uRJJCYmwtvbGwsWLMCGDRuwd+9eHDhwAIsWLSrRcyciIiLlpfRJmEQiwdKlS3H48GGYmpril19+ybds5cqVMXLkSNStWxfVq1fH0KFD4enpiS1btgAAUlNTsXTpUsyePRteXl6oWbMm/vzzT2hpaWHlypVydU2dOhWurq5wcXGBv78/jh49iqVLl8LFxQXNmjVD9+7dERER8Unnkp6ejuTkZLmFiIiIyialT8IAYNWqVdDW1sbt27dx7969fMtlZWXht99+g5OTE4yNjaGrq4vw8HDcvXsXABAfH4/MzEy4urqK+6irq6NRo0aIiYmRq6tOnTriz6amptDW1kb16tXl1j158uSTziM4OBgGBgbiYmlp+Un7ExERkfJQ+iTs5MmTmD9/Pvbs2YNGjRrB398f+T0Oc/bs2Vi4cCHGjBmDiIgIREdHw8PDAxkZGZ983Pe/6SiRSHJ981EikSA7O/uT6gwKCoJMJhOXxMTET46LiIiIlINSJ2FpaWnw8/PDwIED0bJlS6xcuRJnz57FsmXL8iwfGRmJzp074/vvv4ezszOqV6+OGzduiNttbGygoaGByMhIcV1mZiaioqJQs2bNEj8fqVQKfX19uYWIiIjKJqVOwoKCgiAIAmbMmAEAsLa2xpw5czB69GgkJCTkKm9nZ4eDBw/i5MmTiImJwYABA/D48WNxu46ODgYOHIhRo0Zh//79uHbtGvr164e0tDT4+/t/qdMiIiKickBpk7CjR49i8eLFWL16NbS1tcX1AwYMQNOmTfMclhw3bhzq1asHDw8PtGjRAmZmZujSpYtcmRkzZqBbt27w9fVFvXr1cPPmTYSHh8PIyOhLnBYRERGVExIhvwlUpHDJyckwMDCA89BlfHYkKR0+O5KIyqucz2+ZTFbg1CKlfWxReXJsai/ODyMiIipjlHY4koiIiEiZMQkjIiIiUgAmYUREREQKwDlhSqD5uI2cmE/FgpPliYhKD/aEERERESlAuU7C/Pz8IJFIIJFIoKGhAVtbW0yZMgVv375VdGhERERUxpX74UhPT0+sXr0a6enp+OeffzB48GCoq6sjKChI0aERERFRGVaue8KAd89rNDMzg5WVFQYOHIjWrVtj9+7dePnyJX744QcYGRlBW1sbXl5eiIuLk9s3MjISLVq0gLa2NoyMjODh4YGXL18CANLT0xEQEIBKlSpBU1MTX3/9NaKiohRxikRERFQKlfsk7ENaWlrIyMiAn58fzp07h927d+PUqVMQBAHt2rVDZmYmACA6OhqtWrVCzZo1cerUKZw4cQIdO3ZEVlYWAGD06NEICwvDmjVrcOHCBdja2sLDwwMvXrzI99jp6elITk6WW4iIiKhsYhL2/wRBwKFDhxAeHo6qVati9+7dWLFiBZo1awZnZ2esX78e9+/fx86dOwEAs2bNQoMGDbBkyRI4OzujVq1aGDJkCExMTJCamoqlS5di9uzZ8PLyQs2aNfHnn39CS0sLK1euzDeG4OBgGBgYiIulpeUXOnsiIiL60sp9ErZnzx7o6upCU1MTXl5e6NGjB/z8/KCmpobGjRuL5SpUqAAHBwfExMQA+F9PWF7i4+ORmZkJV1dXcZ26ujoaNWok7p+XoKAgyGQycUlMTCymsyQiIqLSptxPzG/ZsiWWLl0KDQ0NWFhYQE1NDbt37/7oflpaxX/fLqlUCqlUWuz1EhERUelT7nvCdHR0YGtri6pVq0JN7V1O6ujoiLdv3+LMmTNiuefPnyM2NhY1a9YEANSpUweHDx/Os04bGxtoaGggMjJSXJeZmYmoqChxfyIiIirfyn0Slhc7Ozt07twZ/fr1w4kTJ3Dp0iV8//33qFy5Mjp37gzg3dBhVFQUBg0ahMuXL+P69etYunQpnj17Bh0dHQwcOBCjRo3C/v37ce3aNfTr1w9paWnw9/dX8NkRERFRacAkLB+rV69G/fr10aFDBzRp0gSCIOCff/6Buro6AMDe3h4HDhzApUuX0KhRIzRp0gS7du0Se9NmzJiBbt26wdfXF/Xq1cPNmzcRHh4OIyMjRZ4WERERlRISQRAERQdBeUtOToaBgQGchy7jsyOpWPDZkUREJS/n81smk0FfXz/fcuV+Yr4yODa1V4FvIhERESkfDkcSERERKQCTMCIiIiIF4HCkEmg+biPnhFGx4JwwIqLSgz1hRERERArAJKyQjhw5AolEgqSkJEWHQkRERGVAqU/CEhMT0bdvX1hYWEBDQwNWVlYYNmwYnj9/XqzHmTRpEiQSCSQSCdTU1GBtbY2ff/4ZKSkpxXocIiIiIqCUJ2G3bt1CgwYNEBcXh40bN+LmzZtYtmwZDh8+jCZNmuDFixfFerxatWrh4cOHSEhIwMyZM7F8+XIEBgYW6zGIiIiIgFKehA0ePBgaGho4cOAA3NzcULVqVXh5eeHQoUO4f/8+xo4dCwCwtrbG9OnT0bdvX+jp6aFq1apYvny5XF2JiYnw9vaGoaEhjI2N0blzZyQkJMiVUVNTg5mZGapUqYIePXrAx8cn34d5T5o0CXXr1pVbt2DBAlhbW4uvjxw5gkaNGkFHRweGhoZwdXXFnTt3PrtdiIiISPmV2iTsxYsXCA8Px6BBg6ClJf/NQDMzM/j4+GDz5s3IueH/3Llz0aBBA1y8eBGDBg3CwIEDERsbC+Ddw7M9PDygp6eH48ePIzIyErq6uvD09ERGRka+MWhpaRW4vSBv375Fly5d4ObmhsuXL+PUqVPo378/JBJJvvukp6cjOTlZbiEiIqKyqdTeoiIuLg6CIMDR0THP7Y6Ojnj58iWePn0KAGjXrh0GDRoEABgzZgzmz5+PiIgIODg4YPPmzcjOzsaKFSvEJGj16tUwNDTEkSNH0LZt21z1nz9/Hhs2bIC7u3uR4k9OToZMJkOHDh1gY2MjxlyQ4OBgTJ48uUjHIyIiIuVSanvCchT20ZZ16tQRf5ZIJDAzM8OTJ08AAJcuXcLNmzehp6cHXV1d6OrqwtjYGG/evEF8fLy435UrV6CrqwstLS3xodwhISFFitvY2Bh+fn7w8PBAx44dsXDhQjx8+LDAfYKCgiCTycQlMTGxSMcmIiKi0q/U9oTZ2tpCIpEgJiYG33zzTa7tMTExMDIyQsWKFQEA6urqctslEgmys7MBACkpKahfvz7Wr1+fq56c/QHAwcEBu3fvhpqamvhtzPyoqKjkShAzMzPlXq9evRoBAQHYv38/Nm/ejHHjxuHgwYP46quv8qxTKpVCKpXme0wiIiIqO0ptT1iFChXQpk0bLFmyBK9fv5bb9ujRI6xfvx49evQocI5Vjnr16iEuLg6VKlWCra2t3GJgYCCW09DQgK2tLaytrQtMwIB3ydujR4/kErHo6Ohc5VxcXBAUFISTJ0+idu3a2LBhw0fjJSIiorKv1CZhABASEoL09HR4eHjg2LFjSExMxP79+9GmTRtUrlwZ06ZNK1Q9Pj4+MDExQefOnXH8+HHcvn0bR44cQUBAAO7du1ek2Fq0aIGnT59i1qxZiI+Px+LFi7Fv3z5x++3btxEUFIRTp07hzp07OHDgAOLi4j46L4yIiIjKh1KdhNnZ2eHcuXOoXr06vL29YWNjg/79+6Nly5Y4deoUjI2NC1WPtrY2jh07hqpVq6Jr165wdHSEv78/3rx5A319/SLF5ujoiCVLlmDx4sVwdnbG2bNnMXLkSLljXr9+Hd26dYO9vT369++PwYMHY8CAAUU6HhEREZUtEqGwM9/pi0tOToaBgQGchy7jA7ypWPAB3kREJS/n81smkxXY2VNqJ+bT/xyb2qvIPXZERERUOpXq4UgiIiKisopJGBEREZECcDhSCTQft5FzwsowztMiIiqf2BNGREREpABMwr6QhIQESCSSPG/oSkREROWP0iVhfn5+6NKlS671R44cgUQiQVJS0hePqTAsLS3x8OFD1K5dW9GhEBERUSnAOWFfiKqqKszMzBQdBhEREZUSStcTVhiTJk1C3bp15dYtWLAA1tbW4uuoqCi0adMGJiYmMDAwgJubGy5cuCBuHzlyJDp06CC3v0Qiwf79+8V1tra2WLFihfh6xYoVcHR0hKamJmrUqIElS5aI2zgcSURERO8rk0lYYbx69Qq9e/fGiRMncPr0adjZ2aFdu3Z49eoVAMDNzQ0nTpxAVlYWAODo0aMwMTHBkSNHAAD3799HfHw8WrRoAQBYv349JkyYgGnTpiEmJgbTp0/H+PHjsWbNmkLHlJ6ejuTkZLmFiIiIyialHI7cs2cPdHV15dblJEuF5e7uLvd6+fLlMDQ0xNGjR9GhQwc0a9YMr169wsWLF1G/fn0cO3YMo0aNws6dOwG8m4NWuXJl2NraAgAmTpyIuXPnomvXrgCAatWq4dq1a/jjjz/Qu3fvQsUUHByMyZMnf9J5EBERkXJSyp6wli1bIjo6Wm55f1iwMB4/fox+/frBzs4OBgYG0NfXR0pKCu7evQsAMDQ0hLOzM44cOYIrV65AQ0MD/fv3x8WLF5GSkoKjR4/Czc0NAJCamor4+Hj4+/tDV1dXXKZOnYr4+PhCxxQUFASZTCYuiYmJn3ROREREpDyUsidMR0dH7IHKce/ePfFnFRUVfPhc8szMTLnXvXv3xvPnz7Fw4UJYWVlBKpWiSZMmyMjIEMu0aNECR44cgVQqhZubG4yNjeHo6IgTJ07g6NGjCAwMBACkpKQAAP788080btxY7jiqqqqFPi+pVAqpVFro8kRERKS8lDIJ+5iKFSvi0aNHEAQBEokEAHJNiI+MjMSSJUvQrl07AEBiYiKePXsmV8bNzQ2rVq2CmpoaPD09AbxLzDZu3IgbN26I88FMTU1hYWGBW7duwcfHp2RPjoiIiMqEMpmEtWjRAk+fPsWsWbPQvXt37N+/H/v27YO+vr5Yxs7ODuvWrUODBg2QnJyMUaNGQUtL/tFAzZs3x6tXr7Bnzx7MmDFDrLt79+4wNzeHvb29WHby5MkICAiAgYEBPD09kZ6ejnPnzuHly5cYMWLElzlxIiIiUhpKOSfsYxwdHbFkyRIsXrwYzs7OOHv2LEaOHClXZuXKlXj58iXq1asHX19fBAQEoFKlSnJljIyM4OTkhIoVK6JGjRoA3iVm2dnZ4nywHD/++CNWrFiB1atXw8nJCW5ubggNDUW1atVK9mSJiIhIKUmEDydPUamRnJwMAwMDOA9dxgd4l2F8gDcRUdmS8/ktk8nkRuE+VCaHI8uaY1N7FfgmEhERkfIpk8ORRERERKUdkzAiIiIiBeBwpBJoPm4j54SVYZwTRkRUPrEnjIiIiEgBipSETZw4EXfu3CnuWEpcixYtMHz4cEWHQURERFS0JGzXrl2wsbFBq1atsGHDBqSnpxd3XCVi+/bt+O2338TX//33H7y9vVGxYkVIpVLY29tjwoQJSEtLy7XvyZMn0a5dOxgZGUFTUxNOTk6YN29eng8O37NnD9zc3KCnpwdtbW00bNgQoaGhJXlqREREpGSKlIRFR0cjKioKtWrVwrBhw2BmZoaBAwciKiqquOMrVsbGxtDT0wMAnD59Go0bN0ZGRgb27t2LGzduYNq0aQgNDUWbNm3kniG5Y8cOuLm5oUqVKoiIiMD169cxbNgwTJ06FT179pR7TuWiRYvQuXNnuLq64syZM7h8+TJ69uyJn376KdcNY4mIiKj8+uybtWZmZuLvv//G6tWrER4ejho1asDf3x9+fn4wMDAorjiLRYsWLVC3bl3Mnz8ftWvXhra2Ns6cOQMVlf/lopcuXYKLiwuCg4MxZswYpKamwsrKCm5ubggLC5Or7++//0anTp2wadMm9OjRA4mJibCxscHQoUMxd+5cubKLFi1CQECAmPwVBm/WWj5wYj4RUdlS2Ju1fvbEfEEQkJmZiYyMDAiCACMjI4SEhMDS0hKbN2/+3OpLRHR0NK5du4YRI0bIJWAA4OzsjNatW2Pjxo0AgAMHDuD58+d59mJ17NgR9vb2Ytlt27YhMzMzz7IDBgyArq6uWDYv6enpSE5OlluIiIiobCpyEnb+/HkMGTIE5ubm+Pnnn+Hi4oKYmBgcPXoUcXFxmDZtGgICAooz1mJz48YNAO+eMZkXR0dHsczHytaoUUOurIGBAczNzXOV09DQQPXq1cWyeQkODoaBgYG4WFpaFv6kiIiISKkUKQlzcnLCV199hdu3b2PlypVITEzEjBkzYGtrK5bp1asXnj59WmyBloSCRmI1NDQKXba4BAUFQSaTiUtiYmKJH5OIiIgUo0hJmLe3NxISErB371506dIFqqqqucqYmJggOzv7swMsCXZ2dgCAmJiYPLfHxMTA3t4eAMR/C1tWJpPhwYMHucplZGQgPj5eLJsXqVQKfX19uYWIiIjKpiIlYePHj0flypWLO5YvxsXFBTVq1MD8+fNzJYqXLl3CoUOH4OfnBwBo27YtjI2Nc020B4Ddu3cjLi4OvXr1AgB069YN6urqeZZdtmwZUlNTxbJERERUvhXpsUVZWVkIDQ3F4cOH8eTJk1yJzL///lsswZUUiUSCFStWoG3btujWrRuCgoJgZmaGM2fOIDAwEB4eHhgwYAAAQEdHB3/88Qd69uyJ/v37Y8iQIdDX18fhw4cxatQodO/eHd7e3gCAqlWrYtasWQgMDISmpiZ8fX2hrq6OXbt24ddff0VgYGChvxlJREREZVuRkrBhw4YhNDQU7du3R+3atSGRSIo7rhLn6uqK06dPY/LkyfDy8sKLFy8AAEOGDMH8+fPlhli7d++OiIgITJs2Dc2aNcObN29gZ2eHsWPHYvjw4XLnP3z4cFSvXh1z5szBwoULkZWVhVq1amHp0qXo06fPFz9PIiIiKp2KdJ8wExMTrF27Fu3atSuJmBQiOzsb/v7+CA8Px9GjR8V5Y4pU2PuMEBERUelRovcJ09DQkPsmZFmgoqKClStXYsyYMTh+/LiiwyEiIqIyrkg9YXPnzsWtW7cQEhKilEORyoI9YURERMqnsJ/fRZoTduLECURERGDfvn2oVasW1NXV5bZv3769KNUSERERlRtFSsIMDQ3xzTffFHcslI/m4zby2ZGfgc9mJCKi0qhISdjq1auLOw4iIiKicuWzH+BdFkkkkgKXSZMmAQAuXryIb7/9FqamptDU1ISdnR369esnPh8yISEBEokE0dHRijsZIiIiKpWK1BMGANu2bcOWLVtw9+5dZGRkyG27cOHCZwemSA8fPhR/3rx5MyZMmIDY2Fhxna6uLvbs2YNu3brBw8MD69evh42NDZ48eYKtW7di/Pjx2Lx5syJCJyIiIiVRpCTs999/x9ixY+Hn54ddu3ahT58+iI+PR1RUFAYPHlzcMX5xZmZm4s8GBgaQSCRy69LS0tCnTx+0a9cOO3bsENdXq1YNjRs3RlJS0pcMl4iIiJRQkYYjlyxZguXLl2PRokXQ0NDA6NGjcfDgQQQEBEAmkxV3jKVOeHg4nj17htGjR+e53dDQ8MsGREREREqnSEnY3bt30bRpUwCAlpYWXr16BQDw9fXFxo0biy+6UiouLg4AUKNGjWKtNz09HcnJyXILERERlU1FSsLMzMzEZy1WrVoVp0+fBgDcvn0bRbj3q9IpqXMMDg6GgYGBuFhaWpbIcYiIiEjxipSEubu7Y/fu3QCAPn364Oeff0abNm3Qo0ePcnH/MHt7ewDA9evXi7XeoKAgyGQycUlMTCzW+omIiKj0KNLE/OXLlyM7OxsAMHjwYFSoUAEnT55Ep06dMGDAgGINsDRq27YtTExMMGvWLLmJ+TmSkpKKNC9MKpVCKpUWQ4RERERU2hUpCVNRUYGKyv860Xr27ImePXsWW1ClnY6ODlasWIFvv/0WnTp1QkBAAGxtbfHs2TPxth2bNm0Sy79/e4sceT3uiYiIiMqPIt8n7OXLl1i5ciViYmIAADVr1kSfPn1gbGxcbMGVZp07d8bJkycRHByM7777DsnJybC0tIS7uzumTp0qVzavBDUxMRFVqlT5UuESERFRKSMRijDL/NixY+jUqRP09fXRoEEDAMD58+eRlJSEv//+G82bNy/2QMujnKewOw9dxmdHfgY+O5KIiL6knM9vmUwGfX39fMsVKQlzcnJCkyZNsHTpUqiqqgIAsrKyMGjQIJw8eRJXrlwpeuQkKuybSERERKVHYT+/i/TtyJs3byIwMFBMwABAVVUVI0aMwM2bN4tSJREREVG5UqQkrF69euJcsPfFxMTA2dn5s4MiIiIiKuuKNDE/ICAAw4YNw82bN/HVV18BAE6fPo3FixdjxowZuHz5sli2Tp06xRMpERERURlSpDlh79+eIs9KJRIIggCJRIKsrKwiB1fecWK+PE6wJyIiZVDYOWFF6gm7fft2kQMjIiIioiLOCbOysir0UlokJiaib9++sLCwgIaGBqysrDBs2DA8f/5cLNOiRQtIJBJIJBJoamqiZs2aWLJkibg9NDRU3K6iooIqVaqgT58+ePLkidyx9uzZAzc3N+jp6UFbWxsNGzZEaGjolzpVIiIiUgJFvlnrgwcPcOLECTx58kR8hFGOgICAzw6sON26dQtNmjSBvb09Nm7ciGrVquG///7DqFGjsG/fPpw+fVq8yWy/fv0wZcoUpKWlYe3atRg8eDCMjIzQq1cvAIC+vj5iY2ORnZ2NS5cuoU+fPnjw4AHCw8MBAIsWLcLw4cMxZswYLF26FBoaGti1axd++uknXL16FXPmzFFYOxAREVHpUaQkLDQ0FAMGDICGhgYqVKgAiUQibpNIJKUuCRs8eDA0NDRw4MABaGm9m1tVtWpVuLi4wMbGBmPHjsXSpUsBANra2jAzMwMATJo0CRs2bMDu3bvFJEwikYjbLSwsEBAQgPHjx+P169d49uwZAgMDMXz4cEyfPl08fmBgIDQ0NBAQEIBvv/0WjRs3/pKnT0RERKVQkYYjx48fjwkTJkAmkyEhIQG3b98Wl1u3bhV3jJ/lxYsXCA8Px6BBg8QELIeZmRl8fHywefNm5Pf9BC0tLWRkZORbv5aWFrKzs/H27Vts27YNmZmZGDlyZK5yAwYMgK6uLjZu3JhvXenp6UhOTpZbiIiIqGwqUhKWlpaGnj17fvRbkqVBXFwcBEGAo6NjntsdHR3x8uVLPH36VG59VlYW/vrrL1y+fBnu7u751r1s2TI0aNAAenp6uHHjBgwMDGBubp6rrIaGBqpXr44bN27kG2twcDAMDAzExdLS8hPOlIiIiJRJkbIof39/bN26tbhjKVGFvRPHkiVLoKurCy0tLfTr1w8///wzBg4cKG6XyWTQ1dWFtrY2HBwcYGpqivXr1xdLjEFBQZDJZOKSmJhYLPUSERFR6VOkOWHBwcHo0KED9u/fDycnJ6irq8ttnzdvXrEEVxxsbW0hkUgQExODb775Jtf2mJgYGBkZoWLFigAAHx8fjB07FlpaWjA3N8/V26enp4cLFy5ARUUF5ubmckOc9vb2kMlkePDgASwsLOT2y8jIQHx8PFq2bJlvrFKpFFKp9HNOl4iIiJREkXrCgoODER4ejsePH+PKlSu4ePGiuERHRxdziJ+nQoUKaNOmDZYsWYLXr1/LbXv06BHWr1+PHj16iF8uMDAwgK2tLSpXrpzncKuKigpsbW1RvXr1XHPMunXrBnV1dcydOzfXfsuWLUNqaqo4wZ+IiIjKtyL1hM2dOxerVq2Cn59fMYdTMkJCQtC0aVN4eHhg6tSpcreoqFy5MqZNm1Ysx6latSpmzZqFwMBAaGpqwtfXF+rq6ti1axd+/fVXBAYG8puRREREBKCIPWFSqRSurq7FHUuJsbOzw7lz51C9enV4e3vDxsYG/fv3R8uWLXHq1CnxHmHFYfjw4dixYweOHz+OBg0aoHbt2tiwYQOWLl3Ke4QRERGRqEjPjgwODsbDhw/x+++/l0RM9P/47Eh5fHYkEREpg8I+O7JISdg333yDf//9FxUqVECtWrVyTczfvn37p0dMuRT2TSQiIqLSo0Qf4G1oaIiuXbsWOTgiIiKi8q5ISdjq1auLOw4iIiKicqXID/AGgKdPnyI2NhYA4ODgIN5ri4pX83Eby9ycMM7vIiKi8q5I345MTU1F3759YW5ujubNm6N58+awsLCAv78/0tLSijtGIiIiojKnSEnYiBEjcPToUfz9999ISkpCUlISdu3ahaNHjyIwMLC4YyxRoaGhMDQ0LLCMn58funTp8kXiISIiovKhSElYWFgYVq5cCS8vL+jr60NfXx/t2rXDn3/+iW3bthV3jPDz84NEIsGMGTPk1u/cuVO8031hWFtbY8GCBZ98/IULFyI0NPST9yMiIiLKT5GSsLS0NJiamuZaX6lSpRIbjtTU1MTMmTPx8uXLEqm/IAYGBh/tLSMiIiL6FEVKwpo0aYKJEyfizZs34rrXr19j8uTJaNKkSbEF977WrVvDzMwMwcHB+ZYJCwtDrVq1IJVKYW1tLfcMxxYtWuDOnTv4+eefIZFIcvWghYeHw9HREbq6uvD09MTDhw/FbR8OR7Zo0QIBAQEYPXo0jI2NYWZmhkmTJsnVd/36dXz99dfQ1NREzZo1cejQIUgkEuzcufOz2oGIiIjKhiIlYQsWLEBkZCSqVKmCVq1aoVWrVrC0tERkZCQWLlxY3DECAFRVVTF9+nQsWrQI9+7dy7X9/Pnz8Pb2Rs+ePXHlyhVMmjQJ48ePF4cRt2/fjipVqmDKlCl4+PChXJKVlpaGOXPmYN26dTh27Bju3r2LkSNHFhjPmjVroKOjgzNnzmDWrFmYMmUKDh48CADIyspCly5doK2tjTNnzmD58uUYO3bsR88xPT0dycnJcgsRERGVTUW6RYWTkxPi4uKwfv16XL9+HQDQq1cv+Pj4QEur5G6l8M0336Bu3bqYOHEiVq5cKbdt3rx5aNWqFcaPHw8AsLe3x7Vr1zB79mz4+fnB2NgYqqqq0NPTg5mZmdy+mZmZWLZsGWxsbAAAQ4YMwZQpUwqMpU6dOpg4cSKAd8+mDAkJweHDh9GmTRscPHgQ8fHxOHLkiHisadOmoU2bNgXWGRwcjMmTJxe+QYiIiEhpFSkJCw4OhqmpKfr16ye3ftWqVXj69CnGjBlTLMHlZebMmXB3d8/VUxUTE4POnTvLrXN1dcWCBQuQlZUFVVXVfOvU1tYWEzAAMDc3x5MnTwqMo06dOnKv398nNjYWlpaWcsleo0aNCj4xAEFBQRgxYoT4Ojk5GZaWlh/dj4iIiJRPkYYj//jjD9SoUSPX+lq1amHZsmWfHVRBmjdvDg8PDwQFBRVbnR8++1IikeBjj9TMa5/s7OzPikMqlYrfNs1ZiIiIqGwqUk/Yo0ePYG5unmt9xYoV5eZalZQZM2agbt26cHBwENc5OjoiMjJSrlxkZCTs7e3FXjANDQ1kZWWVeHwODg5ITEzE48ePxW+RRkVFlfhxiYiISHkUqScsZxL+hyIjI2FhYfHZQX2Mk5MTfHx88Pvvv4vrAgMDcfjwYfz222+4ceMG1qxZg5CQELlhS2traxw7dgz379/Hs2fPSiy+Nm3awMbGBr1798bly5cRGRmJcePGAcAn3deMiIiIyq4iJWH9+vXD8OHDsXr1aty5cwd37tzBqlWr8PPPP+eaJ1ZSpkyZIjf8V69ePWzZsgWbNm1C7dq1MWHCBEyZMgV+fn5y+yQkJMDGxqZEn3OpqqqKnTt3IiUlBQ0bNsSPP/4ofjtSU1OzxI5LREREykMifGzyUx4EQcAvv/yC33//HRkZGQDeJRdjxozBhAkTij3IsiAyMhJff/01bt68KfclgIIkJyfDwMAAzkOX8QHeRERESiLn81smkxU4v7tISViOlJQUxMTEQEtLC3Z2dpBKpUWtqszZsWMHdHV1YWdnh5s3b2LYsGEwMjLCiRMnCl1HYd9EIiIiKj0K+/ldpIn5OXR1ddGwYcPPqaLMevXqFcaMGYO7d+/CxMQErVu3lruDPxEREZVvn9UTRiWLPWFERETK54v0hNGX0XzcxlI7J4xzu4iIiIqmSN+OJCIiIqLPwySsmCQkJEAikSA6OlrRoRAREZESUPok7NGjRxg2bBhsbW2hqakJU1NTuLq6YunSpUhLS1N0eERERER5Uuo5Ybdu3YKrqysMDQ0xffp0ODk5QSqV4sqVK1i+fDkqV66MTp06KTpMIiIiolyUuids0KBBUFNTw7lz5+Dt7Q1HR0dUr14dnTt3xt69e9GxY0cAwN27d9G5c2fo6upCX18f3t7eePz4sVxdS5cuhY2NDTQ0NODg4IB169bJbb9+/Tq+/vpraGpqombNmjh06BAkEgl27tyZb3xXr16Fl5cXdHV1YWpqCl9f3xJ9XBIREREpD6VNwp4/f44DBw5g8ODB0NHRybOMRCJBdnY2OnfujBcvXuDo0aM4ePAgbt26hR49eojlduzYgWHDhiEwMBBXr17FgAED0KdPH0RERAAAsrKy0KVLF2hra+PMmTNYvny5+Bii/CQlJcHd3R0uLi44d+4c9u/fj8ePH8Pb2zvffdLT05GcnCy3EBERUdmktMORN2/ehCAIcHBwkFtvYmKCN2/eAAAGDx6M1q1b48qVK7h9+zYsLS0BAGvXrkWtWrUQFRWFhg0bYs6cOfDz88OgQYMAACNGjMDp06cxZ84ctGzZEgcPHkR8fDyOHDkCMzMzAMC0adPQpk2bfOMLCQmBi4sLpk+fLq5btWoVLC0tcePGDdjb2+faJzg4GJMnT/68hiEiIiKloLQ9Yfk5e/YsoqOjUatWLaSnpyMmJgaWlpZiAgYANWvWhKGhIWJiYgAAMTExcHV1lavH1dVV3B4bGwtLS0sxAQOARo0aFRjHpUuXEBERAV1dXXGpUaMGACA+Pj7PfYKCgiCTycQlMTHx0xuAiIiIlILS9oTZ2tpCIpEgNjZWbn316tUBAFpair25aUpKCjp27IiZM2fm2mZubp7nPlKplM/fJCIiKieUtiesQoUKaNOmDUJCQpCamppvOUdHRyQmJsr1Kl27dg1JSUmoWbOmWCYyMlJuv8jISHG7g4MDEhMT5SbzR0VFFRhfvXr18N9//8Ha2hq2trZyS35z2IiIiKj8UNokDACWLFmCt2/fokGDBti8eTNiYmIQGxuLv/76C9evX4eqqipat24NJycn+Pj44MKFCzh79ix++OEHuLm5oUGDBgCAUaNGITQ0FEuXLkVcXBzmzZuH7du3Y+TIkQCANm3awMbGBr1798bly5cRGRmJcePGAXg3+T8vgwcPxosXL9CrVy9ERUUhPj4e4eHh6NOnD7Kysr5MAxEREVGppdRJmI2NDS5evIjWrVsjKCgIzs7OaNCgARYtWoSRI0fit99+g0Qiwa5du2BkZITmzZujdevWqF69OjZv3izW06VLFyxcuBBz5sxBrVq18Mcff2D16tVo0aIFAEBVVRU7d+5ESkoKGjZsiB9//FH8dqSmpmaesVlYWCAyMhJZWVlo27YtnJycMHz4cBgaGkJFRambnYiIiIqBRBAEQdFBKKPIyEh8/fXXuHnzJmxsbErkGDlPYXceuowP8CYiIlISOZ/fMpkM+vr6+ZZjElZIO3bsgK6uLuzs7HDz5k0MGzYMRkZGOHHiRIkds7BvIhEREZUehf38VtpvR35pr169wpgxY3D37l2YmJigdevWmDt3rqLDIiIiIiXFnrBSjD1hREREyoc9YWVI83Ebv8icMM7vIiIi+nL4NT0iIiIiBWASRkRERKQA5TYJ8/PzQ5cuXRQdBhEREZVT5TYJIyIiIlIkJmF5mDdvHpycnKCjowNLS0sMGjQIKSkpAN5940FLSwv79u2T22fHjh3Q09NDWloaAGDMmDGwt7eHtrY2qlevjvHjxyMzM/OLnwsRERGVTkzC8qCiooLff/8d//33H9asWYN///0Xo0ePBgDo6+ujQ4cO2LBhg9w+69evR5cuXaCtrQ0A0NPTQ2hoKK5du4aFCxfizz//xPz58ws8bnp6OpKTk+UWIiIiKpuYhOVh+PDhaNmyJaytreHu7o6pU6diy5Yt4nYfHx/s3LlT7PVKTk7G3r174ePjI5YZN24cmjZtCmtra3Ts2BEjR46UqyMvwcHBMDAwEBdLS8uSOUEiIiJSOCZheTh06BBatWqFypUrQ09PD76+vnj+/LmYdLVr1w7q6urYvXs3ACAsLAz6+vpo3bq1WMfmzZvh6uoKMzMz6OrqYty4cbh7926Bxw0KCoJMJhOXxMTEkjtJIiIiUigmYR9ISEhAhw4dUKdOHYSFheH8+fNYvHgxACAjIwMAoKGhge7du4tDkhs2bECPHj2gpvbu3renTp2Cj48P2rVrhz179uDixYsYO3asuH9+pFIp9PX15RYiIiIqm3jH/A+cP38e2dnZmDt3LlRU3uWoeQ0j+vj4oE2bNvjvv//w77//YurUqeK2kydPwsrKCmPHjhXX3blzp+SDJyIiIqVRrpMwmUyG6OhouXUmJibIzMzEokWL0LFjR0RGRmLZsmW59m3evDnMzMzg4+ODatWqoXHjxuI2Ozs73L17F5s2bULDhg2xd+9e7Nixo6RPh4iIiJRIuR6OPHLkCFxcXOSWdevWYd68eZg5cyZq166N9evXIzg4ONe+EokEvXr1wqVLl+Qm5ANAp06d8PPPP2PIkCGoW7cuTp48ifHjx3+p0yIiIiIlIBEEQVB0EJS3wj6FnYiIiEqPwn5+l+ueMCIiIiJFYRJGREREpABMwoiIiIgUoFx/O1JZNB+3EapSrRI/zvnZP5T4MYiIiOgd9oQRERERKQCTMLy7w72qqirat2+v6FCIiIionGASBmDlypUYOnQojh07hgcPHig6HCIiIioHyn0SlpKSgs2bN2PgwIFo3749QkNDxW0vX76Ej48PKlasCC0tLdjZ2WH16tUA3t3oVSKRICkpSSwfHR0NiUSChIQEAO8eVdSxY0cYGRlBR0cHtWrVwj///PMFz46IiIhKq3I/MX/Lli2oUaMGHBwc8P3332P48OEICgqCRCLB+PHjce3aNezbtw8mJia4efMmXr9+Xei6Bw8ejIyMDBw7dgw6Ojq4du0adHV1S/BsiIiISFmU+yRs5cqV+P777wEAnp6ekMlkOHr0KFq0aIG7d+/CxcUFDRo0AABYW1t/Ut13795Ft27d4OTkBACoXr16geXT09ORnp4uvk5OTv6k4xEREZHyKNfDkbGxsTh79ix69eoFAFBTU0OPHj2wcuVKAMDAgQOxadMm1K1bF6NHj8bJkyc/qf6AgABMnToVrq6umDhxIi5fvlxg+eDgYBgYGIiLpaVl0U6MiIiISr1ynYStXLkSb9++hYWFBdTU1KCmpoalS5ciLCwMMpkMXl5euHPnDn7++Wc8ePAArVq1wsiRIwEAKirvmu79R29mZmbK1f/jjz/i1q1b8PX1xZUrV9CgQQMsWrQo33iCgoIgk8nEJTExsQTOmoiIiEqDcpuEvX37FmvXrsXcuXMRHR0tLpcuXYKFhQU2btwIAKhYsSJ69+6Nv/76CwsWLMDy5cvF9QDw8OFDsc7o6Ohcx7G0tMRPP/2E7du3IzAwEH/++We+MUmlUujr68stREREVDaV2zlhe/bswcuXL+Hv7w8DAwO5bd26dcPKlSvx4MED1K9fH7Vq1UJ6ejr27NkDR0dHAICtrS0sLS0xadIkTJs2DTdu3MDcuXPl6hk+fDi8vLxgb2+Ply9fIiIiQtyfiIiIyrdy2xO2cuVKtG7dOlcCBrxLws6dOwc1NTUEBQWhTp06aN68OVRVVbFp0yYAgLq6OjZu3Ijr16+jTp06mDlzJqZOnSpXT1ZWFgYPHgxHR0d4enrC3t4eS5Ys+SLnR0RERKWbRHh/UhOVKsnJyTAwMIDz0GV8diQREZGSyPn8lslkBU4tKrfDkcrk2NRenB9GRERUxpTb4UgiIiIiRWISRkRERKQATMKIiIiIFIBzwpRA83EbOTGfiIiojGFPGBEREZEClLskLDExEX379oWFhQU0NDRgZWWFYcOG4fnz54oOjYiIiMqRcpWE3bp1Cw0aNEBcXBw2btyImzdvYtmyZTh8+DCaNGmCFy9eKDpEIiIiKifKVRI2ePBgaGho4MCBA3Bzc0PVqlXh5eWFQ4cO4f79+xg7diwAwNraGr/99ht69eoFHR0dVK5cGYsXL5arSyKRYOnSpfDy8oKWlhaqV6+Obdu2yZW5cuUK3N3doaWlhQoVKqB///5ISUn5YudLREREpVe5ScJevHiB8PBwDBo0CFpa8pPczczM4OPjg82bNyPnAQKzZ8+Gs7MzLl68iF9++QXDhg3DwYMH5fYbP348unXrhkuXLsHHxwc9e/ZETEwMACA1NRUeHh4wMjJCVFQUtm7dikOHDmHIkCH5xpieno7k5GS5hYiIiMqmcpOExcXFQRCEfB+g7ejoiJcvX+Lp06cAAFdXV/zyyy+wt7fH0KFD0b17d8yfP19un2+//RY//vgj7O3t8dtvv6FBgwZYtGgRAGDDhg148+YN1q5di9q1a8Pd3R0hISFYt24dHj9+nGcMwcHBMDAwEBdLS8tibAEiIiIqTcpNEpajsI/KbNKkSa7XOb1chSkTExMDZ2dn6OjoiNtdXV2RnZ2N2NjYPI8ZFBQEmUwmLomJiYWKlYiIiJRPuUnCbG1tIZFIciVSOWJiYmBkZISKFSt+4cj+RyqVQl9fX24hIiKisqncJGEVKlRAmzZtsGTJErx+/Vpu26NHj7B+/Xr06NEDEokEAHD69Gm5MqdPn841lFlQGUdHR1y6dAmpqani9sjISKioqMDBwaHYzouIiIiUU7lJwgAgJCQE6enp8PDwwLFjx5CYmIj9+/ejTZs2qFy5MqZNmyaWjYyMxKxZs3Djxg0sXrwYW7duxbBhw+Tq27p1K1atWoUbN25g4sSJOHv2rDjx3sfHB5qamujduzeuXr2KiIgIDB06FL6+vjA1Nf2i501ERESlT7lKwuzs7HDu3DlUr14d3t7esLGxQf/+/dGyZUucOnUKxsbGYtnAwECcO3cOLi4umDp1KubNmwcPDw+5+iZPnoxNmzahTp06WLt2LTZu3IiaNWsCALS1tREeHo4XL16gYcOG6N69O1q1aoWQkJAves5ERERUOpW7Z0daWVkhNDT0o+X09fWxZcuWAstYWFjgwIED+W53cnLCv//++6khEhERUTlQ7pIwZXRsai9O0iciIipjytVwJBEREVFpwZ6wPCQkJHy0TGHvN0ZERESUFyZhSqD5uI1QlWp9vOBnOj/7hxI/BhEREb3D4UgiIiIiBWASRkRERKQAZTYJk0gkBS6TJk1SdIhERERUjpXZOWEPHz4Uf968eTMmTJgg9+BsXV1dRYRFREREBKAM94SZmZmJi4GBASQSidy6TZs2wdHREZqamqhRowaWLFkit/+9e/fQq1cvGBsbQ0dHBw0aNMCZM2cAAJMmTULdunWxbt06WFtbw8DAAD179sSrV6/E/dPT0xEQEIBKlSpBU1MTX3/9NaKior5oGxAREVHpVWZ7wgqyfv16TJgwASEhIXBxccHFixfRr18/6OjooHfv3khJSYGbmxsqV66M3bt3w8zMDBcuXEB2drZYR3x8PHbu3Ik9e/bg5cuX8Pb2xowZM8TnT44ePRphYWFYs2YNrKysMGvWLHh4eODmzZtyj0d6X3p6OtLT08XXycnJJdsQREREpDDlMgmbOHEi5s6di65duwIAqlWrhmvXruGPP/5A7969sWHDBjx9+hRRUVFiwmRraytXR3Z2NkJDQ6GnpwcA8PX1xeHDhzFt2jSkpqZi6dKlCA0NhZeXFwDgzz//xMGDB7Fy5UqMGjUqz7iCg4MxefLkkjptIiIiKkXK7HBkflJTUxEfHw9/f3/o6uqKy9SpUxEfHw8AiI6OhouLS749VgBgbW0tJmAAYG5ujidPngB410uWmZkJV1dXcbu6ujoaNWqEmJiYfOsMCgqCTCYTl8TExM89XSIiIiqlyl1PWEpKCoB3PVONGzeW26aqqgoA0NL6+I1R1dXV5V5LJBK54cqikEqlkEqln1UHERERKYdy1xNmamoKCwsL3Lp1C7a2tnJLtWrVAAB16tRBdHQ0Xrx4UaRj2NjYQENDA5GRkeK6zMxMREVFoWbNmsVyHkRERKTcyl1PGABMnjwZAQEBMDAwgKenJ9LT03Hu3Dm8fPkSI0aMQK9evTB9+nR06dIFwcHBMDc3x8WLF2FhYYEmTZp8tH4dHR0MHDgQo0aNgrGxMapWrYpZs2YhLS0N/v7+X+AMiYiIqLQrl0nYjz/+CG1tbcyePRujRo2Cjo4OnJycMHz4cACAhoYGDhw4gMDAQLRr1w5v375FzZo1sXjx4kIfY8aMGcjOzoavry9evXqFBg0aIDw8HEZGRiV0VkRERKRMJIIgCIoOgvKWnJwMAwMDOA9dxgd4ExERKYmcz2+ZTAZ9ff18y5XLnjBlc2xqrwLfRCIiIlI+5W5iPhEREVFpwCSMiIiISAE4HKkEmo/byDlhREREZQx7woiIiIgUgEnYF9KiRQvxFhhERERETMIKwc/PD126dAHAZIqIiIiKB5MwIiIiIgVgEvYJ/Pz8cPToUSxcuBASiQQSiQQJCQkAgKtXr8LLywu6urowNTWFr68vnj17ptiAiYiIqNRiEvYJFi5ciCZNmqBfv354+PAhHj58CEtLSyQlJcHd3R0uLi44d+4c9u/fj8ePH8Pb2/uT6k9PT0dycrLcQkRERGUTb1HxCQwMDKChoQFtbW2YmZmJ60NCQuDi4oLp06eL61atWgVLS0vcuHED9vb2hao/ODgYkydPLva4iYiIqPRhT1gxuHTpEiIiIqCrqysuNWrUAADEx8cXup6goCDIZDJxSUxMLKmQiYiISMHYE1YMUlJS0LFjR8ycOTPXNnNz80LXI5VKIZVKizM0IiIiKqWYhH0iDQ0NZGVlya2rV68ewsLCYG1tDTU1NikRERF9HIcjP5G1tTXOnDmDhIQEPHv2DNnZ2Rg8eDBevHiBXr16ISoqCvHx8QgPD0efPn1yJWxEREREAJOwTzZy5EioqqqiZs2aqFixIu7evQsLCwtERkYiKysLbdu2hZOTE4YPHw5DQ0OoqLCJiYiIKDeJIAiCooOgvCUnJ8PAwADOQ5fxAd5ERERKIufzWyaTQV9fP99ynMCkBI5N7VXgm0hERETKh2NlRERERArAJIyIiIhIATgcqQSaj9v4SXPCOLeLiIio9GNPGBEREZEClIskTCKRYOfOnYoOg4iIiEik9EnYo0ePMGzYMNja2kJTUxOmpqZwdXXF0qVLkZaWBgB4+PAhvLy8FBwpERER0f8o9ZywW7duwdXVFYaGhpg+fTqcnJwglUpx5coVLF++HJUrV0anTp1gZmam6FCJiIiI5Ch1T9igQYOgpqaGc+fOwdvbG46OjqhevTo6d+6MvXv3omPHjgByD0deuXIF7u7u0NLSQoUKFdC/f3+kpKSI2/38/NClSxfMmTMH5ubmqFChAgYPHozMzEyxTHp6OkaOHInKlStDR0cHjRs3xpEjR+TiO3HiBJo1awYtLS1YWloiICAAqampJdomREREpByUNgl7/vw5Dhw4gMGDB0NHRyfPMhKJJNe61NRUeHh4wMjICFFRUdi6dSsOHTqEIUOGyJWLiIhAfHw8IiIisGbNGoSGhiI0NFTcPmTIEJw6dQqbNm3C5cuX8e2338LT0xNxcXEAgPj4eHh6eqJbt264fPkyNm/ejBMnTuQ6zvvS09ORnJwstxAREVHZpLRJ2M2bNyEIAhwcHOTWm5iYQFdXF7q6uhgzZkyu/TZs2IA3b95g7dq1qF27Ntzd3RESEoJ169bh8ePHYjkjIyOEhISgRo0a6NChA9q3b4/Dhw8DAO7evYvVq1dj69ataNasGWxsbDBy5Eh8/fXXWL16NQAgODgYPj4+GD58OOzs7NC0aVP8/vvvWLt2Ld68eZPnOQUHB8PAwEBcLC0ti6u5iIiIqJRR6jlheTl79iyys7Ph4+OD9PT0XNtjYmLg7Ows13vm6uqK7OxsxMbGwtTUFABQq1YtqKqqimXMzc1x5coVAO+GM7OysmBvby9Xd3p6OipUqAAAuHTpEi5fvoz169eL2wVBQHZ2Nm7fvg1HR8dcsQUFBWHEiBHi6+TkZCZiREREZZTSJmG2traQSCSIjY2VW1+9enUAgJbW5z3wWl1dXe61RCJBdnY2ACAlJQWqqqo4f/68XKIGALq6umKZAQMGICAgIFfdVatWzfOYUqkUUqn0s+ImIiIi5aC0SViFChXQpk0bhISEYOjQofnOC/uQo6MjQkNDkZqaKu4TGRkJFRWVXEOb+XFxcUFWVhaePHmCZs2a5VmmXr16uHbtGmxtbQt3QkRERFSuKO2cMABYsmQJ3r59iwYNGmDz5s2IiYlBbGws/vrrL1y/fj1XLxUA+Pj4QFNTE71798bVq1cRERGBoUOHwtfXVxyK/Bh7e3v4+Pjghx9+wPbt23H79m2cPXsWwcHB2Lt3LwBgzJgxOHnyJIYMGYLo6GjExcVh165dBU7MJyIiovJDaXvCAMDGxgYXL17E9OnTERQUhHv37kEqlaJmzZoYOXIkBg0alGsfbW1thIeHY9iwYWjYsCG0tbXRrVs3zJs375OOvXr1akydOhWBgYG4f/8+TExM8NVXX6FDhw4AgDp16uDo0aMYO3YsmjVrBkEQYGNjgx49ehTLuRMREZFykwiCICg6CMpbcnIyDAwMIJPJoK+vr+hwiIiIqBAK+/mt1MORRERERMqKSRgRERGRAjAJIyIiIlIApZ6YX140H7cRqtLC3/fs/OwfSjAaIiIiKg7sCSMiIiJSAKVMwvz8/NClSxdFh0FERERUZEqZhBEREREpuzKXhF29ehVeXl7Q1dWFqakpfH198ezZM3F7ixYtEBAQgNGjR8PY2BhmZmaYNGmSXB13795F586doaurC319fXh7e+Px48cAgBs3bkAikeD69ety+8yfPx82Njbi66NHj6JRo0aQSqUwNzfHL7/8grdv35bciRMREZFSKVNJWFJSEtzd3eHi4oJz585h//79ePz4Mby9veXKrVmzBjo6Ojhz5gxmzZqFKVOm4ODBgwCA7OxsdO7cGS9evMDRo0dx8OBB3Lp1S7zTvb29PRo0aID169fL1bl+/Xp89913AID79++jXbt2aNiwIS5duoSlS5di5cqVmDp16hdoBSIiIlIGZerbkSEhIXBxccH06dPFdatWrYKlpSVu3LgBe3t7AO8eKTRx4kQAgJ2dHUJCQnD48GG0adMGhw8fxpUrV3D79m1YWloCANauXYtatWohKioKDRs2hI+PD0JCQvDbb78BeNc7dv78efz1118A3j3T0tLSEiEhIZBIJKhRowYePHiAMWPGYMKECVBRyTv3TU9PR3p6uvg6OTm5+BuJiIiISoUy1RN26dIlREREQFdXV1xq1KgBAIiPjxfL1alTR24/c3NzPHnyBAAQExMDS0tLMQEDgJo1a8LQ0BAxMTEAgJ49eyIhIQGnT58G8K4XrF69euKxYmJi0KRJE0gkErEOV1dXpKSk4N69e/nGHxwcDAMDA3F5PwYiIiIqW8pUEpaSkoKOHTsiOjpabomLi0Pz5s3Fcurq6nL7SSQSZGdnF/o4ZmZmcHd3x4YNGwAAGzZsgI+Pz2fHHxQUBJlMJi6JiYmfXScRERGVTmVqOLJevXoICwuDtbU11NSKdmqOjo5ITExEYmKi2BN17do1JCUloWbNmmI5Hx8fjB49Gr169cKtW7fQs2dPuTrCwsIgCILYGxYZGQk9PT1UqVIl32NLpVJIpdIixU1ERETKRWl7wmQyWa4er/79++PFixfo1asXoqKiEB8fj/DwcPTp0wdZWVmFqrd169ZwcnKCj48PLly4gLNnz+KHH36Am5sbGjRoIJbr2rUrXr16hYEDB6Jly5awsLAQtw0aNAiJiYkYOnQorl+/jl27dmHixIkYMWJEvvPBiIiIqHxR2p6wI0eOwMXFRW6dv78/IiMjMWbMGLRt2xbp6emwsrKCp6dnoZMfiUSCXbt2YejQoWjevDlUVFTg6emJRYsWyZXT09NDx44dsWXLFqxatUpuW+XKlfHPP/9g1KhRcHZ2hrGxMfz9/TFu3LjPO2kiIiIqMySCIAiKDoLylpycDAMDAzgPXcZnRxIRESmJnM9vmUwGfX39fMspbU9YeXJsaq8C30QiIiJSPpygRERERKQATMKIiIiIFIBJGBEREZECcE6YEmg+biMn5hMREZUx7AkjIiIiUgAmYUXg5+eHLl265Lv94sWL6NGjB8zNzSGVSmFlZYUOHTrg77//Bu8IQkRERACTsGK3a9cufPXVV0hJScGaNWsQExOD/fv345tvvsG4ceMgk8kUHSIRERGVApwTVoxSU1Ph7++P9u3bY/v27XLbHB0d4e/vz54wIiIiAsAkrFgdOHAAz58/x+jRo/Mtk/NA77ykp6cjPT1dfJ2cnFys8REREVHpweHIYnTjxg0AgIODg7guKioKurq64rJnz5589w8ODoaBgYG4WFpalnjMREREpBhMwkpYnTp1EB0djejoaKSmpuLt27f5lg0KCoJMJhOXxMTELxgpERERfUkcjixGdnZ2AIDY2Fh89dVXAACpVApbW9tC7S+VSiGVSkssPiIiIio92BNWjNq2bQtjY2PMnDlT0aEQERFRKceesCKSyWSIjo6WW1ehQgWsWLECPXr0QPv27REQEAA7OzukpKRg//79AABVVVUFREtERESlDZOwIjpy5AhcXFzk1vn7+2PFihU4efIkZs6ciR9++AEvXryAgYEBGjRogE2bNqFDhw4KipiIiIhKE4nAG1eVWsnJyTAwMIDz0GV8diQREZGSyPn8lslk0NfXz7cce8KUwLGpvQp8E4mIiEj5MAkrxXI6KXnTViIiIuWR87n9scFGJmGl2PPnzwGAN20lIiJSQq9evYKBgUG+25mElWLGxsYAgLt37xb4JpYHycnJsLS0RGJiIodmwfZ4H9tCHtvjf9gW8tge/1PSbSEIAl69egULC4sCyzEJK8VUVN7dxs3AwKDc/8Lk0NfXZ1u8h+3xP2wLeWyP/2FbyGN7/E9JtkVhOk94s1YiIiIiBWASRkRERKQATMJKMalUiokTJ/J5kmBbfIjt8T9sC3lsj/9hW8hje/xPaWkL3qyViIiISAHYE0ZERESkAEzCiIiIiBSASRgRERGRAjAJIyIiIlIAJmGl1OLFi2FtbQ1NTU00btwYZ8+eVXRICjFp0iRIJBK5pUaNGooO64s4duwYOnbsCAsLC0gkEuzcuVNuuyAImDBhAszNzaGlpYXWrVsjLi5OMcF+AR9rDz8/v1zXiqenp2KCLWHBwcFo2LAh9PT0UKlSJXTp0gWxsbFyZd68eYPBgwejQoUK0NXVRbdu3fD48WMFRVxyCtMWLVq0yHVt/PTTTwqKuGQtXboUderUEW9C2qRJE+zbt0/cXl6uC+DjbVEargsmYaXQ5s2bMWLECEycOBEXLlyAs7MzPDw88OTJE0WHphC1atXCw4cPxeXEiROKDumLSE1NhbOzMxYvXpzn9lmzZuH333/HsmXLcObMGejo6MDDwwNv3rz5wpF+GR9rDwDw9PSUu1Y2btz4BSP8co4ePYrBgwfj9OnTOHjwIDIzM9G2bVukpqaKZX7++Wf8/fff2Lp1K44ePYoHDx6ga9euCoy6ZBSmLQCgX79+ctfGrFmzFBRxyapSpQpmzJiB8+fP49y5c3B3d0fnzp3x33//ASg/1wXw8bYASsF1IVCp06hRI2Hw4MHi66ysLMHCwkIIDg5WYFSKMXHiRMHZ2VnRYSgcAGHHjh3i6+zsbMHMzEyYPXu2uC4pKUmQSqXCxo0bFRDhl/VhewiCIPTu3Vvo3LmzQuJRtCdPnggAhKNHjwqC8O5aUFdXF7Zu3SqWiYmJEQAIp06dUlSYX8SHbSEIguDm5iYMGzZMcUEpmJGRkbBixYpyfV3kyGkLQSgd1wV7wkqZjIwMnD9/Hq1btxbXqaiooHXr1jh16pQCI1OcuLg4WFhYoHr16vDx8cHdu3cVHZLC3b59G48ePZK7TgwMDNC4ceNye50AwJEjR1CpUiU4ODhg4MCBeP78uaJD+iJkMhkAwNjYGABw/vx5ZGZmyl0fNWrUQNWqVcv89fFhW+RYv349TExMULt2bQQFBSEtLU0R4X1RWVlZ2LRpE1JTU9GkSZNyfV182BY5FH1d8AHepcyzZ8+QlZUFU1NTufWmpqa4fv26gqJSnMaNGyM0NBQODg54+PAhJk+ejGbNmuHq1avQ09NTdHgK8+jRIwDI8zrJ2VbeeHp6omvXrqhWrRri4+Px66+/wsvLC6dOnYKqqqqiwysx2dnZGD58OFxdXVG7dm0A764PDQ0NGBoaypUt69dHXm0BAN999x2srKxgYWGBy5cvY8yYMYiNjcX27dsVGG3JuXLlCpo0aYI3b95AV1cXO3bsQM2aNREdHV3urov82gIoHdcFkzAq1by8vMSf69Spg8aNG8PKygpbtmyBv7+/AiOj0qZnz57iz05OTqhTpw5sbGxw5MgRtGrVSoGRlazBgwfj6tWr5WauZEHya4v+/fuLPzs5OcHc3BytWrVCfHw8bGxsvnSYJc7BwQHR0dGQyWTYtm0bevfujaNHjyo6LIXIry1q1qxZKq4LDkeWMiYmJlBVVc31bZXHjx/DzMxMQVGVHoaGhrC3t8fNmzcVHYpC5VwLvE7yV716dZiYmJTpa2XIkCHYs2cPIiIiUKVKFXG9mZkZMjIykJSUJFe+LF8f+bVFXho3bgwAZfba0NDQgK2tLerXr4/g4GA4Oztj4cKF5fK6yK8t8qKI64JJWCmjoaGB+vXr4/Dhw+K67OxsHD58WG4cu7xKSUlBfHw8zM3NFR2KQlWrVg1mZmZy10lycjLOnDnD6+T/3bt3D8+fPy+T14ogCBgyZAh27NiBf//9F9WqVZPbXr9+fairq8tdH7Gxsbh7926Zuz4+1hZ5iY6OBoAyeW3kJTs7G+np6eXqushPTlvkRSHXhUK/FkB52rRpkyCVSoXQ0FDh2rVrQv/+/QVDQ0Ph0aNHig7tiwsMDBSOHDki3L59W4iMjBRat24tmJiYCE+ePFF0aCXu1atXwsWLF4WLFy8KAIR58+YJFy9eFO7cuSMIgiDMmDFDMDQ0FHbt2iVcvnxZ6Ny5s1CtWjXh9evXCo68ZBTUHq9evRJGjhwpnDp1Srh9+7Zw6NAhoV69eoKdnZ3w5s0bRYde7AYOHCgYGBgIR44cER4+fCguaWlpYpmffvpJqFq1qvDvv/8K586dE5o0aSI0adJEgVGXjI+1xc2bN4UpU6YI586dE27fvi3s2rVLqF69utC8eXMFR14yfvnlF+Ho0aPC7du3hcuXLwu//PKLIJFIhAMHDgiCUH6uC0EouC1Ky3XBJKyUWrRokVC1alVBQ0NDaNSokXD69GlFh6QQPXr0EMzNzQUNDQ2hcuXKQo8ePYSbN28qOqwvIiIiQgCQa+ndu7cgCO9uUzF+/HjB1NRUkEqlQqtWrYTY2FjFBl2CCmqPtLQ0oW3btkLFihUFdXV1wcrKSujXr1+Z/Y9LXu0AQFi9erVY5vXr18KgQYMEIyMjQVtbW/jmm2+Ehw8fKi7oEvKxtrh7967QvHlzwdjYWJBKpYKtra0watQoQSaTKTbwEtK3b1/ByspK0NDQECpWrCi0atVKTMAEofxcF4JQcFuUlutCIgiC8OX63YiIiIgI4JwwIiIiIoVgEkZERESkAEzCiIiIiBSASRgRERGRAjAJIyIiIlIAJmFERERECsAkjIiIiEgBmIQRERERKQCTMCIiJZOQkACJRCI+646IlBOTMCIiIiIFYBJGRPSJsrOzMWvWLNja2kIqlaJq1aqYNm0aAODKlStwd3eHlpYWKlSogP79+yMlJUXct0WLFhg+fLhcfV26dIGfn5/42traGtOnT0ffvn2hp6eHqlWrYvny5eL2atWqAQBcXFwgkUjQokWLEjtXIio5TMKIiD5RUFAQZsyYgfHjx+PatWvYsGEDTE1NkZqaCg8PDxgZGSEqKgpbt27FoUOHMGTIkE8+xty5c9GgQQNcvHgRgwYNwsCBAxEbGwsAOHv2LADg0KFDePjwIbZv316s50dEX4aaogMgIlImr169wsKFCxESEoLevXsDAGxsbPD111/jzz//xJs3b7B27Vro6OgAAEJCQtCxY0fMnDkTpqamhT5Ou3btMGjQIADAmDFjMH/+fERERMDBwQEVK1YEAFSoUAFmZmbFfIZE9KWwJ4yI6BPExMQgPT0drVq1ynObs7OzmIABgKurK7Kzs8VerMKqU6eO+LNEIoGZmRmePHlS9MCJqNRhEkZE9Am0tLQ+a38VFRUIgiC3LjMzM1c5dXV1udcSiQTZ2dmfdWwiKl2YhBERfQI7OztoaWnh8OHDubY5Ojri0qVLSE1NFddFRkZCRUUFDg4OAICKFSvi4cOH4vasrCxcvXr1k2LQ0NAQ9yUi5cUkjIjoE2hqamLMmDEYPXo01q5di/j4eJw+fRorV66Ej48PNDU10bt3b1y9ehUREREYOnQofH19xflg7u7u2Lt3L/bu3Yvr169j4MCBSEpK+qQYKlWqBC0tLezfvx+PHz+GTCYrgTMlopLGJIyI6BONHz8egYGBmDBhAhwdHdGjRw88efIE2traCA8Px4sXL9CwYUN0794drVq1QkhIiLhv37590bt3b/zwww9wc3ND9erV0bJly086vpqaGn7//Xf88ccfsLCwQOfOnYv7FInoC5AIH05OICIiIqISx54wIiIiIgVgEkZERESkAEzCiIiIiBSASRgRERGRAjAJIyIiIlIAJmFERERECsAkjIiIiEgBmIQRERERKQCTMCIiIiIFYBJGREREpABMwoiIiIgUgEkYERERkQL8H3l1kpeZtTheAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Проверка распределения классов в столбце company\n", "class_distribution = df['company'].value_counts()\n", "print(\"Распределение классов в company:\")\n", "print(class_distribution)\n", "\n", "# Визуализация распределения классов\n", "sns.countplot(y='company', data=df, order=class_distribution.index)\n", "plt.title('Распределение классов в company')\n", "plt.show()\n", "\n", "# Проверка сбалансированности для каждой выборки\n", "def check_balance(df, title):\n", " class_distribution = df['company'].value_counts()\n", " print(f\"Распределение классов в {title}:\")\n", " print(class_distribution)\n", " sns.countplot(y='company', data=df, order=class_distribution.index)\n", " plt.title(f'Распределение классов в {title}')\n", " plt.show()\n", "\n", "# Разделение данных на обучающую, контрольную и тестовую выборки\n", "from sklearn.model_selection import train_test_split\n", "\n", "train_df, temp_df = train_test_split(df, test_size=0.3, random_state=42)\n", "val_df, test_df = train_test_split(temp_df, test_size=0.5, random_state=42)\n", "\n", "# Проверка сбалансированности для обучающей, контрольной и тестовой выборок\n", "check_balance(train_df, 'Обучающей выборке')\n", "check_balance(val_df, 'Контрольной выборке')\n", "check_balance(test_df, 'Тестовой выборке')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Данные по столбцу company являются несбалансированными. Некоторые компании, такие как Vivo, Realme, и Samsung, имеют значительно больше устройств, чем другие, такие как LG, Gionee, и Itel." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки до upsampling: 671\n", "Размер контрольной выборки: 288\n", "Размер тестовой выборки: 411\n", "\n", "Распределение классов в всем датасете:\n", "Класс Vivo: 186 (13.58%)\n", "Класс Realme: 186 (13.58%)\n", "Класс Samsung: 181 (13.21%)\n", "Класс Motorola: 127 (9.27%)\n", "Класс Xiaomi: 90 (6.57%)\n", "Класс Honor: 88 (6.42%)\n", "Класс Poco: 75 (5.47%)\n", "Класс OnePlus: 75 (5.47%)\n", "Класс Huawei: 62 (4.53%)\n", "Класс iQOO: 57 (4.16%)\n", "Класс OPPO: 38 (2.77%)\n", "Класс Oppo: 27 (1.97%)\n", "Класс TCL: 26 (1.90%)\n", "Класс Google: 23 (1.68%)\n", "Класс Asus: 21 (1.53%)\n", "Класс POCO: 19 (1.39%)\n", "Класс Lava: 19 (1.39%)\n", "Класс Nothing: 15 (1.09%)\n", "Класс Lenovo: 14 (1.02%)\n", "Класс Tecno: 13 (0.95%)\n", "Класс itel: 12 (0.88%)\n", "Класс LG: 6 (0.44%)\n", "Класс Gionee: 5 (0.36%)\n", "Класс Itel: 3 (0.22%)\n", "Класс IQOO: 1 (0.07%)\n", "Класс Coolpad: 1 (0.07%)\n", "\n", "Распределение классов в Обучающей выборке до upsampling:\n", "Класс Vivo: 94 (14.01%)\n", "Класс Samsung: 89 (13.26%)\n", "Класс Realme: 82 (12.22%)\n", "Класс Motorola: 66 (9.84%)\n", "Класс Xiaomi: 46 (6.86%)\n", "Класс Honor: 40 (5.96%)\n", "Класс OnePlus: 40 (5.96%)\n", "Класс Poco: 37 (5.51%)\n", "Класс Huawei: 35 (5.22%)\n", "Класс iQOO: 28 (4.17%)\n", "Класс OPPO: 15 (2.24%)\n", "Класс Oppo: 14 (2.09%)\n", "Класс Lava: 12 (1.79%)\n", "Класс Google: 12 (1.79%)\n", "Класс TCL: 10 (1.49%)\n", "Класс Lenovo: 9 (1.34%)\n", "Класс POCO: 9 (1.34%)\n", "Класс Asus: 8 (1.19%)\n", "Класс itel: 7 (1.04%)\n", "Класс Nothing: 5 (0.75%)\n", "Класс Tecno: 5 (0.75%)\n", "Класс LG: 3 (0.45%)\n", "Класс Gionee: 3 (0.45%)\n", "Класс Coolpad: 1 (0.15%)\n", "Класс Itel: 1 (0.15%)\n", "Размер обучающей выборки после upsampling: 2350\n", "\n", "Распределение классов в Обучающей выборке после upsampling:\n", "Класс Realme: 94 (4.00%)\n", "Класс Motorola: 94 (4.00%)\n", "Класс Vivo: 94 (4.00%)\n", "Класс Lava: 94 (4.00%)\n", "Класс Lenovo: 94 (4.00%)\n", "Класс TCL: 94 (4.00%)\n", "Класс OPPO: 94 (4.00%)\n", "Класс Honor: 94 (4.00%)\n", "Класс Poco: 94 (4.00%)\n", "Класс itel: 94 (4.00%)\n", "Класс Oppo: 94 (4.00%)\n", "Класс iQOO: 94 (4.00%)\n", "Класс Samsung: 94 (4.00%)\n", "Класс Xiaomi: 94 (4.00%)\n", "Класс LG: 94 (4.00%)\n", "Класс Huawei: 94 (4.00%)\n", "Класс OnePlus: 94 (4.00%)\n", "Класс Google: 94 (4.00%)\n", "Класс Tecno: 94 (4.00%)\n", "Класс Asus: 94 (4.00%)\n", "Класс Gionee: 94 (4.00%)\n", "Класс POCO: 94 (4.00%)\n", "Класс Nothing: 94 (4.00%)\n", "Класс Coolpad: 94 (4.00%)\n", "Класс Itel: 94 (4.00%)\n", "\n", "Распределение классов в Контрольной выборке:\n", "Класс Vivo: 44 (15.28%)\n", "Класс Realme: 43 (14.93%)\n", "Класс Samsung: 39 (13.54%)\n", "Класс Motorola: 23 (7.99%)\n", "Класс Xiaomi: 20 (6.94%)\n", "Класс Honor: 19 (6.60%)\n", "Класс OnePlus: 16 (5.56%)\n", "Класс Poco: 15 (5.21%)\n", "Класс Huawei: 11 (3.82%)\n", "Класс iQOO: 9 (3.12%)\n", "Класс Oppo: 7 (2.43%)\n", "Класс POCO: 5 (1.74%)\n", "Класс OPPO: 5 (1.74%)\n", "Класс Google: 4 (1.39%)\n", "Класс Asus: 4 (1.39%)\n", "Класс TCL: 4 (1.39%)\n", "Класс Lava: 4 (1.39%)\n", "Класс itel: 3 (1.04%)\n", "Класс Nothing: 3 (1.04%)\n", "Класс Tecno: 3 (1.04%)\n", "Класс Lenovo: 3 (1.04%)\n", "Класс LG: 2 (0.69%)\n", "Класс Gionee: 1 (0.35%)\n", "Класс IQOO: 1 (0.35%)\n", "\n", "Распределение классов в Тестовой выборке:\n", "Класс Realme: 61 (14.84%)\n", "Класс Samsung: 53 (12.90%)\n", "Класс Vivo: 48 (11.68%)\n", "Класс Motorola: 38 (9.25%)\n", "Класс Honor: 29 (7.06%)\n", "Класс Xiaomi: 24 (5.84%)\n", "Класс Poco: 23 (5.60%)\n", "Класс iQOO: 20 (4.87%)\n", "Класс OnePlus: 19 (4.62%)\n", "Класс OPPO: 18 (4.38%)\n", "Класс Huawei: 16 (3.89%)\n", "Класс TCL: 12 (2.92%)\n", "Класс Asus: 9 (2.19%)\n", "Класс Google: 7 (1.70%)\n", "Класс Nothing: 7 (1.70%)\n", "Класс Oppo: 6 (1.46%)\n", "Класс POCO: 5 (1.22%)\n", "Класс Tecno: 5 (1.22%)\n", "Класс Lava: 3 (0.73%)\n", "Класс Lenovo: 2 (0.49%)\n", "Класс itel: 2 (0.49%)\n", "Класс Itel: 2 (0.49%)\n", "Класс LG: 1 (0.24%)\n", "Класс Gionee: 1 (0.24%)\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки до upsampling:\", len(train_df))\n", "print(\"Размер контрольной выборки:\", len(val_df))\n", "print(\"Размер тестовой выборки:\", len(test_df))\n", "\n", "# Функция для проверки балансировки данных\n", "def check_balance(df, title):\n", " class_distribution = df['company'].value_counts()\n", " print(f\"\\nРаспределение классов в {title}:\")\n", " for cls, count in class_distribution.items():\n", " print(f\"Класс {cls}: {count} ({count / len(df) * 100:.2f}%)\")\n", "\n", "# Проверка балансировки для всего датасета\n", "check_balance(df, 'всем датасете')\n", "\n", "# Проверка балансировки для обучающей выборки до upsampling\n", "check_balance(train_df, 'Обучающей выборке до upsampling')\n", "\n", "# Применение upsampling к обучающей выборке\n", "X_train = train_df.drop('company', axis=1) # Отделяем признаки от целевой переменной\n", "y_train = train_df['company'] # Целевая переменная\n", "\n", "# Инициализация RandomOverSampler\n", "ros = RandomOverSampler(random_state=42)\n", "\n", "# Применение upsampling\n", "X_train_resampled, y_train_resampled = ros.fit_resample(X_train, y_train)\n", "\n", "# Создание нового DataFrame с балансированными данными\n", "train_df_resampled = pd.concat([X_train_resampled, y_train_resampled], axis=1)\n", "\n", "# Вывод размеров выборок после upsampling\n", "print(\"Размер обучающей выборки после upsampling:\", len(train_df_resampled))\n", "\n", "# Проверка балансировки для обучающей выборки после upsampling\n", "check_balance(train_df_resampled, 'Обучающей выборке после upsampling')\n", "\n", "# Проверка балансировки для контрольной и тестовой выборок (они не должны измениться)\n", "check_balance(val_df, 'Контрольной выборке')\n", "check_balance(test_df, 'Тестовой выборке')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Данные были сбалансированы. Теперь можно перейти к конструированию признаков. Поставлены следующие задачи:\n", "1. Классифицировать мобильные устройства по ценовым категориям (например, бюджетные, средний класс, флагманы).\n", "2. Определить, какие характеристики мобильных устройств наиболее сильно влияют на их рейтинг." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "\n", "# Определение категориальных признаков\n", "categorical_features = [\n", " 'Rating', 'Ram',\n", " 'Battery', 'Display', 'Camera', 'External_Memory', 'Android_version',\n", " 'Price', 'company', 'Inbuilt_memory', 'fast_charging',\n", " 'Screen_resolution', 'Processor'\n", "]\n", "\n", "# Применение one-hot encoding к обучающей выборке\n", "train_df_resampled_encoded = pd.get_dummies(train_df_resampled, columns=categorical_features)\n", "\n", "# Применение one-hot encoding к контрольной выборке\n", "val_df_encoded = pd.get_dummies(val_df, columns=categorical_features)\n", "\n", "# Применение one-hot encoding к тестовой выборке\n", "test_df_encoded = pd.get_dummies(test_df, columns=categorical_features)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Дискретизация числовых признаков" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки после балансировки: (5600, 22)\n", "Размер контрольной выборки: (288, 22)\n", "Размер тестовой выборки: (411, 22)\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "import re\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Извлечение числовых значений из столбца Battery\n", "df['Battery'] = df['Battery'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "df['Ram'] = df['Ram'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "df['Camera'] = df['Camera'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "\n", "# Удаление запятых из столбца Price и преобразование в числовой формат\n", "df['Price'] = df['Price'].str.replace(',', '').astype(float)\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Применение upsampling к обучающей выборке (если это необходимо)\n", "X_train = train_df.drop('Price', axis=1) # Отделяем признаки от целевой переменной\n", "y_train = train_df['Price'] # Целевая переменная\n", "\n", "# Инициализация RandomOverSampler\n", "ros = RandomOverSampler(random_state=42)\n", "\n", "# Применение upsampling\n", "X_train_resampled, y_train_resampled = ros.fit_resample(X_train, y_train)\n", "\n", "# Создание нового DataFrame с балансированными данными\n", "train_df_resampled = pd.concat([X_train_resampled, y_train_resampled], axis=1)\n", "\n", "# Определение числовых признаков для дискретизации\n", "numerical_features = ['Spec_score', 'Battery', 'Ram', 'Camera' ]\n", "\n", "# Функция для дискретизации числовых признаков\n", "def discretize_features(df, features, bins=5, labels=False):\n", " for feature in features:\n", " try:\n", " # Заполнение NaN значений, если они есть\n", " df[feature] = df[feature].fillna(df[feature].median())\n", " df[f'{feature}_bin'] = pd.cut(df[feature], bins=bins, labels=labels)\n", " except Exception as e:\n", " print(f\"Ошибка при дискретизации признака {feature}: {e}\")\n", " return df\n", "\n", "# Применение дискретизации к обучающей, контрольной и тестовой выборкам\n", "train_df_resampled = discretize_features(train_df_resampled, numerical_features)\n", "val_df = discretize_features(val_df, numerical_features)\n", "test_df = discretize_features(test_df, numerical_features)\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки после балансировки:\", train_df_resampled.shape)\n", "print(\"Размер контрольной выборки:\", val_df.shape)\n", "print(\"Размер тестовой выборки:\", test_df.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ручной синтез. Создание новых признаков на основе экспертных знаний и логики предметной области." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки после балансировки: (5600, 19)\n", "Размер контрольной выборки: (288, 19)\n", "Размер тестовой выборки: (411, 19)\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Преобразование столбца Battery в числовой формат\n", "df['Battery'] = df['Battery'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "\n", "# Преобразование столбцов Camera и Display в числовой формат\n", "df['Camera'] = pd.to_numeric(df['Camera'], errors='coerce')\n", "df['Display'] = pd.to_numeric(df['Display'], errors='coerce')\n", "\n", "# Удаление запятых из столбца Price и преобразование в числовой формат\n", "df['Price'] = df['Price'].str.replace(',', '').astype(float)\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Применение upsampling к обучающей выборке (если это необходимо)\n", "X_train = train_df.drop('Price', axis=1) # Отделяем признаки от целевой переменной\n", "y_train = train_df['Price'] # Целевая переменная\n", "\n", "# Инициализация RandomOverSampler\n", "ros = RandomOverSampler(random_state=42)\n", "\n", "# Применение upsampling\n", "X_train_resampled, y_train_resampled = ros.fit_resample(X_train, y_train)\n", "\n", "# Создание нового DataFrame с балансированными данными\n", "train_df_resampled = pd.concat([X_train_resampled, y_train_resampled], axis=1)\n", "\n", "# Создание нового признака \"Camera_to_Display_Ratio\" на основе признаков \"Camera\" и \"Display\"\n", "train_df_resampled['Camera_to_Display_Ratio'] = train_df_resampled['Camera'] / train_df_resampled['Display']\n", "val_df['Camera_to_Display_Ratio'] = val_df['Camera'] / val_df['Display']\n", "test_df['Camera_to_Display_Ratio'] = test_df['Camera'] / test_df['Display']\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки после балансировки:\", train_df_resampled.shape)\n", "print(\"Размер контрольной выборки:\", val_df.shape)\n", "print(\"Размер тестовой выборки:\", test_df.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Масштабирование признаков - это процесс преобразования числовых признаков таким образом, чтобы они имели одинаковый масштаб. Это важно для многих алгоритмов машинного обучения, которые чувствительны к масштабу признаков, таких как линейная регрессия, метод опорных векторов (SVM) и нейронные сети." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки после балансировки: (5600, 19)\n", "Размер контрольной выборки: (288, 19)\n", "Размер тестовой выборки: (411, 19)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\sklearn\\utils\\extmath.py:1137: RuntimeWarning: invalid value encountered in divide\n", " updated_mean = (last_sum + new_sum) / updated_sample_count\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\sklearn\\utils\\extmath.py:1142: RuntimeWarning: invalid value encountered in divide\n", " T = new_sum / new_sample_count\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\sklearn\\utils\\extmath.py:1162: RuntimeWarning: invalid value encountered in divide\n", " new_unnormalized_variance -= correction**2 / new_sample_count\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "from sklearn.preprocessing import StandardScaler\n", "import re\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Преобразование столбца Battery в числовой формат\n", "df['Battery'] = df['Battery'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "\n", "# Преобразование столбцов Camera и Display в числовой формат\n", "df['Camera'] = pd.to_numeric(df['Camera'], errors='coerce')\n", "df['Display'] = pd.to_numeric(df['Display'], errors='coerce')\n", "\n", "# Удаление запятых из столбца Price и преобразование в числовой формат\n", "df['Price'] = df['Price'].str.replace(',', '').astype(float)\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Применение upsampling к обучающей выборке (если это необходимо)\n", "X_train = train_df.drop('Price', axis=1) # Отделяем признаки от целевой переменной\n", "y_train = train_df['Price'] # Целевая переменная\n", "\n", "# Инициализация RandomOverSampler\n", "ros = RandomOverSampler(random_state=42)\n", "\n", "# Применение upsampling\n", "X_train_resampled, y_train_resampled = ros.fit_resample(X_train, y_train)\n", "\n", "# Создание нового DataFrame с балансированными данными\n", "train_df_resampled = pd.concat([X_train_resampled, y_train_resampled], axis=1)\n", "\n", "# Создание нового признака \"Camera_to_Display_Ratio\" на основе признаков \"Camera\" и \"Display\"\n", "train_df_resampled['Camera_to_Display_Ratio'] = train_df_resampled['Camera'] / train_df_resampled['Display']\n", "val_df['Camera_to_Display_Ratio'] = val_df['Camera'] / val_df['Display']\n", "test_df['Camera_to_Display_Ratio'] = test_df['Camera'] / test_df['Display']\n", "\n", "# Определение числовых признаков для масштабирования\n", "numerical_features_to_scale = ['Spec_score', 'No_of_sim', 'Ram', 'Battery', 'Display', 'Camera', 'Inbuilt_memory', 'Screen_resolution', 'Camera_to_Display_Ratio']\n", "\n", "# Удаление строковых значений из числовых признаков\n", "for feature in numerical_features_to_scale:\n", " train_df_resampled[feature] = pd.to_numeric(train_df_resampled[feature], errors='coerce')\n", " val_df[feature] = pd.to_numeric(val_df[feature], errors='coerce')\n", " test_df[feature] = pd.to_numeric(test_df[feature], errors='coerce')\n", "\n", "# Инициализация StandardScaler\n", "scaler = StandardScaler()\n", "\n", "# Масштабирование числовых признаков в обучающей выборке\n", "train_df_resampled[numerical_features_to_scale] = scaler.fit_transform(train_df_resampled[numerical_features_to_scale])\n", "\n", "# Масштабирование числовых признаков в контрольной и тестовой выборках\n", "val_df[numerical_features_to_scale] = scaler.transform(val_df[numerical_features_to_scale])\n", "test_df[numerical_features_to_scale] = scaler.transform(test_df[numerical_features_to_scale])\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки после балансировки:\", train_df_resampled.shape)\n", "print(\"Размер контрольной выборки:\", val_df.shape)\n", "print(\"Размер тестовой выборки:\", test_df.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Конструирование признаков с применением фреймворка Featuretools" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:1733: UserWarning: index id not found in dataframe, creating new integer column\n", " warnings.warn(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\type_sys\\utils.py:33: UserWarning: Could not infer format, so each element will be parsed individually, falling back to `dateutil`. To ensure parsing is consistent and as-expected, please specify a format.\n", " pd.to_datetime(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", " warnings.warn(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Обучающая выборка после конструирования признаков:\n", " Unnamed: 0 Rating Spec_score No_of_sim Ram \\\n", "id \n", "0 305 4.70 86 Dual Sim, 3G, 4G, 5G, VoLTE, 12 GB RAM \n", "1 941 4.45 71 Dual Sim, 3G, 4G, VoLTE, 4 GB RAM \n", "2 800 4.20 68 Dual Sim, 3G, 4G, VoLTE, 4 GB RAM \n", "3 97 4.25 69 Dual Sim, 3G, 4G, VoLTE, 4 GB RAM \n", "4 1339 4.30 74 Dual Sim, 3G, 4G, VoLTE, 6 GB RAM \n", "\n", " Battery External_Memory Android_version Price \\\n", "id \n", "0 5000 Android v12 NaN 30999.0 \n", "1 5000 Memory Card Supported, upto 1 TB 12 6999.0 \n", "2 5000 Memory Card Supported 12 8999.0 \n", "3 5000 Memory Card Supported 12 9999.0 \n", "4 5000 Memory Card Supported, upto 256 GB 12 8499.0 \n", "\n", " company Inbuilt_memory fast_charging \\\n", "id \n", "0 Realme 256 GB inbuilt 65W Fast Charging \n", "1 Motorola 64 GB inbuilt 10W Fast Charging \n", "2 Vivo 64 GB inbuilt 10W Fast Charging \n", "3 Vivo 128 GB inbuilt 10W Fast Charging \n", "4 Lava 128 GB inbuilt NaN \n", "\n", " Screen_resolution Processor \n", "id \n", "0 1080 x 2400 px Octa Core \n", "1 720 x 1600 px Octa Core \n", "2 720 x 1600 px Display with Water Drop Notch Octa Core \n", "3 720 x 1600 px Display with Water Drop Notch Octa Core \n", "4 1600 x 720 px Octa Core \n", "Контрольная выборка после конструирования признаков:\n", " Unnamed: 0 Rating Spec_score No_of_sim Ram \\\n", "id \n", "1028 NaN NaN NaN \n", "825 NaN NaN NaN \n", "900 NaN NaN NaN \n", "702 NaN NaN NaN \n", "230 1050 4.05 90 Dual Sim, 3G, 4G, 5G, VoLTE, 8 GB RAM \n", "\n", " Battery External_Memory Android_version Price company \\\n", "id \n", "1028 NaN NaN NaN NaN \n", "825 NaN NaN NaN NaN \n", "900 NaN NaN NaN NaN \n", "702 NaN NaN NaN NaN \n", "230 4500 Android v12 NaN 62990.0 Motorola \n", "\n", " Inbuilt_memory fast_charging Screen_resolution Processor \n", "id \n", "1028 NaN NaN NaN NaN \n", "825 NaN NaN NaN NaN \n", "900 NaN NaN NaN NaN \n", "702 NaN NaN NaN NaN \n", "230 128 GB inbuilt 125W Fast Charging 1080 x 2400 px Octa Core \n", "Тестовая выборка после конструирования признаков:\n", " Unnamed: 0 Rating Spec_score No_of_sim \\\n", "id \n", "427 187 4.40 91 Dual Sim, 3G, 4G, 5G, VoLTE, \n", "1088 NaN NaN \n", "668 592 4.45 91 Dual Sim, 3G, 4G, 5G, VoLTE, \n", "572 1130 4.60 75 Dual Sim, 3G, 4G, VoLTE, \n", "115 117 4.60 72 Dual Sim, 3G, 4G, VoLTE, \n", "\n", " Ram Battery External_Memory Android_version \\\n", "id \n", "427 12 GB RAM 5000 Memory Card Not Supported 14 \n", "1088 NaN NaN NaN \n", "668 12 GB RAM 4500 Android v12 NaN \n", "572 6 GB RAM 5000 Memory Card Supported, upto 1 TB 13 \n", "115 4 GB RAM 5000 Memory Card Supported, upto 1 TB 12 \n", "\n", " Price company Inbuilt_memory fast_charging \\\n", "id \n", "427 63999.0 Vivo 256 GB inbuilt 120W Fast Charging \n", "1088 NaN NaN NaN NaN \n", "668 54990.0 Honor 256 GB inbuilt 100W Fast Charging \n", "572 8499.0 Xiaomi 128 GB inbuilt 18W Fast Charging \n", "115 11580.0 Vivo 64 GB inbuilt 18W Fast Charging \n", "\n", " Screen_resolution Processor \n", "id \n", "427 1260 x 2800 px Octa Core \n", "1088 NaN NaN \n", "668 1200 x 2652 px Octa Core \n", "572 720 x 1600 px Octa Core \n", "115 720 x 1612 px Display with Water Drop Notch Octa Core \n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "import featuretools as ft\n", "import re\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Преобразование столбца Battery в числовой формат\n", "df['Battery'] = df['Battery'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "\n", "# Преобразование столбцов Camera и Display в числовой формат\n", "df['Camera'] = pd.to_numeric(df['Camera'], errors='coerce')\n", "df['Display'] = pd.to_numeric(df['Display'], errors='coerce')\n", "\n", "# Удаление запятых из столбца Price и преобразование в числовой формат\n", "df['Price'] = df['Price'].str.replace(',', '').astype(float)\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Создание нового признака \"Camera_to_Display_Ratio\" на основе признаков \"Camera\" и \"Display\"\n", "train_df['Camera_to_Display_Ratio'] = train_df['Camera'] / train_df['Display']\n", "val_df['Camera_to_Display_Ratio'] = val_df['Camera'] / val_df['Display']\n", "test_df['Camera_to_Display_Ratio'] = test_df['Camera'] / test_df['Display']\n", "\n", "# Определение сущностей\n", "es = ft.EntitySet(id='mobile_data')\n", "es = es.add_dataframe(dataframe_name='train', dataframe=train_df, index='id')\n", "\n", "# Генерация признаков\n", "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='train', max_depth=2)\n", "\n", "# Преобразование признаков для контрольной и тестовой выборок\n", "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_df.index)\n", "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_df.index)\n", "\n", "# Вывод первых нескольких строк для проверки\n", "print(\"Обучающая выборка после конструирования признаков:\")\n", "print(feature_matrix.head())\n", "print(\"Контрольная выборка после конструирования признаков:\")\n", "print(val_feature_matrix.head())\n", "print(\"Тестовая выборка после конструирования признаков:\")\n", "print(test_feature_matrix.head())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Оценка качества каждого набора признаков\n", "\n", "Предсказательная способность Метрики: RMSE, MAE, R²\n", "\n", "Методы: Обучение модели на обучающей выборке и оценка на контрольной и тестовой выборках.\n", "\n", "Скорость вычисления Методы: Измерение времени выполнения генерации признаков и обучения модели.\n", "\n", "Надежность Методы: Кросс-валидация, анализ чувствительности модели к изменениям в данных.\n", "\n", "Корреляция Методы: Анализ корреляционной матрицы признаков, удаление мультиколлинеарных признаков.\n", "\n", "Цельность Методы: Проверка логической связи между признаками и целевой переменной, интерпретация результатов модели." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:1733: UserWarning: index id not found in dataframe, creating new integer column\n", " warnings.warn(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\synthesis\\deep_feature_synthesis.py:169: UserWarning: Only one dataframe in entityset, changing max_depth to 1 since deeper features cannot be created\n", " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки: 671\n", "Размер контрольной выборки: 288\n", "Размер тестовой выборки: 411\n", "Feature Importance:\n", " feature importance\n", "4 Price 0.999443\n", "2 Spec_score 0.000227\n", "3 Battery 0.000146\n", "0 Unnamed: 0 0.000146\n", "1 Rating 0.000039\n" ] } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import RandomOverSampler\n", "import featuretools as ft\n", "from sklearn.ensemble import RandomForestRegressor\n", "import re\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Преобразование столбца Battery в числовой формат\n", "df['Battery'] = df['Battery'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "\n", "# Преобразование столбца Display в числовой формат\n", "df['Camera'] = pd.to_numeric(df['Camera'], errors='coerce')\n", "df['Display'] = pd.to_numeric(df['Display'], errors='coerce')\n", "df['Inbuilt_memory'] = pd.to_numeric(df['Inbuilt_memory'], errors='coerce')\n", "df['fast_charging'] = pd.to_numeric(df['fast_charging'], errors='coerce')\n", "\n", "# Удаление запятых из столбца Price и преобразование в числовой формат\n", "df['Price'] = df['Price'].str.replace(',', '').astype(float)\n", "\n", "# Удаление столбцов с текстовыми значениями, которые не могут быть преобразованы в числа\n", "df = df.drop(columns=['Name', 'company', 'Android_version', 'Processor_name', 'External_Memory', 'No_of_sim', 'Ram', 'Screen_resolution', 'Processor' ])\n", "\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки:\", len(train_df))\n", "print(\"Размер контрольной выборки:\", len(val_df))\n", "print(\"Размер тестовой выборки:\", len(test_df))\n", "\n", "# Применение upsampling к обучающей выборке (если это необходимо)\n", "X_train = train_df.drop('Price', axis=1) # Отделяем признаки от целевой переменной\n", "y_train = train_df['Price'] # Целевая переменная\n", "\n", "# Инициализация RandomOverSampler\n", "ros = RandomOverSampler(random_state=42)\n", "\n", "# Применение upsampling\n", "X_train_resampled, y_train_resampled = ros.fit_resample(X_train, y_train)\n", "\n", "# Создание нового DataFrame с балансированными данными\n", "train_df_resampled = pd.concat([X_train_resampled, y_train_resampled], axis=1)\n", "\n", "# Определение сущностей\n", "es = ft.EntitySet(id='mobile_data')\n", "es = es.add_dataframe(dataframe_name='mobile', dataframe=train_df_resampled, index='id')\n", "\n", "# Генерация признаков\n", "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='mobile', max_depth=2)\n", "\n", "# Преобразование признаков для контрольной и тестовой выборок\n", "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_df.index)\n", "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_df.index)\n", "\n", "# Оценка важности признаков\n", "X = feature_matrix\n", "y = train_df_resampled['Price']\n", "\n", "# Разделение данных на обучающую и тестовую выборки\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n", "\n", "# Обучение модели\n", "model = RandomForestRegressor(n_estimators=100, random_state=42)\n", "model.fit(X_train, y_train)\n", "\n", "# Получение важности признаков\n", "importances = model.feature_importances_\n", "feature_names = feature_matrix.columns\n", "\n", "# Сортировка признаков по важности\n", "feature_importance = pd.DataFrame({'feature': feature_names, 'importance': importances})\n", "feature_importance = feature_importance.sort_values(by='importance', ascending=False)\n", "\n", "print(\"Feature Importance:\")\n", "print(feature_importance)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Размер обучающей выборки: 671\n", "Размер контрольной выборки: 288\n", "Размер тестовой выборки: 411\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\entityset\\entityset.py:1733: UserWarning: index id not found in dataframe, creating new integer column\n", " warnings.warn(\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\featuretools\\computational_backends\\feature_set_calculator.py:143: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", " df = pd.concat([df, default_df], sort=True)\n", "d:\\ULSTU\\AIM2\\AIM-PIbd-32-Puchkina-A-A\\aimenv\\Lib\\site-packages\\woodwork\\logical_types.py:841: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", " series = series.replace(ww.config.get_option(\"nan_values\"), np.nan)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 53834536.21488374\n", "R2 Score: 0.9445638071244045\n", "Cross-validated Mean Squared Error: 311290473.964474\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA40AAAIjCAYAAACnNf4TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDwUlEQVR4nO3dd3RU1f7//9ckIRNIpaWAISGGqnQEA1IFQ5GiXhBESqRcpShy4QJSQxfhQxGJSIsFQUBFUUERQbwUQZqAEBBCESlKCxFJIDm/P/wxX8dkAwkhA+H5WGvWyuyzzz7vM5sseLHPOWOzLMsSAAAAAACZcHN1AQAAAACAOxehEQAAAABgRGgEAAAAABgRGgEAAAAARoRGAAAAAIARoREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGBEaAQA3HXi4+Nls9kyfQ0aNOi2HHPDhg0aOXKkzp8/f1vGvxXXPo8ffvjB1aVk28yZMxUfH+/qMgAAmfBwdQEAAGTXqFGjVLJkSae2Bx988LYca8OGDYqNjVWXLl0UEBBwW45xL5s5c6aKFCmiLl26uLoUAMA/EBoBAHetpk2bqnr16q4u45b88ccf8vb2dnUZLnPp0iUVKFDA1WUAAK6Dy1MBAHnWihUrVKdOHXl7e8vX11fNmzfXnj17nPr8+OOP6tKliyIiIuTl5aXg4GA999xzOnPmjKPPyJEjNWDAAElSyZIlHZfCHj58WIcPH5bNZsv00kqbzaaRI0c6jWOz2fTTTz/pmWeeUcGCBfXII484tr/33nuqVq2a8ufPr0KFCqldu3Y6duxYts69S5cu8vHx0dGjR/X444/Lx8dHxYsX1xtvvCFJ2rVrlxo2bChvb2+FhYXp/fffd9r/2iWv69at07///W8VLlxYfn5+6tSpk86dO5fheDNnztQDDzwgu92uYsWKqVevXhku5a1fv74efPBBbd26VXXr1lWBAgX0yiuvKDw8XHv27NG3337r+Gzr168vSTp79qz69++vChUqyMfHR35+fmratKl27tzpNPbatWtls9m0ePFijR07Vvfdd5+8vLz06KOP6ueff85Q7/fff69mzZqpYMGC8vb2VsWKFTVt2jSnPvv27dO//vUvFSpUSF5eXqpevbo+/fTTrE4FANz1WGkEANy1Lly4oN9//92prUiRIpKkd999V507d1Z0dLReffVVXbp0SXFxcXrkkUe0fft2hYeHS5JWrVqlQ4cOKSYmRsHBwdqzZ4/eeust7dmzR5s2bZLNZtOTTz6p/fv3a+HChZoyZYrjGEWLFtVvv/2W5brbtGmjUqVKady4cbIsS5I0duxYDRs2TG3btlW3bt3022+/6fXXX1fdunW1ffv2bF0Sm5aWpqZNm6pu3bqaOHGiFixYoN69e8vb21tDhgxRhw4d9OSTT+rNN99Up06dFBUVleFy3969eysgIEAjR45UQkKC4uLidOTIEUdIk/4Kw7GxsWrUqJFeeOEFR78tW7Zo/fr1ypcvn2O8M2fOqGnTpmrXrp2effZZBQUFqX79+urTp498fHw0ZMgQSVJQUJAk6dChQ1q2bJnatGmjkiVL6tSpU5o1a5bq1aunn376ScWKFXOqd8KECXJzc1P//v114cIFTZw4UR06dND333/v6LNq1So9/vjjCgkJ0UsvvaTg4GDt3btXn332mV566SVJ0p49e1S7dm0VL15cgwYNkre3txYvXqzWrVvrww8/1BNPPJHl+QCAu5YFAMBdZv78+ZakTF+WZVkXL160AgICrO7duzvtd/LkScvf39+p/dKlSxnGX7hwoSXJWrdunaPttddesyRZiYmJTn0TExMtSdb8+fMzjCPJGjFihOP9iBEjLElW+/btnfodPnzYcnd3t8aOHevUvmvXLsvDwyNDu+nz2LJli6Otc+fOliRr3LhxjrZz585Z+fPnt2w2m7Vo0SJH+759+zLUem3MatWqWampqY72iRMnWpKsTz75xLIsyzp9+rTl6elpPfbYY1ZaWpqj34wZMyxJ1rx58xxt9erVsyRZb775ZoZzeOCBB6x69eplaL98+bLTuJb112dut9utUaNGOdrWrFljSbLKlStnpaSkONqnTZtmSbJ27dplWZZlXb161SpZsqQVFhZmnTt3zmnc9PR0x8+PPvqoVaFCBevy5ctO22vVqmWVKlUqQ50AkJdxeSoA4K71xhtvaNWqVU4v6a+VpPPnz6t9+/b6/fffHS93d3fVrFlTa9ascYyRP39+x8+XL1/W77//rocffliStG3btttS9/PPP+/0/qOPPlJ6erratm3rVG9wcLBKlSrlVG9WdevWzfFzQECAypQpI29vb7Vt29bRXqZMGQUEBOjQoUMZ9u/Ro4fTSuEL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oREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGBEaAQAAAAAGBEaAQAAAABGhEYAAAAAgBGhEQAAAABgRGgEAAAAABgRGgEAAAAARoRGAAAAAIARoREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGBEaAQAAAAAGBEaAQAAAABGhEYAAAAAgBGhEQAAAABgRGgEAAAAABgRGgEAAAAARoRGAAAAAIARoREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGBEaAQAAAAAGBEaAQAAAABGhEYAAAAAgBGhEQAAAABgRGgEAAAAABgRGgEAAAAARoRGAAAAAIARoREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGB0x4bG3377TS+88IJKlCghu92u4OBgRUdHa/369a4uDQAAAADuGR6uLsDkqaeeUmpqqt5++21FRETo1KlTWr16tc6cOePq0nJdamqqPD09XV0GAAAAgHvQHbnSeP78eX333Xd69dVX1aBBA4WFhalGjRoaPHiwWrZsKUmy2WyKi4tT06ZNlT9/fkVERGjp0qVO4xw7dkxt27ZVQECAChUqpFatWunw4cNOfebNm6cHHnhAdrtdISEh6t279w3rsyxLI0eOdKyCFitWTC+++KJje0pKigYOHKjQ0FDZ7XZFRkZq7ty5ju3ffvutatSo4TjmoEGDdPXqVcf2+vXrq3fv3urbt6+KFCmi6OhoSdLu3bvVtGlT+fj4KCgoSB07dtTvv/9urDMlJUVJSUlOLwAAAADIijsyNPr4+MjHx0fLli1TSkqKsd+wYcP01FNPaefOnerQoYPatWunvXv3SpKuXLmi6Oho+fr66rvvvtP69evl4+OjJk2aKDU1VZIUFxenXr16qUePHtq1a5c+/fRTRUZG3rC+Dz/8UFOmTNGsWbN04MABLVu2TBUqVHBs79SpkxYuXKjp06dr7969mjVrlnx8fCRJx48fV7NmzfTQQw9p586diouL09y5czVmzBinY7z99tvy9PTU+vXr9eabb+r8+fNq2LChqlSpoh9++EErV67UqVOn1LZtW2Od48ePl7+/v+MVGhp6w3MDAAAAgL+zWZZlubqIzHz44Yfq3r27/vzzT1WtWlX16tVTu3btVLFiRUl/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9O6772rdunU6evSo+vfv79j+6quvasGCBZo/f77Wr1+vpKQkLVu27Lr1pqSkKCkpyekFAAAAAFnB5ak38Nlnn8nHx0dXr15VSkqK3NzcNGPGDElS8eLFnYJdnz599OWXX2rx4sWqUaOG/P395enpqQIFCtzwctQrV67ozTff1P333y9J6t27t0aNGuXY/vrrr2vw4MF64oknJEkzZszQF198cd0xx48fr9jY2GydNwAAAABIhMYbatCggeLi4vTHH39oypQp8vDw0FNPPSVJSktL07hx47R48WIdP35cqampSklJUYECBbJ8nAIFCjgCoySFhITo9OnTkqQLFy7o1KlTqlGjhmO7u7u7qlWrpvT0dOOYgwcPVr9+/Rzvk5KSjCudAAAAAJAZQuMNeHt7KzIyUpI0b948VapUSXPnzlXXrl312muvadq0aZo6daoqVKggb29v9e3bV6mpqVk+Tr58+Zze22w2WZZ1S7Xb7XbZ7fZbGgMAAADAvY17GrPAzc1Nr7zyioYOHao///xT69evV6tWrfTss8+qUqVKioiI0P79+5328fT0VFpa2i0d19/fX0FBQdqyZYujLS0tTdu2bbulcQEAAADgRgiNWdSmTRu5u7vrjTfeUKlSpbRq1Spt2LBBe/fu1b///W+dOnXKqX94eLi+//57HT58WL///vt1Lye9nj59+mj8+PH65JNPlJCQoJdeeknnzp2TzWbLidMCAAAAgEwRGrPIw8NDvXv31sSJE/Wf//xHVatWVXR0tOrXr6/g4OAMX4HRv39/ubu7q3z58ipatKiOHj2areMOHDhQ7du3V6dOnRQVFSUfHx9FR0fLy8srB84KAAAAADJns271xjm4RHp6usqVK6e2bdtq9OjRN7VPUlKS/P39VanPm3K357/NFd6Ztr7WydUlAAAAAC53LRtcuHBBfn5+1+3Lg3DuEkeOHNFXX32levXqKSUlRTNmzFBiYqKeeeYZV5cGAAAAIA/j8tS7hJubm+Lj4/XQQw+pdu3a2rVrl77++muVK1fO1aUBAAAAyMNYabxLhIaGav369a4uAwAAAMA9hpVGAAAAAIARoREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGBEaAQAAAAAGBEaAQAAAABGhEYAAAAAgBGhEQAAAABgRGgEAAAAABgRGgEAAAAA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nPpL0qpVq4z9kXuyM5+4c2V3PidOnKjRo0dr5cqVql69em6UipuQU7+f6enpSklJuR0lIguyOp9ly5bVrl27tGPHDserZcuWatCggXbs2KHQ0NDcLB//kBO/n2lpadq1a5dCQkJuV5m4SdmZz9q1a+vnn392/GeOJO3fv18hISEExlvh6ifxIOcsWrTIstvtVnx8vPXTTz9ZPXr0sAICAqyTJ09almVZHTt2tAYNGuTov379esvDw8OaNGmStXfvXmvEiBFWvnz5rF27drnqFPA3WZ3PlJQUa/v27db27dutkJAQq3///tb27dutAwcOuOoU8DdZnc8JEyZYnp6e1tKlS60TJ044XhcvXnTVKeBvsjqf48aNs7766ivr4MGD1k8//WRNmjTJ8vDwsGbPnu2qU8DfZHU+/4mnp95ZsjqfsbGx1pdffmkdPHjQ2rp1q9WuXTvLy8vL2rNnj6tOAX+T1fk8evSo5evra/Xu3dtKSEiwPvvsMyswMNAaM2aMq04hTyA05jGvv/66VaJECcvT09OqUaOGtWnTJse2evXqWZ07d3bqv3jxYqt06dKWp6en9cADD1iff/55LleM68nKfCYmJlqSMrzq1auX+4UjU1mZz7CwsEznc8SIEblfODKVlfkcMmSIFRkZaXl5eVkFCxa0oqKirEWLFrmgaphk9e/PvyM03nmyMp99+/Z19A0KCrKaNWtmbdu2zQVVwySrv58bNmywatasadntdisiIsIaO3asdfXq1VyuOm+xWZZluWqVEwAAAABwZ+OeRgAAAACAEaERAAAAAGBEaAQAAAAAGBEaAQAAAABGhEYAAAAAgBGhEQAAAABgRGgEAAAAABgRGgEAAAAARoRGAAAAAIARoREAgNukS5cuat26tavLyNThw4dls9m0Y8cOV5cCALjDERoBALjHpKamuroEAMBdhNAIAEAuqF+/vvr06aO+ffuqYMGCCgoK0uzZs/XHH38oJiZGvr6+ioyM1IoVKxz7rF27VjabTZ9//rkqVqwoLy8vPfzww9q9e7fT2B9++KEeeOAB2e12hYeHa/LkyU7bw8PDNXr0aHXq1El+fn7q0aOHSpYsKUmqUqWKbDab6tevL0nasmWLGjdurCJFisjf31/16tXTtm3bnMaz2WyaM2eOnnjiCRUoUEClSpXSp59+6tRnz549evzxx+Xn5ydfX1/VqVNHBw8edGyfM2eOypUrJy8vL5UtW1YzZ8685c8YAHB7EBoBAMglb7/9tooUKaLNmzerT58+euGFF9SmTRvVqlVL27Zt02OPPaaOHTvq0qVLTvsNGDBAkydP1pYtW1S0aFG1aNFCV65ckSRt3bpVbdu2Vbt27bRr1y6NHDlSw4YNU3x8vNMYkyZNUqVKlbR9+3YNGzZMmzdvliR9/fXXOnHihD766CNJ0sWLF9W5c2f973//06ZNm1SqVCk1a9ZMFy9edBovNjZWbdu21Y8//qhmzZqpQ4cOOnv2rCTp+PHjqlu3rux2u7755htt3bpVzz33nK5evSpJWrBggYYPH66xY8dq7969GjdunIYNG6a33347xz9zAEAOsAAAwG3RuXNnq1WrVpZlWVa9evWsRx55xLHt6tWrlre3t9WxY0dH24kTJyxJ1saNGy3Lsqw1a9ZYkqxFixY5+pw5c8bKnz+/9cEHH1iWZVnPPPOM1bhxY6fjDhgwwCpfvrzjfVhYmNW6dWunPomJiZYka/v27dc9h7S0NMvX19davny5o02SNXToUMf75ORkS5K1YsUKy7Isa/DgwVbJkiWt1NTUTMe8//77rffff9+pbfTo0VZUVNR1awEAuAYrjQAA5JKKFSs6fnZ3d1fhwoVVoUIFR1tQUJAk6fTp0077RUVFOX4uVKiQypQpo71790qS9u7dq9q1azv1r127tg4cOKC0tDRHW/Xq1W+qxlOnTql79+4qVaqU/P395efnp+TkZB09etR4Lt7e3vLz83PUvWPHDtWpU0f58uXLMP4ff/yhgwcPqmvXrvLx8XG8xowZ43T5KgDgzuHh6gIAALhX/DNE2Ww2pzabzSZJSk9Pz/Fje3t731S/zp0768yZM5o2bZrCwsJkt9sVFRWV4eE5mZ3Ltbrz589vHD85OVmSNHv2bNWsWdNpm7u7+03VCADIXYRGAADucJs2bVKJEiUkSefOndP+/ftVrlw5SVK5cuW0fv16p/7r169X6dKlrxvCPD09JclpNfLavjNnzlSzZs0kSceOHdPvv/+epXorVqyot99+W1euXMkQLoOCglSsWDEdOnRIHTp0yNK4AADXIDQCAHCHGzVqlAoXLqygoCANGTJERYoUcXz/43/+8x899NBDGj16tJ5++mlt3LhRM2bMuOHTSAMDA5U/f36tXLlS9913n7y8vOTv769SpUrp3XffVfXq1ZWUlKQBAwZcd+UwM71799brr7+udu3aafDgwfL399emTZtUo0YNlSlTRrGxsXrxxRfl7++vJk2aKCUlRT/88IPOnTunfv36ZfdjAgDcJtzTCADAHW7ChAl66aWXVK1aNZ08eVLLly93rBRWrVpVixcv1qJFi/Tggw9q+PDhGjVqlLp06XLdMT08PDR9+nTNmjVLxYoVU6tWrSRJc+fO1blz51S1alV17NhRL774ogIDA7NUb+HChfXNN98oOTlZ9erVU7Vq1TR79mzHqmO3bt00Z84czZ8/XxUqVFC9evUUHx/v+BoQAMCdxWZZluXqIgAAQEZr165VgwYNdO7cOQUEBLi6HADAPYqVRgAAAACAEaERAAAAAGDE5akAAAAAACNWGgEAAAAARoRGAAAAAIARoREAAAAAYERoBAAAAAAYERoBAAAAAEaERgAAAACAEaERAAAAAGBEaAQAAAAAGP1/TcuD66gASRkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Train Mean Squared Error: 40281623.425488226\n", "Train R2 Score: 0.9581963040734582\n" ] }, { "data": { "image/png": "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alXcuHEDfn5+doyu6GAiSERERERERcLevXsRFhaGy5cvIzAwEBcvXoRarRaPMwnMPU4NJSIiIiIih3bnzh106dIFrVq1wuXLlwEAMTEx+Ouvv+wcWdHFRJCIiIiIiBxSRkYG5s2bh6CgIGzevFlsDw4OxvHjx9G+fXs7Rle0cWooERERERE5nD///BPDhw/H1atXxTZPT0/Mnz8fffv2hVTKMa2XwadHREREREQOZeHChWjTpo2YBEqlUoSFheHq1avo378/k8B8wCdIREREREQO5f3334dKpQIANG3aFKdOncLy5ctRqlQpO0dWfHBqKBERERER2VVCQgK8vb3F9xUqVMCCBQvg7u6Onj17QiKR2DG64omJIBERERER2cWNGzcwYsQInDlzBlFRUdBoNOKxYcOG2TGy4o9TQ4mIiIiIqFClpaVh2rRpqFGjBrZv3467d+9i9uzZ9g6rROGIIBERERERFQpBEPDLL79g5MiRuHXrltju5+eH+vXr2zGykocjgkREREREVOCuXr2Ktm3b4t133xWTQLlcjrFjxyIqKgqdO3e2c4QlC0cEiYiIiIiowKSmpmLWrFlYtGgRTCaT2B4SEoLly5cjKCjIjtGVXBwRJCIiIiKiApOUlIQVK1aISWBAQAC2bNmCXbt2MQm0IyaCRERERERUYPz9/TF16lQolUp8/PHHuHz5Mt577z2WhLAzJoJERERERJQvkpOTMXXqVOh0Opv2ESNG4OLFi5g9ezZcXFzsFB1lxTWCRERERET0UgRBwA8//IAxY8bg3r170Ov1WLJkiXhcqVSicuXK9guQsuGIIBERERERvbALFy6gZcuW6NGjB+7duwcA+PLLL5GYmGjnyOhZmAgSEREREVGeJSUlYcSIEahfvz4OHDggtrdv3x7nz5+Hh4eHHaOj5+HUUCIiIiIiyjWr1Ypvv/0W48aNQ0JCgtheqVIlLF26FO3atbNjdJRbTASJiIiIiChXBEFA+/bt8ccff4htarUakyZNwujRo6FSqewYHeUFp4YSEREREVGuSCQStGnTRnzfqVMnXL58GZMmTWISWMRwRJCIiIiIiHJktVphMBjg7Owstn344Yc4cOAABg4ciNatW9sxOnoZHBEkIiIiIqJsTpw4gcaNGyM8PNymXS6XY8uWLUwCizgmgkREREREJHrw4AEGDRqE4OBgnDhx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EhEREVGepaam4pdffhHfBwcHY+XKlWjQoIEdo3oxUqkEAR7O9g6DqFAVqc1iiIiIiMgxVKlSBWPGjIGXlxe++uorHD58uEgmgUQlFRNBIiIiInqmmJgYDBkyBOnptsXVJ02ahKtXr6Jfv36QSvnPSqKihP/FEhEREVGODAYDZs6cierVq2P16tWYN2+ezXFnZ2e4u7vbJzgieilMBImIiIgom99++w01a9bEtGnTYDAYAADffPNNtgLxRFQ0MREkIiIiItG1a9fw9ttv45133sGNGzcAADKZDOHh4Th37hycnJzsHCER5QfuGkpERERESEtLw9y5c7FgwQIYjUaxvWXLllixYgVq1qxpx+iIKL8xESQiIiIq4cxmMxo2bGhTFN7f3x+LFi1C586dIZGwph5RccOpoUREREQlnFwuR48ePQAACoUC48aNQ1RUFLp06cIkkKiY4oggERERUQmTkpICiUQCFxcXsW306NG4ceMGxo4di6CgIDtGR0SFgSOCRERERCWEIAjYvHkzqlevjhkzZtgcU6lUWLt2LZNAohKCiSARERFRCXDp0iWEhISgS5cu+Oeff7B48WJERUXZOywishMmgkRERETFmF6vx+jRo1G3bl3s3btXbH/zzTdZCoKoBOMaQSIiIqJiSBAEfP/99xg7dizu3bsntgcGBmLJkiVo3749N4IhKsGYCBIREREVM+fPn0dYWBgOHjwotqlUKkyYMAHjxo2DWq22Y3RE5AiYCBIREREVM7t377ZJAv/73/9i8eLFCAwMtGNURORIJIIgCPYOoqTQ6/XQarXQ6XRwc3OzdzhERERUTJlMJtStWxcmkwnLli3DW2+9Ze+QiOgJ9s4NOCJIREREVISdPn0ahw8fRlhYmNimUCjw22+/oWzZstwQhohyxF1DiYiIiIqgxMREfPjhh2jYsCFGjBiB8+fP2xyvVKkSk0AieiomgkRERERFiMViwRdffIGqVasiIiICgiDAarXis88+s3doRFSEMBEkIiIiKiKOHz+Oxo0bY9CgQXj48CEAwMXFBQsWLMCaNWvsHB0RFSVcI0hERETk4O7fv4+PP/4Ya9euRdZ9/rp164aFCxfC39/fjtERUVHERJCIiIjIgUVGRqJ58+ZISkoS22rWrIkVK1agZcuWdouLiIo2Tg0lIiIicmDVq1dHhQoVAABubm5YvHgx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JSeffDKnnnoqd999N11dXVx99dX7tb8xBkCLxoiIiIiI9HM9MUFPjHC4KRA8AJdeeilNTU388Ic/pL6+nkmTJvH888/vtoDMnsRiMQAtGiMiIiIiIkB3jFBUVHTYz2uZvgpB+yHP89i2bRsFBQVYlrXb9o6ODmpqati6dSuFhYV90ML+Tf3fd9T3fUd933fU931L/d931Pd9R33fd3rre2MMsViMgQMHYtuH/4k9jQgeRrZtM3jw4H3WKyws1D/OPqT+7zvq+76jvu876vu+pf7vO+r7vqO+7zsf7vu+GAnsocViRERERERE+hkFgiIiIiIiIv2MAsEjSCgU4rbbblPuwT6i/u876vu+o77vO+r7vqX+7zvq+76jvu87R2Lfa7EYERERERGRfkYjgiIiIiIiIv2MAkEREREREZF+RoGgiIiIiIhIP6NAUEREREREpJ9RIHgEuffeexk2bBjhcJipU6eyePHivm7SEe2OO+7glFNOoaCggIqKCi6++GLWrl2bU2fGjBlYlpXzuv7663PqbNmyhQsuuIBoNEpFRQW33HILjuPk1Hn55Zc56aSTCIVCjBo1ioceemi39vSn7+9HP/rRbv16/PHHZ7cnk0nmzJnDgAEDyM/P55JLLqGhoSHnGOr3gzNs2LDd+t6yLObMmQPomj/UXn31VS688EIGDhyIZVk8+eSTOduNMfzwhz+kurqaSCTCzJkzWbduXU6dlpYWLr/8cgoLCykuLuarX/0qnZ2dOXWWL1/O6aefTjgcpqamhrvuumu3tvzlL3/h+OOPJxwOM378eJ599tkDbsvRZG99n8lkmDt3LuPHjycvL4+BAwfy5S9/mW3btuUco7d/L3feeWdOHfX97vZ13V911VW79eu5556bU0fX/cHZV9/39vvfsix+9rOfZevouj84+3NfeSTd3+xPW/bJyBHhz3/+swkGg+aBBx4w7777rrnmmmtMcXGxaWho6OumHbFmzZplHnzwQbNy5UqzbNkyc/7555shQ4aYzs7ObJ0zzjjDXHPNNaauri77am9vz253HMeMGzfOzJw50yxdutQ8++yzpqyszNx6663ZOu+//76JRqPm5ptvNqtWrTL//u//bnw+n3n++eezdfrb93fbbbeZE088Madfm5qastuvv/56U1NTYxYsWGDefvtt84lPfMJ88pOfzG5Xvx+8xsbG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ydaZN28eY8aMoaSkJFtnb9/J/rTlWNMTBK5bt4758+czYMCAfe6zbNkybNvOTltU3x8aH3zwAdu3b8/5PaPr/uN1//33M2XKFCZOnLjPurru98++7iuPpPub/WnL/n5oOQL8+c9/NqFQyDz00ENm1apV5tprrzXFxcU5qw5JrtmzZ5uioiLz8ssv5yyRHI/HjTHGrF+/3tx+++3m7bffNhs3bjRPPfWUGTFihJk+fXr2GD3L/J5zzjlm2bJl5vnnnzfl5eW9LvN7yy23mNWrV5t7772312V++9P39+1vf9u8/PLLZuPGjWbhwoVm5syZpqyszDQ2Nhpjupc0HjJkiHnxxRfN22+/baZNm2amTZuW3V/9/tG4rmuGDBli5s6dm1Oua/7Qi8ViZunSpWbp0qUGMD//+c/N0qVLsytT3nnnnaa4uNg89dRTZvny5eaiiy7qNX3E5MmTzZtvvmlee+01M3r06Jxl9Nva2kxlZaW54oorzMqVK82f//xnE41Gd1vK3e/3m3/91381q1evNrfddluvS7nvqy1Hk731fTqdNp/5zGfM4MGDzbJly3L+BvSszPf666+bX/ziF2bZsmVmw4YN5uGHHzbl5eXmy1/+cvYc6vve7a3vY7GY+cd//EezaNEis3HjRjN//nxz0kknmdGjR5tkMpk9hq77g7Ov3znGdKd/iEaj5r777tttf133B29f95XGHFn3N/tqy/5QIHgE+fd//3czZMgQEwwGzamnnmreeOONvm7SEQ3o9fXggw8aY4zZsmWLmT59uiktLTWhUMiMGjXK3HLLLTk51YwxZtOmTea8884zkUjElJWVmW9/+9smk8nk1HnppZfMpEmTTDAYNCNGjMieY1f96fu79NJLTXV1tQkGg2bQoEHm0ksvNevXr89uTyQS5utf/7opKSkx0WjUfPaznzV1dXU5x1C/H7wXXnjBAGbt2rU55brmD72XXnqp198zV155pTGmewn1H/zgB6aystKEQiFz9tln7/a9bN++3Vx22WUmPz/fFBYWmquvvtrEYrGcOu+88475h3/4BxMKhcygQYPMnXfeuVtbHnvsMXPccceZYDBoTjzxRPPMM8/kbN+fthxN9tb3Gzdu3OPfgJ6cmkuWLDFTp041RUVFJhwOmxNOOMH89Kc/zQlWjFHf92ZvfR+Px80555xjysvLTSAQMEOHDjXXXHPNbv8RSNf9wdnX7xxjjPntb39rIpGIaWtr221/XfcHb1/3lcYcWfc3+9OWfbF2fHARERERERHpJ/SMoIiIiIiISD+jQFBERERERKSfUSAoIiIiIiLSzygQFBERERER6WcUCIqIiIiIiPQzCgRFRERERET6GQWCIiIiIiIi/YwCQRERERERkX5GgaCIiMhhZlkWTz755CE/7rBhw7j77rsP+XFFROTYo0BQRESOWYsWLcLn83HBBRcc8L59GVRdddVVWJaFZVkEg0FGjRrF7bffjuM4e93vrbfe4tprrz1MrRQRkaOZAkERETlm3X///XzjG9/g1VdfZdu2bX3dnANy7rnnUldXx7p16/j2t7/Nj370I372s5/1WjedTgNQXl5ONBo9nM0UEZGjlAJBERE5JnV2dvLoo48ye/ZsLrjgAh566KHd6vzv//4vp5xyCuFwmLKyMj772c8CMGPGDDZv3sy3vvWt7MgcwI9+9CMmTZqUc4y7776bYcOGZd+/9dZbfOpTn6KsrIyioiLOOOMM/v73vx9w+0OhEFVVVQwdOpTZs2czc+ZM/vrXvwLdI4YXX3wxP/nJTxg4cCBjxowBdh/FbGtr47rrrqOyspJwOMy4ceN4+umns9tfe+01Tj/9dCKRCDU1Ndx44410dXUdcFtFROToo0BQRESOSY899hjHH388Y8aM4Utf+hIPPPAAxpjs9meeeYbPfvaznH/++SxdupQFCxZw6qmnAvD4448zePBgbr/9durq6qirq9vv88ZiMa688kpee+013njjDUaPHs35559PLBb7SJ8nEolkR/4AFixYwNq1a5k3b15OcNfD8zzOO+88Fi5cyMMPP8yqVau488478fl8AGzYsIFzzz2XSy65hOXLl/Poo4/y2muvccMNN3ykdoqIyNHB39cNEBER+Tjcf//9fOlLXwK6p1m2t7fzyiuvMGPGDAB+8pOf8IUvfIEf//jH2X0mTpwIQGlpKT6fj4KCAqqqqg7ovGeddVbO+9/97ncUFxfzyiuv8OlPf/qAP4cxhgULFvDCCy/wjW98I1uel5fH73//e4LBYK/7zZ8/n8WLF7N69WqOO+44AEaMGJHdfscdd3D55Zdz0003ATB69Gh+9atfccYZZ3DfffcRDocPuK0iInL00IigiIgcc9auXcvixYu57LLLAPD7/Vx66aXcf//92TrLli3j7LPPPuTnbmho4JprrmH06NEUFRVRWFhIZ2cnW7ZsOaDjPP300+Tn5xMOhznvvPO49NJL+dGPfpTdPn78+D0GgdD9+QYPHpwNAj/snXfe4aGHHiI/Pz/7mjVrFp7nsXHjxgNqq4iIHH00IigiIsec+++/H8dxGDhwYLbMGEMoFOKee+6hqKiISCRywMe1bTtneilAJpPJeX/llVeyfft2fvnLXzJ06FBCoRDTpk3Lmda5P84880zuu+8+gsEgAwcOxO/P/ZOdl5e31/339fk6Ozu57rrruPHGG3fbNmTIkANqq4iIHH0UCIqIyDHFcRz+8z//k3/7t3/jnHPOydl28cUX88gjj3D99dczYcIEFixYwNVXX93rcYLBIK7r5pSVl5dTX1+PMSa7gMyyZcty6ixcuJBf//rXnH/++QBs3bqV5ubmA/4ceXl5jBo16oD36zFhwgQ++OAD3nvvvV5HBU866SRWrVr1kc4hIiJHL00NFRGRY8rTTz9Na2srX/3qVxk3blzO65JLLslOD73tttt45JFHuO2221i9ejUrVqzgX/7lX7LHGTZsGK+++iq1tbXZQG7GjBk0NTVx1113sWHDBu69916ee+65nPOPHj2a//qv/2L16tW8+eabXH755Qc1+vhRnXHGGUyfPp1LLrmEefPmsXHjRp577jmef/55AObOncvrr7/ODTfcwLJly1i3bh1PPfWUFosREeknFAiKiMgx5f7772fmzJkUFRXttu2SSy7h7bffZvny5cyYMYO//OUv/PWvf2XSpEmcddZZLF68OFv39ttvZ9OmTYwcOZLy8nIATjjhBH79619z7733MnHiRBYvXsw//uM/7nb+1tZWTjrpJK644gpuvPFGKioqPt4PvQf/8z//wymnnMJll13G2LFj+c53vpMd5ZwwYQKvvPIK7733HqeffjqTJ0/mhz/8Yc50WhEROXZZ5sMPO4iIiIiIiMgxTSOCIiIiIiIi/YwCQRERERERkX5GgaCIiIiIiEg/o0BQRERERESkn1EgKCIiIiIi0s8oEBQREREREelnFAiKiIiIiIj0MwoERURERERE+hkFgiIiIiIiIv2MAkEREREREZF+RoGgiIiIiIhIP/P/A3eZToyU9UseAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.metrics import mean_squared_error, r2_score\n", "from sklearn.model_selection import cross_val_score\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import featuretools as ft\n", "import re\n", "\n", "# Загрузка данных\n", "df = pd.read_csv(\"..//static//csv//mobile phone price prediction.csv\")\n", "\n", "# Преобразование столбца Battery в числовой формат\n", "df['Battery'] = df['Battery'].apply(lambda x: int(re.search(r'\\d+', x).group()) if re.search(r'\\d+', x) else None)\n", "\n", "# Преобразование столбца Display в числовой формат\n", "df['Camera'] = pd.to_numeric(df['Camera'], errors='coerce')\n", "df['Display'] = pd.to_numeric(df['Display'], errors='coerce')\n", "df['Inbuilt_memory'] = pd.to_numeric(df['Inbuilt_memory'], errors='coerce')\n", "df['fast_charging'] = pd.to_numeric(df['fast_charging'], errors='coerce')\n", "\n", "# Удаление запятых из столбца Price и преобразование в числовой формат\n", "df['Price'] = df['Price'].str.replace(',', '').astype(float)\n", "\n", "# Удаление столбцов с текстовыми значениями, которые не могут быть преобразованы в числа\n", "df = df.drop(columns=['Name', 'company', 'Android_version', 'Processor_name', 'External_Memory', 'No_of_sim', 'Ram', 'Screen_resolution', 'Processor' ])\n", "# Разделение на обучающую и тестовую выборки (например, 70% обучающая, 30% тестовая)\n", "train_df, test_df = train_test_split(df, test_size=0.3, random_state=42)\n", "\n", "# Разделение обучающей выборки на обучающую и контрольную (например, 70% обучающая, 30% контрольная)\n", "train_df, val_df = train_test_split(train_df, test_size=0.3, random_state=42)\n", "\n", "# Вывод размеров выборок\n", "print(\"Размер обучающей выборки:\", len(train_df))\n", "print(\"Размер контрольной выборки:\", len(val_df))\n", "print(\"Размер тестовой выборки:\", len(test_df))\n", "\n", "# Определение сущностей\n", "es = ft.EntitySet(id='mobile_data')\n", "es = es.add_dataframe(dataframe_name='mobile', dataframe=train_df, index='id')\n", "\n", "# Генерация признаков с уменьшенной глубиной\n", "feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name='mobile', max_depth=1)\n", "\n", "# Преобразование признаков для контрольной и тестовой выборок\n", "val_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=val_df.index)\n", "test_feature_matrix = ft.calculate_feature_matrix(features=feature_defs, entityset=es, instance_ids=test_df.index)\n", "\n", "# Удаление строк с NaN\n", "feature_matrix = feature_matrix.dropna()\n", "val_feature_matrix = val_feature_matrix.dropna()\n", "test_feature_matrix = test_feature_matrix.dropna()\n", "\n", "# Разделение данных на обучающую и тестовую выборки\n", "X_train = feature_matrix.drop('Price', axis=1)\n", "y_train = feature_matrix['Price']\n", "X_val = val_feature_matrix.drop('Price', axis=1)\n", "y_val = val_feature_matrix['Price']\n", "X_test = test_feature_matrix.drop('Price', axis=1)\n", "y_test = test_feature_matrix['Price']\n", "\n", "# Выбор модели\n", "model = RandomForestRegressor(random_state=42)\n", "\n", "# Обучение модели\n", "model.fit(X_train, y_train)\n", "\n", "# Предсказание и оценка\n", "y_pred = model.predict(X_test)\n", "\n", "mse = mean_squared_error(y_test, y_pred)\n", "r2 = r2_score(y_test, y_pred)\n", "\n", "print(f\"Mean Squared Error: {mse}\")\n", "print(f\"R2 Score: {r2}\")\n", "\n", "# Кросс-валидация\n", "scores = cross_val_score(model, X_train, y_train, cv=5, scoring='neg_mean_squared_error')\n", "mse_cv = -scores.mean()\n", "print(f\"Cross-validated Mean Squared Error: {mse_cv}\")\n", "\n", "# Анализ важности признаков\n", "feature_importances = model.feature_importances_\n", "feature_names = X_train.columns\n", "\n", "importance_df = pd.DataFrame({'Feature': feature_names, 'Importance': feature_importances})\n", "importance_df = importance_df.sort_values(by='Importance', ascending=False)\n", "\n", "plt.figure(figsize=(10, 6))\n", "sns.barplot(x='Importance', y='Feature', data=importance_df)\n", "plt.title('Feature Importance')\n", "plt.show()\n", "\n", "# Проверка на переобучение\n", "y_train_pred = model.predict(X_train)\n", "\n", "mse_train = mean_squared_error(y_train, y_train_pred)\n", "r2_train = r2_score(y_train, y_train_pred)\n", "\n", "print(f\"Train Mean Squared Error: {mse_train}\")\n", "print(f\"Train R2 Score: {r2_train}\")\n", "\n", "# Визуализация результатов\n", "plt.figure(figsize=(10, 6))\n", "plt.scatter(y_test, y_pred, alpha=0.5)\n", "plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=2)\n", "plt.xlabel('Actual Price')\n", "plt.ylabel('Predicted Price')\n", "plt.title('Actual vs Predicted Price')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "aimenv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.5" } }, "nbformat": 4, "nbformat_minor": 2 }