{ "cells": [ { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index(['Date', 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')\n", "0 8212\n", "1 8215\n", "2 8216\n", "3 8217\n", "4 8218\n", " ... \n", "8031 19860\n", "8032 19863\n", "8033 19864\n", "8034 19865\n", "8035 19866\n", "Name: Date_numeric, Length: 8036, dtype: int64\n", "Зашумленные столбцы: []\n", "Смещение: Open 1.086680\n", "High 1.086383\n", "Low 1.087102\n", "Close 1.086685\n", "Adj Close 1.213587\n", "Volume 13.602510\n", "Date_numeric 0.000505\n", "dtype: float64\n", "Сильно смещенные столбцы: ['Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume']\n", "Данные за последние 25 лет\n", "Выбросы в столбце 'Open':\n", "Series([], Name: Open, dtype: float64)\n", "\n", "Выбросы в столбце 'High':\n", "Series([], Name: High, dtype: float64)\n", "\n", "Выбросы в столбце 'Low':\n", "Series([], Name: Low, dtype: float64)\n", "\n", "Выбросы в столбце 'Close':\n", "Series([], Name: Close, dtype: float64)\n", "\n", "Выбросы в столбце 'Adj Close':\n", "7321 114.799438\n", "7322 117.926170\n", "7323 118.010414\n", "7324 117.982330\n", "7325 114.593483\n", "7326 114.565414\n", "7327 113.676071\n", "Name: Adj Close, dtype: float64\n", "\n", "Выбросы в столбце 'Volume':\n", "0 224358400\n", "1 58732800\n", "2 34777600\n", "33 48320000\n", "103 46131200\n", " ... \n", "6444 51851700\n", "6544 62091100\n", "6550 33210100\n", "6639 45573000\n", "8019 66610700\n", "Name: Volume, Length: 451, dtype: int64\n", "\n", "Выбросы в столбце 'Date_numeric':\n", "Series([], Name: Date_numeric, dtype: int64)\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAMWCAYAAADLc44dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACiyElEQVR4nOzdd3gU5drH8d+mbUJIoaZQQkAkiPRm6E2pYqUJUkTxSBdFQVSKIHYFQco5CEeaimJDQRAp0jsoTUooinQSQofkef/gzZ4sSSCBJJPdfD/XtZfszLMz9z1Z5969d4rNGGMEAAAAAAAAZDMPqwMAAAAAAABA7kRjCgAAAAAAAJagMQUAAAAAAABL0JgCAAAAAACAJWhMAQAAAAAAwBI0pgAAAAAAAGAJGlMAAAAAAACwBI0pAAAAAAAAWILGFAAAAAAAACxBYwouy2azadiwYdmyrgULFqhSpUry9fWVzWZTbGxstqwXAJD5qB//U6JECXXt2vW2X9uqVavMDQgAcjDqB5A1aEwhhWnTpslmszk9ChcurIYNG2r+/PlWh3fHduzYoWHDhunAgQPpGn/q1Cm1bdtWfn5+Gj9+vKZPny5/f/+sDVLS9u3b1alTJxUpUkR2u13h4eHq2LGjtm/fnuXrBoDbQf1wlt31I2n7b9iwIdX5DRo00L333ptl6weA20X9cJbT6geQ1bysDgA514gRIxQZGSljjI4dO6Zp06apRYsW+uGHH1z6F9IdO3Zo+PDhatCggUqUKHHL8evXr1d8fLzeeOMNNWnSJOsDlDR37lx16NBB+fPnV/fu3RUZGakDBw5oypQp+uqrr/T555/rkUceyZZYACCjqB/XWVE/Mmr37t3y8OB3SgA5A/XjOleoH0BmojGFNDVv3lzVqlVzPO/evbtCQkI0e/Zsly4MGXX8+HFJUnBwcKYt8/z582n+6rFv3z49+eSTKlmypJYvX65ChQo55vXr109169bVk08+qW3btqlkyZKZFhMAZBbqx3XZXT9uh91uz7RlAcCdon5c5wr1A8hM/ESGdAsODpafn5+8vJz7mefPn9cLL7ygYsWKyW63q0yZMnrvvfdkjJEkXbx4UVFRUYqKitLFixcdrzt9+rTCwsJUq1YtJSQkSJK6du2qvHnzav/+/WratKn8/f0VHh6uESNGOJZ3M5s3b1bz5s0VGBiovHnzqnHjxlqzZo1j/rRp09SmTRtJUsOGDR2HCi9dujTV5TVo0EBdunSRJFWvXl02m83pWhxz5sxR1apV5efnp4IFC6pTp076+++/nZaRlNO+ffvUokULBQQEqGPHjmnm8O677+rChQuaPHmyU1NKkgoWLKhJkybp/PnzeueddxzThw0bJpvNpl27dqlt27YKDAxUgQIF1K9fP126dCnFOmbMmOGIO3/+/Grfvr0OHz6cIvd7771XO3bsUMOGDZUnTx4VKVLEab0AkB7Uj+ypH7cjtWtMbdu2TfXr15efn5+KFi2qkSNHaurUqbLZbKmehrJixQrVqFFDvr6+KlmypD777LNMjRFA7kX9yFn141a5xsbGytPTU2PHjnVMO3nypDw8PFSgQAGn7fncc88pNDT0jmOCe6AxhTTFxcXp5MmTOnHihLZv367nnntO586dU6dOnRxjjDFq3bq1PvzwQzVr1kwffPCBypQpo4EDB2rAgAGSJD8/P/33v//V3r17NWTIEMdre/Xqpbi4OE2bNk2enp6O6QkJCWrWrJlCQkL0zjvvqGrVqho6dKiGDh1603i3b9+uunXrauvWrXrppZf02muvKSYmRg0aNNDatWslSfXq1VPfvn0lSa+88oqmT5+u6dOnq2zZsqkuc8iQIerRo4ek64cWT58+Xc8++6yk60Wmbdu28vT01OjRo/XMM89o7ty5qlOnToqLE167dk1NmzZV4cKF9d577+mxxx5LM48ffvhBJUqUUN26dVOdX69ePZUoUUI//vhjinlt27bVpUuXNHr0aLVo0UJjx451xJ9k1KhR6ty5s0qXLq0PPvhA/fv31+LFi1WvXr0UcZ85c0bNmjVTxYoV9f777ysqKkovv/yyW5zrDyDrUD+sqR83bv8bH1evXr3la//++281bNhQ27dv1+DBg/X8889r5syZGjNmTKrj9+7dq8cff1z333+/3n//feXLl09du3bleogAbgv1w9r6cae5BgcH695779Xy5csdr1uxYoVsNptOnz6tHTt2OKb/9ttvaX7fQS5kgBtMnTrVSErxsNvtZtq0aU5jv/32WyPJjBw50mn6448/bmw2m9m7d69j2uDBg42Hh4dZvny5mTNnjpFkPvroI6fXdenSxUgyffr0cUxLTEw0LVu2ND4+PubEiROO6ZLM0KFDHc8ffvhh4+PjY/bt2+eYduTIERMQEGDq1avnmJa07iVLlmRoe6xfv94x7cqVK6Zw4cLm3nvvNRcvXnRMnzdvnpFkXn/99RQ5DRo06Jbrio2NNZLMQw89dNNxrVu3NpLM2bNnjTHGDB061EgyrVu3dhrXs2dPI8ls3brVGGPMgQMHjKenpxk1apTTuN9//914eXk5Ta9fv76RZD777DPHtMuXL5vQ0FDz2GOP3TIXALkP9SP17ZEd9SP5+m72KFeunNNrIiIiTJcuXRzP+/TpY2w2m9m8ebNj2qlTp0z+/PmNJBMTE+P0Wklm+fLljmnHjx83drvdvPDCC+mKGQCMoX6ktT2yu34kX9+N0ptrr169TEhIiOP5gAEDTL169UzhwoXNhAkTjDHX64rNZjNjxoxJV3xwfxwxhTSNHz9eixYt0qJFizRjxgw1bNhQTz/9tObOnesY89NPP8nT09PxK0CSF154QcYYpyNrhg0bpnLlyqlLly7q2bOn6tevn+J1SXr37u34t81mU+/evXXlyhX98ssvqY5PSEjQwoUL9fDDDztddyksLExPPPGEVqxYobNnz97WdkjNhg0bdPz4cfXs2VO+vr6O6S1btlRUVFSqRzM999xzt1xufHy8JCkgIOCm45Lm35hTr169nJ736dNH0vW/k3T9ouqJiYlq27at06/ooaGhKl26tJYsWeL0+rx58zr9QuXj46MaNWpo//79t8wFQO5F/UhbVtWP5JJv/+SPChUq3PK1CxYsUHR0tCpVquSYlj9//jRPAbnnnnucfvEuVKiQypQpQ50AcFuoH2nLjvqRlozkWrduXR07dky7d++WdP3IqHr16qlu3br67bffJF0/isoYwxFTcODi50hTjRo1nC4+2KFDB1WuXFm9e/dWq1at5OPjo4MHDyo8PDxFIyXp0NSDBw86pvn4+OjTTz9V9erV5evr67hexY08PDxSXNT77rvvlqQ0b7F64sQJXbhwQWXKlEkxr2zZskpMTNThw4dVrly59CV/C0l5pba+qKgorVixwmmal5eXihYtesvlJm3HpAZVWtJqYJUuXdrpealSpeTh4eHYbnv27JExJsW4JN7e3k7PixYtmuJvlC9fPm3btu3miQDI1agfacuq+pHcjds/Sb58+XTy5MlbxhcdHZ1i+l133ZXq+OLFi6e6njNnzqQzWgD4H+pH2rKjfqQlI7kmNZt+++03FS1aVJs3b9bIkSNVqFAhvffee455gYGBqlixYqbEB9fHEVNINw8PDzVs2FD//POP9uzZc1vL+PnnnyVJly5duu1luCK73Z6u23EHBQUpLCzslo2fbdu2qUiRIgoMDLzpuBsLb2Jiomw2mxYsWJDqr+mTJk1yGp/83PvkTDouBAkASagfty+99cMq1AkAWYn6cfusqh/h4eGKjIzU8uXLtXr1ahljFB0drbp16+rw4cM6ePCgfvvtN9WqVStH1zdkL94JyJBr165Jks6dOydJioiI0JEjR1Ic4bNr1y7H/CTbtm3TiBEj1K1bN1WuXFlPP/204uLiUqwjMTExxSkAf/75p6Trdw9KTaFChZQnTx7HIaM3xuLh4aFixYpJStmsuR1JeaW2vt27dzvlnVGtWrVSTExMil89kvz22286cOBAqrfMvbHY7t27V4mJiY7tVqpUKRljFBkZqSZNmqR43HfffbcdNwDcDPXjuqysH5khIiJCe/fuTTE9tWkAkB2oH9dZWT8ykqskx2l7v/32mypVqqSAgABVrFhRQUFBWrBggTZt2qR69eplWbxwPTSmkG5Xr17VwoUL5ePj4zhUtkWLFkpISNC4ceOcxn744Yey2Wxq3ry547Vdu3ZVeHi4xowZo2nTpunYsWN6/vnnU11X8uUZYzRu3Dh5e3urcePGqY739PTUAw88oO+++87pcNtjx45p1qxZqlOnjuPoIn9/f0lKceeKjKhWrZoKFy6siRMn6vLly47p8+fP186dO9WyZcvbXvbAgQPl5+enZ599VqdOnXKad/r0af3rX/9Snjx5NHDgwBSvHT9+vNPzjz/+WJIcf4dHH31Unp6eGj58eIpfs40xKdYHAJmB+vE/WVk/MkPTpk21evVqbdmyxTHt9OnTmjlzpnVBAci1qB//Y2X9yEiu0vXG1IEDB/TFF184Tu3z8PBQrVq19MEHH+jq1atcXwpOuMYU0jR//nzHLw/Hjx/XrFmztGfPHg0aNMix43nwwQfVsGFDDRkyRAcOHFDFihW1cOFCfffdd+rfv79KlSolSRo5cqS2bNmixYsXKyAgQBUqVNDrr7+uV199VY8//rhatGjhWK+vr68WLFigLl26qGbNmpo/f75+/PFHvfLKKypUqFCa8Y4cOVKLFi1SnTp11LNnT3l5eWnSpEm6fPmy3nnnHce4SpUqydPTU2+//bbi4uJkt9vVqFEjFS5cON3bxtvbW2+//ba6deum+vXrq0OHDjp27JjGjBmjEiVKpFnw0qN06dL673//q44dO6p8+fLq3r27IiMjdeDAAU2ZMkUnT57U7NmzHds2uZiYGLVu3VrNmjXT6tWrNWPGDD3xxBOO87dLlSqlkSNHavDgwTpw4IAefvhhBQQEKCYmRt9884169OihF1988bZjBwCJ+nEzWVk/MsNLL72kGTNm6P7771efPn3k7++v//znPypevLhOnz6dKb/6A0BaqB9py4768emnn2rBggUppvfr1y/duUpyNJ12796tN9980zG9Xr16mj9/vux2u6pXr37H8cKNWHErQORsqd2u1dfX11SqVMlMmDDBJCYmOo2Pj483zz//vAkPDzfe3t6mdOnS5t1333WM27hxo/Hy8nK6Basxxly7ds1Ur17dhIeHmzNnzhhjrt/a1N/f3+zbt8888MADJk+ePCYkJMQMHTrUJCQkOL1eN9yu1RhjNm3aZJo2bWry5s1r8uTJYxo2bGhWrVqVIsd///vfpmTJksbT0/OWt2692e1Tv/jiC1O5cmVjt9tN/vz5TceOHc1ff/3lNCYpp4zatm2b6dChgwkLCzPe3t4mNDTUdOjQwfz+++8pxg4dOtRIMjt27DCPP/64CQgIMPny5TO9e/d2up1skq+//trUqVPH+Pv7G39/fxMVFWV69epldu/e7RhTv379FLcVT8onIiIiw/kAcH/Uj9S3R3bVj1vd7ju1/XpERITp0qWL07TNmzebunXrGrvdbooWLWpGjx5txo4daySZo0ePOr22ZcuWqa6nfv366Y4bAKgfqW+P7K4faT0OHz6coVyNMaZw4cJGkjl27Jhj2ooVK4wkU7du3XTHhtzBZgxXp0TO0bVrV3311VeOc8iRPsOGDdPw4cN14sQJFSxY0OpwACDbUT+yVv/+/TVp0iSdO3cuzQueA4Aron4A1uMaUwAAAHC4ePGi0/NTp05p+vTpqlOnDk0pAACQ6bjGFAAAAByio6PVoEEDlS1bVseOHdOUKVN09uxZvfbaa1aHBgAA3BCNKQAAADi0aNFCX331lSZPniybzaYqVapoypQp3NobAABkCa4xBQAAAAAAAEtwjSkAAAAAAABYgsYUAAAAAAAALHHH15hKTEzUkSNHFBAQIJvNlhkxAQCykTFG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OmnOT0xMNKGhoebdd991TIuNjTV2u93Mnj07O0K8LS1btjRPPfWU07RHH33UdOzY0RjjmnnduENNTw47duwwksz69esdY+bPn29sNpv5+++/sy32tKRW/G60bt06I8kcPHjQGJPzc7KCu9UMd6oXxlAzcvq+1Rj3qxnUC+rFrVA3cjZ3qhvGUDtcKS93rB/GuH4NseRUvitXrmjjxo1q0qSJY5qHh4eaNGmi1atXWxFSpoiLi5Mk5c+fX5K0ceNGXb161SnPqKgoFS9ePMfn2atXL7Vs2dIpdsk1c/r+++9VrVo1tWnTRoULF1blypX173//2zE/JiZGR48edcopKChINWvWzLE5SVKtWrW0ePFi/fnnn5KkrVu3asWKFWrevLkk180rufTksHr1agUHB6tatWqOMU2aNJGHh4fWrl2b7THfjri4ONlsNgUHB0tyj5wykzvWDHeqFxI1wxX2re5eM6gXrptTVqBu5Pwc3aluSNQOV8srudxSP6ScXUO8snVt/+/kyZNKSEhQSEiI0/SQkBDt2rXLipDuWGJiovr376/atWvr3nvvlSQdPXpUPj4+jj98kpCQEB09etSCKNPn888/16ZNm7R+/foU81wxp/3792vChAkaMGCAXnnlFa1fv159+/aVj4+PunTp4og7tfdjTs1JkgYNGqSzZ88qKipKnp6eSkhI0KhRo9SxY0dJctm8kktPDkePHlXhwoWd5nt5eSl//vwukeelS5f08ssvq0OHDgoMDJTk+jllNnerGe5ULyRqRpKcnJPk/jWDevE/rpRTVqFu5Oy/vbvVDYna4Wp5JZcb6oeU82uIJY0pd9SrVy/98ccfWrFihdWh3JHDhw+rX79+WrRokXx9fa0OJ1MkJiaqWrVqevPNNyVJlStX1h9//KGJEyeqS5cuFkd3+7788kvNnDlTs2bNUrly5bRlyxb1799f4eHhLp1XbnL16lW1bdtWxhhNmDDB6nCQTdylXkjUDFdCzXBt1IvcjbqR81E7kJO5Qg2x5FS+ggULytPTM8XdFY4dO6bQ0FArQrojvXv31rx587RkyRIVLVrUMT00NFRXrlxRbGys0/icnOfGjRt1/PhxValSRV5eXvLy8tKyZcs0duxYeXl5KSQkxOVyCgsL0z333OM0rWzZsjp06JAkOeJ2tffjwIEDNWjQILVv317ly5fXk08+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FaUjR47o5Zdf1uuvv66goCBVqlRJS5cuVbVq1bR06VI9//zzGj58uM6dO6e4uDjt3btX9evXtzoVINNxxBRyhaQjom4lOjo6xfOdO3dKkrZu3apz586pQIECyps3r+MRExOjffv2OV5TokQJR1NKksLCwnT8+PFMyAIAkJ0aNmyoLVu2OD3+85//pDl+9+7dqlGjhtO0G59LUrly5eTp6el4Tp0AAPe3c+dORUdHy2azOabVrl1b586d019//SVJql+/vpYuXSpjjH777Tc9+uijKlu2rFasWKFly5YpPDxcpUuXtioFIMtwxBTc2l133SWbzaadO3fqkUceSTF/586dypcvnwoVKnTLZZ07d05hYWFOh9MmSX6NEW9vb6d5NptNiYmJGY4dAGAtf39/3XXXXU7Tkr483AnqBAAgNQ0aNNCnn36qrVu3ytvbW1FRUWrQoIGWLl2qM2fOcLQU3BZHTMGtFShQQPfff78++eQTXbx40Wne0aNHNXPmTLVr187xy8WaNWucxqxZs8ZxGmCVKlV09OhReXl56a677nJ6FCxYMHsSAgDkWGXKlNH69eudpt34HACQO5UtW1arV692OpNj5cqVCggIUNGiRSX97zpTH374oaMJldSYWrp0KdeXgtuiMQW3N27cOF2+fFlNmzbV8uXLdfjwYS1YsED333+/ihQp4nTtp5UrV+qdd97Rn3/+qfHjx2vOnDnq16+fJKlJkyaKjo7Www8/rIULF+rAgQNatWqVhgwZog0bNliVHgAgh+jTp4+mTJmi//73v9qzZ49Gjhypbdu2OZ22AQBwf3FxcSlOBe/Ro4cOHz6sPn36aNeuXfruu+80dOhQDRgwQB4e17+W58uXTxUqVNDMmTMdTah69epp06ZN+vPPPzliCm6LU/ng9kqXLq0NGzZo6NChatu2rU6fPq3Q0FA9/PDDGjp0qPLnz+8Y+8ILL2jDhg0aPny4AgMD9cEHH6hp06aSrp9q8dNPP2nIkCHq1q2bTpw4odDQUNWrV08hISFWpQcAyCE6duyo/fv368UXX9SlS5fUtm1bde3aVevWrbM6NABANlq6dKkqV67sNK179+766aefNHDgQFWsWFH58+dX9+7d9eqrrzqNq1+/vrZs2eJoTOXPn1/33HOPjh07pjJlymRXCkC2spn0XhUacHMlSpRQ//791b9/f6tD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f5YkXbp0SXv27FFkZGRmh5kj2e12p1+T0xIYGKjw8HD98ccfWR5T2bJltXv3bs2bN08LFizQ119/rU8++USvv/66hg8f7riYbqdOnRwXbrxRhQoVsjxOANZgn3/70rvPl6Rff/1V//zzjz7//HN9/vnnKebPnDlTDzzwQGaHKOn6FyBJ+v3331WpUqUsWUeS999/X127dtV3332nhQsXqm/fvho9erTWrFmjokWLKjExUTabTfPnz3d8cUoub968WRofgKxFTbl9GakpklS1alVFRUVp9uzZeuWVVzR79mwZYzLtbnw2my3Vi8knP8I3udT26TebnrTspO8i06dPV2hoaIpxN15IH66PvyjS7dq1a5Kkc+fOSZIiIiL0yy+/KD4+3unXjl27djnmJ9m2bZtGjBihbt26acuWLXr66af1+++/Ox3aKV3fCe3fv9/x64Yk/fnnn5LkdKeH5AoVKqQ8efJo9+7dKebt2rVLHh4ejq58ar+uZFRSXrt371ajRo2c5u3evdsp74xq1aqVJk+erNWrVys6Ovq2YktrOyTNT+Lv76927dqpXbt2unLlih599FGNGjVKgwcPVqFChRQQEKCEhAQ1adLktvMB4LrY51+Xlfv8mTNnqnDhwho/fnyKeXPnztU333yjiRMnys/PTxEREY5fkG+M4XY0b95cnp6emjFjhp588skMvz75dkl+hMKVK1cUExOTonaUL19e5cuX16uvvqpVq1apdu3amjhxokaOHKlSpUrJGKPIyEin9wIA90FNuS4ra0qSjh076rXXXtO2bds0a9YslS5dWtWrV3eKIb3fF26UL18+7d+/P8X0zDzKSpJKlSolSSpcuDDfRXIJTuVDuly9elULFy6Uj4+P4zDPFi1aKCEhQePGjXMa++GHH8pms6l58+aO13bt2lXh4eEaM2aMpk2bpmPHjun5559PdV3Jl2eM0bhx4+Tt7e04L/pGnp6eeuCBB/Tdd985HaZ77NgxzZo1S3Xq1HGcsuDv7y9JKW5lnRHVqlVT4cKFNXHiRF2+fNkxff78+dq5c6datmx528t+6aWX5O/vr6efflrHjh1LMX/fvn0aM2ZMmq9v0aKF1q1bp9WrVzumnT9/XpMnT1aJEiV0zz33SJJOnTrl9DofHx/dc889Msbo6tWr8vT01GOPPaavv/461SO4Tpw4cbspAnAB7PP/J6v2+RcvXtTcuXPVqlUrPf744ykevXv3Vnx8vL7//ntJ17f/mjVrtG7dOscyTpw4oZkzZ97W+osVK6ZnnnlGCxcu1Mcff5xifmJiot5//3399ddfqb6+SZMm8vHx0dixY51+PZ8yZYri4uIc2+Xs2bOOL6RJypcvLw8PD8f2fPTRR+Xp6anhw4en+CXeGJOiZgFwLdSU/8nK7xFJko6Oev3117Vly5YUR0ul9/tCakqVKqVdu3Y5fRfYunWr0yVBMkPTpk0VGBioN998U1evXk0xn+8i7ocjppCq+fPnO7rmx48f16xZs7Rnzx4NGjTIsXN+8MEH1bBhQw0ZMkQHDhxQxYoVtXDhQn333Xfq37+/o9M9cuRIbdmyRYsXL1ZAQIAqVKig119/Xa+++qoef/xxtWjRwrFeX19fLViwQF26dFHNmjU1f/58/fjjj3rllVdUqFChNOMdOXKkFi1apDp16qhnz57y8vLSpEmTdPnyZb3zzjuOcZUqVZKnp6fefvttxcXFyW63q1GjRipcuHC6t423t7fefvttdevWTfXr11eHDh107NgxjRkzRiVKlEizUKZHqVKlNGvWLLVr105ly5ZV586dde+99+rKlStatWqV5syZo65du6b5+kGDBmn27Nlq3ry5+vbtq/z58+u///2vYmJi9PXXXzsOBX7ggQcUGhqq2rVrKyQkRDt37tS4cePUsmVLx69Wb731lpYsWaKaNWvqmWee0T333KPTp09r06ZN+uWXX3T69OnbzhNAzsI+P21Ztc///vvvFR8fr9atW6c6/7777lOhQoU0c+ZMtWvXTi+99JKmT5+uZs2aqV+/fvL399fkyZMVERGhbdu23VYM77//vvbt26e+ffs6mmT58uXToUOHNGfOHO3atUvt27dP9bWFChXS4MGDNXz4cDVr1kytW7fW7t279cknn6h69erq1KmTpOunK/bu3Vtt2rTR3XffrWvXrmn69OmOH0Ck67Vv5MiRGjx4sA4cOKCHH35YAQEBiomJ0TfffKMePXroxRdfvK0cAWQ/akrasvJ7RJLIyEjVqlVL3333nSSlaEyl9/tCap566il98MEHatq0qbp3767jx49r4sSJKleuXKZeJD4wMFATJkzQk08+qSpVqqh9+/YqVKiQDh06pB9//FG1a9dO0dSEi8v2+wAiR0vtNq++vr6m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w3Xt2rUszxUA8D/nzp3TF198oeeee04tW7bUtGnTUox56623FBISooCAAHXv3l2XLl1ymn+rU/DWrVunN998U++//77effdd1apVSyVKlND999+vr7/+Wl26dEn1dYmJiRoxYoSKFi0qu92uSpUqacGCBY75V65cUe/evRUWFiZfX19FRERo9OjRjvmxsbF6+umnVahQIQUGBqpRo0baunVrxjYQACBNrVq1UqFChVLUjnPnzmnOnDnq3r27vv76a5UrV052u10lSpTQ+++/n+byDhw4IJvNpi1btjimxcbGymazOb7oL126VDabTT///LMqV64sPz8/NWrUSMePH9f8+fNVtmxZBQYG6oknntCFCxccy0lMTNTo0aMVGRkpPz8/VaxYUV999VVmbg7kUr1799bq1av1+eefa9u2bWrTpo2aNWumPXv2SJKqVq0qDw8PTZ06VQkJCYqLi9P06dPVpEkTeXt7p3s9NKbg1k6fPq0FCxaoV69e8vf3TzE/ODg4xbTz58+radOmypcvn9avX685c+bol19+Ue/evSVJ165d08MPP6z69etr27ZtWr16tXr06CGbzSbp+qG9nTt3Vr9+/bRjxw5NmjRJ06ZN06hRo7I0VwCAsy+//FJRUVEqU6aMOnXqpE8//VTGGKf5w4YN05tvvqkNGzYoLCxMn3zySYbWMXPmTOXNm1c9e/ZMdX5qdUaSxowZo/fff1/vvfeetm3bpqZNm6p169aOD3pjx47V999/ry+//FK7d+/WzJkzVaJECcfr27Rp4/iisnHjRlWpUkWNGzfm1EEAyCReXl7q3Lmzpk2b5lQ75syZo4SEBJUtW1Zt27ZV+/bt9fvvv2vYsGF67bXXUv0RJKOGDRumcePGadWqVTp8+LDatm2rjz76SLNmzdKPP/6ohQsX6uOPP3aMHz16tD777DNNnDhR27dv1/PPP69OnTpp2bJldxwLcq9Dhw5p6tSpmjNnjurWratSpUrpxRdfVJ06dTR16lRJUmRkpBYuXKhXXnlFdrtdwcHB+uuvv/Tll19mbGUGcGNr1641kszcuXNvOk6S+eabb4wxxkyePNnky5fPnDt3zjH/xx9/NB4eHubo0aPm1KlTRpJZunRpqstq3LixefPNN52mTZ8+3YSFhd1ZMgCADKlVq5b56KOPjDHGXL161RQsWNAsWbLEMT86Otr07NnT6TU1a9Y0FStWdDwfOnSo0/MbNW/e3FSoUOGWsdy4nPDwcDNq1CinMdWrV3fE06dPH9OoUSOTmJiYYlm//fabCQwMNJcuXXKaXqpUKTNp0qRbxgIASJ+dO3caSU61o27duqZTp07miSeeMPfff7/T+IEDB5p77rnH8TwiIsJ8+OGHxhhjYmJijCSzefNmx/wzZ844LX/JkiVGkvnll18cY0aPHm0kmX379jmmPfvss6Zp06bGGGMuXbpk8uTJY1atWuUUS/fu3U2HDh3uJH3kMsm/ExtjzLx584wk4+/v7/Tw8vIybdu2NcYY888//5jSpUubgQMHmk2bNplly5aZ+vXrm8aNG6f6GSYtXpnWTgNyIJPs14302rlzpypWrOh0hFXt2rWVmJio3bt3q169euratauaNm2q+++/X02aNFHbtm0VFhYmSdq6datWrlzpdIRUQkKCLl26pAsXLihPnjx3nhgA4KZ2796tdevW6ZtvvpF0/Zfvdu3aacqUKWrQoIGk6/v7f/3rX06vi46O1pIlS9K9ntupM2fPntWRI0dUu3Ztp+m1a9d2nI7XtWtX3X///SpTpoyaNWumVq1a6YEHHpB0vc6cO3cuxbWvLl68qH379mU4HgBA6qKiolSrVi19+umnatCggfbu3avffvtNI0aM0IABA/TQQw85ja9du7Y++ugjJSQkyNPT87bXm/zaVSEhIcqTJ49KlizpNG3dunWSpL179+rChQu6//77nZZx5coVVa5c+bZjAM6dOydPT09t3Lgxxfs5b968kqTx48crKChI77zzjmPejBkzVKxYMa1du1b33XdfutZFYwpurXTp0rLZbNq1a1emLnfq1Knq27evFixYoC+++EKvvvqqFi1apPvuu0/nzp3T8OHDU70Tga+vb6bGAQBI3ZQpU3Tt2jWFh4c7phljZLfbNW7cOAUFBWXKeu6++26tWLFCV69ezdC1FG6lSpUqiomJ0fz58/XLL7+obdu2atKkib766iudO3dOYWFhThcfTZLWqYMAgNvTvXt39enTR+PHj9fUqVNVqlQp1a9fP8PL8fC4fhWd5D9opHVx6OT1xGazpagvNptNiYmJkuS4Du6PP/6oIkWKOI2z2+0ZjhNIUrlyZSUkJOj48eOqW7duqmMuXLjgeG8nSWpiJb1H04NrTMGt5c+fX02bNtX4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6dNH+fLl09ChQ3XgwAF99NFH6t27t7744ovbzr1Pnz4KDQ3V8OHDtWbNGk2ePFnBwcFatWqVihcvrjfffFM//fST3n33Xd17773q3Lmz47XPPvus42/Wt29fxcTEaNy4cdq8ebNWrlwpb29vx9jdu3erQ4cOevbZZ/XMM8+oTJkyqcZz7tw51a1bVzt37tRTTz2lKlWq6OTJk/r+++/1119/ObYxAAAAAMBFGFhu6tSpRlKKh91uN9OmTXMa++233xpJZuTIkU7TH3/8cWOz2czevXsd0wYPHmw8PDzM8uXL/6+9e4/Sqiz/x3/NeYBhBhEBh5OIIoaIiEqYSBoKiqZmWn5I8FCKSqYpmlmYqaFmJpl5aH3CvmZpFoZLBA+AImmlKAIekOSUgqAZM/ABOc39+8PF8/MRVAiczcDrtdYsee5973tf156ZZ615u/d+0gMPPJAiIt1yyy15+w0ZMiRFRPr2t7+dG6urq0sDBw5MpaWl6Z133smNR0S66qqrcq9PPPHEVFpamt54443c2KJFi1LTpk3T4YcfnhvbcOzJkydv0fl47rnncmNr1qxJLVu2TPvtt19atWpVbvzhhx9OEZFGjBixUU/f+973/uvjfVRVVVXq0aNH7vXKlSs3mvOHP/whRUSaMmVKbuynP/1piog0b968vLnz589PRUVF6brrrssbnzlzZiouLt5ofHPq79evX6qrq8uNX3zxxamoqCgtW7YsN/bR7+EGHTp0SEOGDNlozf79++et2bt371RQUJCGDh2aG1u3bl1q27Zt6tu3b27s6aefThGR7r333rzjTJgwYaPxDh06pIhIEyZM+NS6RowYkSIijRkzZqO5H64TAACAhsGtfNuR2267LR5//PF4/PHH43e/+10cccQR8c1vfjPGjBmTm/PII49EUVFRXHjhhXn7XnLJJZFSyvsUvx/96EfRtWvXGDJkSJx//vnRt2/fjfbbYNiwYbl/FxQUxLBhw2LNmjXxxBNPbHL++vXr47HHHosTTzwx9txzz9z47rvvHv/zP/8TU6dOjdra2v/qPGzK888/H0uXLo3zzz8/ysvLc+MDBw6MLl26xLhx4zba57zzzttmx6+oqMj7dL4PP2vq/fffj3fffTc+//nPR0TECy+88KnrjRkzJurq6uLUU0+Nd999N/fVunXr2HvvvWPy5MlbXOM555wTBQUFudd9+vSJ9evXx4IFC7Z4rQ3OPvvsvDV79eoVKaU4++yzc2NFRUVx0EEHxdy5c3NjDzzwQFRVVcVRRx2V11/Pnj2joqJio/46duwY/fv3/9R6/vznP0f37t3jpJNO2mjbh+sEAACgYXAr33bkkEMOyXv49mmnnRY9evSIYcOGxXHHHRelpaWxYMGCqK6ujqZNm+btu+HWuA+HEKWlpfGb3/wmDj744CgvL4/Ro0dv8o/3wsLCvHApIqJz584REXnPQ/qwd955J1auXLnJW6723XffqKuri3/961/RtWvXzWv+U2zoa1PH69KlS0ydOjVvrLi4ONq2bbtNjh3xwS1kLVu2zL1+77334uqrr4777rsv97D2DWpqaj51vTlz5kRKKfbee+9Nbv/wbW6bq3379nmvd9lll4iIjZ7ptDVrVlVVRUREu3btNhr/8HHmzJkTNTU1eefswz56zjp27LhZ9bzxxhtx8sknb9ZcAAAAtn+Cqe1YYWFhHHHEETFq1KiYM2fOfxXyPProoxHxwVU9c+bM2ewAoKErKyuLwsJtc0Hgm2++GTU1NbHXXnvlxk499dR45plnYvjw4XHAAQdERUVF1NXVxYABA6Kuru5T16yrq4uCgoIYP3583vO+NqioqNjiOje1TkRs1kPsNzwMf3PX3NT4h49TV1cXLVu2jHvvvXeT+294ztYGPu0QAABg5ySY2s6tW7cuIj64YiciokOHDvHEE0/E8uXL866aeu2113LbN5gxY0b8+Mc/jjPPPDOmT58e3/zmN2PmzJm5q142qKuri7lz5+aukoqIeP311yPig09F25TddtstGjduHLNnz95o22uvvRaFhYW5q2q2xS1WG/qaPXt2HHnkkXnbZs+endf3tnbPPfdERORuNfvPf/4TEydOjKuvvjpGjBiRmzdnzpyN9v243jt16hQppejYsWPeef+s7bLLLrFs2bK8sTVr1sTixYu36XE6deoUTzzxRHzhC1/YpqFTp06dYtasWdtsPQAAALLlGVPbsbVr18Zjjz0WpaWluVv1jj322Fi/fn388pe/zJv785//PAoKCuKYY47J7XvGGWdEdXV1jBo1Ku6+++5YsmRJXHzxxZs81ofXSynFL3/5yygpKYkvfelLm5xfVFQURx99dIwdOzbvdr8lS5bE73//+zjssMOisrIyIiKaNGkSEbFRILIlDjrooGjZsmXccccdsXr16tz4+PHj49VXX42BAwf+12t/kkmTJsU111wTHTt2jEGDBkXE/3+10EevRLrllls22v/jev/KV74SRUVFcfXVV2+0Tkop/v3vf2+jDvJ16tQppkyZkjd21113fewVU/+tU089NdavXx/XXHPNRtvWrVv3X/8snHzyyfHSSy/Fgw8+uNG2zbkyDAAAgO2LK6a2I+PHj89d+bR06dL4/e9/H3PmzInvfe97uZDn+OOPjyOOOCKuvPLKmD9/fnTv3j0ee+yxGDt2bFx00UXRqVOniIi49tprY/r06TFx4sRo2rRp7L///jFixIj4wQ9+EF/96lfj2GOPzR23vLw8JkyYEEOGDIlevXrF+PHjY9y4cfH9739/o1uuPuzaa6+Nxx9/PA477LA4//zzo7i4OO68885YvXp13Hjjjbl5BxxwQBQVFcUNN9wQNTU1UVZWFkceeeTHPn9oU0pKSuKGG26IM888M/r27RunnXZaLFmyJEaNGhV77LHHxwZuW2LD+V+3bl0sWbIkJk2aFI8//nh06NAhHnroodxD1ysrK+Pwww+PG2+8MdauXRtt2rSJxx57LObNm7fRmj179oyIiCuvvDK+/vWvR0lJSRx//PHRqVOnuPbaa+OKK66I+fPnx4knnhhNmzaNefPmxYMPPhjnnHNOXHrppVvd00d985vfjKFDh8bJJ58cRx11VLz00kvx6KOPRosWLbbpcfr27RvnnntujBw5MqZPnx5HH310lJSUxJw5c+KBBx6IUaNGxVe/+tUtXnf48OHxpz/9KU455ZQ466yzomfPnvHee+/FQw89FHfccUd07959m/YBAADAZyyjTwPkQ0aPHp0iIu+rvLw8HXDAAen2229PdXV1efOXL1+eLr744lRdXZ1KSkrS3nvvnX7605/m5k2bNi0VFxenb3/723n7rVu3Lh188MGpuro6/ec//0kppTRkyJDUpEmT9MYbb6Sjjz46NW7cOLVq1SpdddVVaf369Xn7R0S66qqr8sZeeOGF1L9//1RRUZEaN26cjjjiiPTMM89s1OOvf/3rtOeee6aioqIUEWny5Mmfej6ee+65jbbdf//9qUePHqmsrCw1b948DRo0KL355pt5czb0tLk+ev5LS0tT69at01FHHZVGjRqVamtrN9rnzTffTCeddFJq1qxZqqqqSqecckpatGjRJs/RNddck9q0aZMKCwtTRKR58+bltv35z39Ohx12WGrSpElq0qRJ6tKlS7rgggvS7Nmzt7j+j56vyZMnb3Su169fny6//PLUokWL1Lhx49S/f//0z3/+M3Xo0CENGTLkU9e86qqrUkSkd955J2/84875XXfdlXr27JkaNWqUmjZtmrp165Yuu+yytGjRotycDh06pIEDB26yt4/WlVJK//73v9OwYcNSmzZtUmlpaWrbtm0aMmRIevfddz/pNAEAALAdKkjJ/S87szPOOCP+9Kc/5Z5hBQAAAFBfPGMKAAAAgEx4xhRsp1atWhU1NTWfOKd58+ZRWlpaTxUBAADAtiWYgu3U/fffH2eeeeYnzpk8eXJ88YtfrJ+CAAAAYBvzjCnYTi1evDhefvnlT5zTs2fP2GWXXeqpIgAAANi2BFMAAAAAZMLDzwEAAADIxFY/Y6quri4WLVoUTZs2jYKCgm1REwD1KKUUy5cvj+rq6igs9P8rAACA+rPVwdSiRYuiXbt226IWADL0r3/9K9q2bZt1GQAAwE5kq4Oppk2bRsQHf9BUVlZudUEA1K/a2tpo165d7v0cAACgvmx1MLXh9r3KykrBFEAD5nZsAACgvnmYCAAAAACZEEwBAAAAkAnBFAAAAACZEEwBAAAAkAnBFAAAAACZEEwBAAAAkAnBFAAAAACZEEwBAAAAkAnBFAAAAACZEEwBAAAAkAnBFAAAAACZEEwBAAAAkAnBFAAAAACZEEwBAAAAkInirAtg21uyZEnU1NRkXQZ8rKqqqmjVqlXWZQAAAJAxwdQOZsmSJfGN0wfH2jWrsy4FPlZJaVn87p7/J5wCAADYyQmmdjA1NTWxds3qWLVn36grr8q6nB1C4apl0WjelFjV8fCoa9Qs63IavML3ayLmPhU1NTWCKQAAgJ2cYGoHVVdeFXVNWmRdxg6lrlEz5xQAAAC2IQ8/BwAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMiGYAgAAACATgikAAAAAMrFdBFPvv/9+vP766/H+++9nXQpAg+L9EwAAaMi2i2Bq4cKFcc4558TChQuzLgWgQfH+CQAANGTbRTAFAAAAwM5HMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJgRTAAAAAGRCMAUAAABAJoq3dIfVq1fH6tWrc69ra2u3WTELFizYZmvtrJxDGgo/q9uG8wgAADRkWxxMjRw5Mq6++urPopa47rrrPpN1ge2P33cAAAC2OJi64oor4rvf/W7udW1tbbRr126bFHPllVdGhw4dtslaO6sFCxb4g58Gwe/7tuF3HgAAaMi2OJgqKyuLsrKyz6KW6NChQ3Tu3PkzWRvYvvh9BwAAwMPPAQAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATAimAAAAAMiEYAoAAACATGwXwVT79u3jrrvuivbt22ddCkCD4v0TAABoyIqzLiAiory8PDp37px1GQANjvdPAACgIdsurpgCAAAAYOcjmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE4IpAAAAADIhmAIAAAAgE8VZF8Bno/D9mqxL2GEUrlqW91+2jp9NAAAANhBM7WCqqqqipLQsYu5TWZeyw2k0b0rWJewwSkrLoqqqKusyAAAAyJhgagfTqlWr+N09/y9qalyVwvarqqoqWrVqlXUZAAAAZEwwtQNq1aqVP/oBAACA7Z6HnwMAAACQCcEUAAAAAJkQTAEAAACQCcEUAAAAAJkQTAEAAACQCcEUAAAAAJkQTAEAAACQCcEUAAAAAJkQTAEAAACQCcEUAAAAAJkQTAEAAACQCcEUAAAAAJkQTAEAAACQCcEUAAAAAJkQTAEAAACQieKtXSClFBERtbW1W10MAPVvw/v3hvdzAACA+rLVwdTy5csjIqJdu3ZbXQwA2Vm+fHlUVVVlXQYAALATKUhb+b/I6+rqYtGiRdG0adMoKCj4xLm1tbXRrl27+Ne//hWVlZVbc9jt1s7QY4Q+dyQ7Q48R+vwkKaVYvnx5VFdXR2GhO7wBAID6s9VXTBUWFkbbtm23aJ/Kysod+g/DiJ2jxwh97kh2hh4j9PlxXCkFAABkwf8aBwAAACATgikAAAAAMlGvwVRZWVlcddVVUVZWVp+HrVc7Q48R+tyR7Aw9RugTAABge7TVDz8HAAAAgP+GW/kAAAAAyIRgCgAAAIBMCKYAAAAAyMQWBVPr16+PH/7wh9GxY8do1KhRdOrUKa655pr48GOqUkoxYsSI2H333aNRo0bRr1+/mDNnTt467733XgwaNCgqKyujWbNmcfbZZ8eKFSvy5syYMSP69OkT5eXl0a5du7jxxhu3os1PNmXKlDj++OOjuro6CgoK4i9/+Uve9vrs6YEHHoguXbpEeXl5dOvWLR555JF66XPt2rVx+eWXR7du3aJJkyZRXV0dgwcPjkWLFjWoPj/te/lhQ4cOjYKCgrjlllvyxrf3HiM2r89XX301vvzlL0dVVVU0adIkDj744Fi4cGFu+/vvvx8XXHBB7LrrrlFRUREnn3xyLFmyJG+NhQsXxsCBA6Nx48bRsmXLGD58eKxbty5vzpNPPhkHHnhglJWVxV577RV33313vfW5YsWKGDZsWLRt2zYaNWoUn/vc5+KOO+7Im7O99zly5Mg4+OCDo2nTptGyZcs48cQTY/bs2Zn1cNttt8Uee+wR5eXl0atXr/jHP/6xTfoEAADYpLQFrrvuurTrrrumhx9+OM2bNy898MADqaKiIo0aNSo35/rrr09VVVXpL3/5S3rppZfSl7/85dSxY8e0atWq3JwBAwak7t27p7/97W/p6aefTnvttVc67bTTcttrampSq1at0qBBg9KsWbPSH/7wh9SoUaN05513bkm5m+2RRx5JV155ZRozZkyKiPTggw/mba+vnv7617+moqKidOONN6ZXXnkl/eAHP0glJSVp5syZn3mfy5YtS/369Uv3339/eu2119Kzzz6bDjnkkNSzZ8+8Nbb3Pj/te7nBmDFjUvfu3VN1dXX6+c9/3qB63Jw+//nPf6bmzZun4cOHpxdeeCH985//TGPHjk1LlizJzRk6dGhq165dmjhxYnr++efT5z//+XTooYfmtq9bty7tt99+qV+/funFF19MjzzySGrRokW64oorcnPmzp2bGjdunL773e+mV155Jd16662pqKgoTZgwoV76/Na3vpU6deqUJk+enObNm5fuvPPOVFRUlMaOHdtg+uzfv38aPXp0mjVrVpo+fXo69thjU/v27dOKFSvqvYf77rsvlZaWpt/85jfp5ZdfTt/61rdSs2bN8n5uAAAAtqUtCqYGDhyYzjrrrLyxr3zlK2nQoEEppZTq6upS69at009/+tPc9mXLlqWysrL0hz/8IaWU0iuvvJIiIj333HO5OePHj08FBQXprbfeSiml9Ktf/SrtsssuafXq1bk5l19+edpnn322sL0t99E/fuuzp1NPPTUNHDgwr55evXqlc889d5v2mNLGfW7KP/7xjxQRacGCBSmlhtfnx/X45ptvpjZt2qRZs2alDh065AVTDa3HlDbd59e+9rX0jW9842P3WbZsWSopKUkPPPBAbuzVV19NEZGeffbZlNIHoVBhYWF6++23c3Nuv/32VFlZmev9sssuS127dt3o2P3799/atjayqT67du2afvzjH+eNHXjggenKK69MKTXMPpcuXZoiIj311FP13sMhhxySLrjggtzr9evXp+rq6jRy5Mht3icAAEBKKW3RrXyHHnpoTJw4MV5//fWIiHjppZdi6tSpccwxx0RExLx58+Ltt9+Ofv365fapqqqKXr16xbPPPhsREc8++2w0a9YsDjrooNycfv36RWFhYfz973/PzTn88MOjtLQ0N6d///4xe/bs+M9//rMlJW+1+uzp2WefzTvOhjkbjlPfampqoqCgIJo1axYRO0afdXV1cfrpp8fw4cOja9euG23fUXocN25cdO7cOfr37x8tW7aMXr165d0GN23atFi7dm1ejV26dIn27dvn/Vx369YtWrVqlddDbW1tvPzyy7k5Wf7MHnroofHQQw/FW2+9FSmlmDx5crz++utx9NFHR0TD7LOmpiYiIpo3b16vPaxZsyamTZuWN6ewsDD69euX2XsQAACw49uiYOp73/tefP3rX48uXbpESUlJ9OjRIy666KIYNGhQRES8/fbbERF5fxxteL1h29tvvx0tW7bM215cXBzNmzfPm7OpNT58jPpSnz193Jz67jnig2faXH755XHaaadFZWVlrr6G3ucNN9wQxcXFceGFF25y+47Q49KlS2PFihVx/fXXx4ABA+Kxxx6Lk046Kb7yla/EU089lauvtLQ0Fzpuqsat6bO2tjZWrVr1WbSX59Zbb43Pfe5z0bZt2ygtLY0BAwbEbbfdFocffniuvobUZ11dXVx00UXxhS98Ifbbb7967eHdd9+N9evXbzfvQQAAwM6heEsm//GPf4x77703fv/730fXrl1j+vTpcdFFF0V1dXUMGTLks6qRerZ27do49dRTI6UUt99+e9blbDPTpk2LUaNGxQsvvBAFBQVZl/OZqauri4iIE044IS6++OKIiDjggAPimWeeiTvuuCP69u2bZXnb1K233hp/+9vf4qGHHooOHTrElClT4oILLojq6uqNrg5qCC644IKYNWtWTJ06NetSAAAA6sUWXTE1fPjw3FVT3bp1i9NPPz0uvvjiGDlyZEREtG7dOiJio0+LWrJkSW5b69atY+nSpXnb161bF++9917enE2t8eFj1Jf67Onj5tRnzxtCqQULFsTjjz+eu1pqQ30Nuc+nn346li5dGu3bt4/i4uIoLi6OBQsWxCWXXBJ77LFHrraG3GNERIsWLaK4uDg+97nP5Y3vu+++uU/la926daxZsyaWLVv2sTVuTZ+VlZXRqFGjbdbTpqxatSq+//3vx8033xzHH3987L///jFs2LD42te+FjfddFOuvobS57Bhw+Lhhx+OyZMnR9u2bXPj9dVDixYtoqioKPP3IAAAYOeyRcHUypUro7Awf5eioqLcFRodO3aM1q1bx8SJE3Pba2tr4+9//3v07t07IiJ69+4dy5Yti2nTpuXmTJo0Kerq6qJXr165OVOmTIm1a9fm5jz++OOxzz77xC677LKFLW6d+uypd+/eecfZMGfDcT5rG0KpOXPmxBNPPBG77rpr3vaG3ufpp58eM2bMiOnTp+e+qqurY/jw4fHoo4/uED1GRJSWlsbBBx8cs2fPzht//fXXo0OHDhER0bNnzygpKcmrcfbs2bFw4cK8n+uZM2fmBXUbwsoNoVeWfa5duzbWrl37ie9JDaHPlFIMGzYsHnzwwZg0aVJ07Ngxb3t99VBaWho9e/bMm1NXVxcTJ06st/cgAABgJ7QlT0ofMmRIatOmTXr44YfTvHnz0pgxY1KLFi3SZZddlptz/fXXp2bNmqWxY8emGTNmpBNOOCF17NgxrVq1KjdnwIABqUePHunvf/97mjp1atp7773Taaedltu+bNmy1KpVq3T66aenWbNmpfvuuy81btw43XnnnVv7sPdNWr58eXrxxRfTiy++mCIi3XzzzenFF1/MfRpdffX017/+NRUXF6ebbropvfrqq+mqq65KJSUlaebMmZ95n2vWrElf/vKXU9u2bdP06dPT4sWLc18f/vS57b3PT/teftRHP5WvIfS4OX2OGTMmlZSUpLvuuivNmTMn3XrrramoqCg9/fTTuTWGDh2a2rdvnyZNmpSef/751Lt379S7d+/c9nXr1qX99tsvHX300Wn69OlpwoQJabfddktXXHFFbs7cuXNT48aN0/Dhw9Orr76abrvttlRUVJQmTJhQL3327ds3de3aNU2ePDnNnTs3jR49OpWXl6df/epXDabP8847L1VVVaUnn3wy7/du5cqV9d7Dfffdl8rKytLdd9+dXnnllXTOOeekZs2a5X3aHwAAwLa0RcFUbW1t+s53vpPat2+fysvL05577pmuvPLKvOCirq4u/fCHP0ytWrVKZWVl6Utf+lKaPXt23jr//ve/02mnnZYqKipSZWVlOvPMM9Py5cvz5rz00kvpsMMOS2VlZalNmzbp+uuv34o2P9nkyZNTRGz0NWTIkHrv6Y9//GPq3LlzKi0tTV27dk3jxo2rlz7nzZu3yW0RkSZPntxg+vy07+VHbSqY2t57TGnz+vzf//3ftNdee6Xy8vLUvXv39Je//CVvjVWrVqXzzz8/7bLLLqlx48bppJNOSosXL86bM3/+/HTMMcekRo0apRYtWqRLLrkkrV27dqNaDjjggFRaWpr23HPPNHr06Hrrc/HixemMM85I1dXVqby8PO2zzz7pZz/7Waqrq2swfX7c792H16/PHm699dbUvn37VFpamg455JD0t7/9bZv0CQAAsCkFKaX0WV2NBQAAAAAfZ4ueMQUAAAAA24pgCgAAAIBMCKYAAAAAyIRgCgAAAIBMCKYAAAAAyIRgCgAAAIBMCKYAAAAAyIRgCgAAAIBMCKaggZo/f34UFBTE9OnTsy4FAAAA/iuCKerNGWecEQUFBVFQUBAlJSXRqlWrOOqoo+I3v/lN1NXVbfY6d999dzRr1uyzK7SBaNeuXSxevDj222+/rEsBAACA/4pgino1YMCAWLx4ccyfPz/Gjx8fRxxxRHznO9+J4447LtatW5d1eQ3GmjVroqioKFq3bh3FxcVZlwMAAAD/FcEU9aqsrCxat24dbdq0iQMPPDC+//3vx9ixY2P8+PFx9913R0TEzTffHN26dYsmTZpEu3bt4vzzz48VK1ZERMSTTz4ZZ555ZtTU1OSuvvrRj34UERGrV6+OSy+9NNq0aRNNmjSJXr16xZNPPrlZdW24CuvRRx+NfffdNyoqKnIh2gZf/OIX46KLLsrb78QTT4wzzjgj93qPPfaIa6+9NgYPHhwVFRXRoUOHeOihh+Kdd96JE044ISoqKmL//feP559/Pm+dqVOnRp8+faJRo0bRrl27uPDCC+P//u//8ta95pprYvDgwVFZWRnnnHPOJm/le/nll+O4446LysrKaNq0afTp0yfeeOONzToHAAAAUN8EU2TuyCOPjO7du8eYMWMiIqKwsDB+8YtfxMsvvxy//e1vY9KkSXHZZZdFRMShhx4at9xyS1RWVsbixYtj8eLFcemll0ZExLBhw+LZZ5+N++67L2bMmBGnnHJKDBgwIObMmbNZdaxcuTJuuummuOeee2LKlCmxcOHC3Npb4uc//3l84QtfiBdffDEGDhwYp59+egwePDi+8Y1vxAsvvBCdOnWKwYMHR0opIiLeeOONGDBgQJx88skxY8aMuP/++2Pq1KkxbNiwvHVvuumm6N69e7z44ovxwx/+cKPjvvXWW3H44YdHWVlZTJo0KaZNmxZnnXWWK9EAAADYbrkHiO1Cly5dYsaMGREReVclbbgCaejQofGrX/0qSktLo6qqKgoKCqJ169a5eQsXLozRo0fHwoULo7q6OiIiLr300pgwYUKMHj06fvKTn3xqDWvXro077rgjOnXqFBEfBF0//vGPt7iXY489Ns4999yIiBgxYkTcfvvtcfDBB8cpp5wSERGXX3559O7dO5YsWRKtW7eOkSNHxqBBg3J977333vGLX/wi+vbtG7fffnuUl5dHxAcB3iWXXJI7zvz58/OOe9ttt0VVVVXcd999UVJSEhERnTt33uL6AQAAoL4IptgupJSioKAgIiKeeOKJGDlyZLz22mtRW1sb69ati/fffz9WrlwZjRs33uT+M2fOjPXr128UxKxevTp23XXXzaqhcePGuVAqImL33XePpUuXbnEv+++/f+7frVq1ioiIbt26bTS2dOnSaN26dbz00ksxY8aMuPfee3NzUkpRV1cX8+bNi3333TciIg466KBPPO706dOjT58+uVAKAAAAtneCKbYLr776anTs2DHmz58fxx13XJx33nlx3XXXRfPmzWPq1Klx9tlnx5o1az42mFqxYkUUFRXFtGnToqioKG9bRUXFZtXw0UCnoKAgd7tdxAe3GH74dcQHV1l90jobwrZNjW34JMIVK1bEueeeGxdeeOFGa7Vv3z737yZNmnxi/Y0aNfrE7QAAALC9EUyRuUmTJsXMmTPj4osvjmnTpkVdXV387Gc/i8LCDx6B9sc//jFvfmlpaaxfvz5vrEePHrF+/fpYunRp9OnT5zOpc7fddst7GPr69etj1qxZccQRR2zVugceeGC88sorsddee23VOvvvv3/89re/jbVr17pqCgAAgAbBw8+pV6tXr46333473nrrrXjhhRfiJz/5SZxwwglx3HHHxeDBg2OvvfaKtWvXxq233hpz586Ne+65J+644468NfbYY49YsWJFTJw4Md59991YuXJldO7cOQYNGhSDBw+OMWPGxLx58+If//hHjBw5MsaNG7dNaj/yyCNj3LhxMW7cuHjttdfivPPOi2XLlm31updffnk888wzMWzYsJg+fXrMmTMnxo4du9HDzz/NsGHDora2Nr7+9a/H888/H3PmzIl77rknZs+evdU1AgAAwGdBMEW9mjBhQuy+++6xxx57xIABA2Ly5Mnxi1/8IsaOHRtFRUXRvXv3uPnmm+OGG26I/fbbL+69994YOXJk3hqHHnpoDB06NL72ta/FbrvtFjfeeGNERIwePToGDx4cl1xySeyzzz5x4oknxnPPPZd3O9zWOOuss2LIkCExePDg6Nu3b+y5555bfbVUxAdXOj311FPx+uuvR58+faJHjx4xYsSI3EPcN9euu+4akyZNihUrVkTfvn2jZ8+e8etf/9rVUwAAAGy3CtJHH5oDAAAAAPXAFVMAAAAAZEIwxU7hmGOOiYqKik1+/eQnP8m6PAAAANgpuZWPncJbb70Vq1at2uS25s2bR/Pmzeu5IgAAAEAwBQAAAEAm3MoHAAAAQCYEUwAAAABkQjAFAAAAQCYEUwAAAABkQjAFAAAAQCYEUwAAAABkQjAFAAAAQCYEUwAAAABk4v8DK6H9Ju4b5Y4AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Date' и 'Date_numeric'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Open' и 'High'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Open' и 'Low'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Open' и 'Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Open' и 'Adj Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'High' и 'Open'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'High' и 'Low'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'High' и 'Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'High' и 'Adj Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Low' и 'Open'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Low' и 'High'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Low' и 'Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Low' и 'Adj Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Close' и 'Open'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Close' и 'High'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Close' и 'Low'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Close' и 'Adj Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Adj Close' и 'Open'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Adj Close' и 'High'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Adj Close' и 'Low'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Adj Close' и 'Close'\n", "Просачивание данных: Высокая корреляция (1.00) между столбцами 'Date_numeric' и 'Date'\n", "Index(['Date', 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume',\n", " 'Date_numeric', 'log_close', 'log_volume', 'Close_binned'],\n", " dtype='object')\n", "Обучающая выборка: (4821, 11)\n", "Close\n", "0.765625 14\n", "0.750000 12\n", "0.789063 11\n", "0.882813 10\n", "0.703125 10\n", " ..\n", "91.949997 1\n", "48.685001 1\n", "103.870003 1\n", "2.414063 1\n", "4.280000 1\n", "Name: count, Length: 3678, dtype: int64\n", "Контрольная выборка: (1607, 11)\n", "Close\n", "0.750000 6\n", "0.796875 5\n", "3.320313 4\n", "0.835938 4\n", "0.601563 4\n", " ..\n", "0.414063 1\n", "111.070000 1\n", "11.790000 1\n", "59.610001 1\n", "2.472656 1\n", "Name: count, Length: 1438, dtype: int64\n", "Тестовая выборка: (1607, 11)\n", "Close\n", "0.750000 6\n", "0.765625 6\n", "3.000000 4\n", "0.601563 4\n", "0.707031 4\n", " ..\n", "98.599998 1\n", "56.110001 1\n", "0.621094 1\n", "21.740000 1\n", "98.000000 1\n", "Name: count, Length: 1444, dtype: int64\n", "Обучающая выборка после undersampling: (4773, 11)\n", "Close\n", "0.765625 14\n", "0.750000 12\n", "0.789063 11\n", "0.882813 10\n", "0.703125 10\n", " ..\n", "98.230003 1\n", "27.315001 1\n", "8.995000 1\n", "81.930000 1\n", "12.357500 1\n", "Name: count, Length: 3641, dtype: int64\n" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "from sklearn.feature_selection import mutual_info_regression\n", "from sklearn.model_selection import train_test_split\n", "from imblearn.over_sampling import ADASYN\n", "from imblearn.under_sampling import RandomUnderSampler\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "df = pd.read_csv(\"data/Coffe.csv\")\n", "print(df.columns)\n", "\n", "df['Date'] = pd.to_datetime(df['Date'])\n", "df['Date_numeric'] = (df['Date'] - pd.Timestamp('1970-01-01')).dt.days\n", "print(df['Date_numeric'])\n", "\n", "noisy_features = []\n", "for col in df.columns:\n", " if df[col].isnull().sum() / len(df) > 0.1: \n", " noisy_features.append(col)\n", "print(f\"Зашумленные столбцы: {noisy_features}\")\n", " \n", "skewness = df.select_dtypes(include=[np.number]).skew()\n", "print(f\"Смещение: {skewness}\")\n", "\n", "skewed_features = skewness[abs(skewness) > 1].index.tolist()\n", "print(f\"Сильно смещенные столбцы: {skewed_features}\")\n", "\n", "for col in df.select_dtypes(include=['number']).columns:\n", " if col == 'id':\n", " continue\n", " Q1 = df[col].quantile(0.25)\n", " Q3 = df[col].quantile(0.75)\n", " IQR = Q3 - Q1\n", " lower_bound = Q1 - 1.5 * IQR\n", " upper_bound = Q3 + 1.5 * IQR\n", " outliers = df[col][(df[col] < lower_bound) | (df[col] > upper_bound)]\n", " print(f\"Выбросы в столбце '{col}':\\n{outliers}\\n\")\n", "\n", "numeric_cols = df.select_dtypes(include=['number']).columns\n", "numeric_cols = [col for col in numeric_cols if col != 'id']\n", "\n", "plt.figure(figsize=(12, 8))\n", "\n", "for i, col in enumerate(numeric_cols, 1):\n", " plt.subplot(len(numeric_cols) // 3 + 1, 3, i) \n", " sns.boxplot(data=df, x=col)\n", " plt.title(f'Boxplot for {col}')\n", "\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "if len(df.columns) >= 2:\n", " for col1 in df.columns:\n", " for col2 in df.columns:\n", " if col1 != col2:\n", " correlation = df[col1].corr(df[col2])\n", " if abs(correlation) > 0.9:\n", " print(f\"Просачивание данных: Высокая корреляция ({correlation:.2f}) между столбцами '{col1}' и '{col2}'\")\n", "\n", "df['log_close'] = np.log(df['Close'] + 1)\n", "df['log_volume'] = np.log(df['Volume'] + 1)\n", "\n", "def split_stratified_into_train_val_test(\n", " df_input,\n", " stratify_colname=\"y\",\n", " frac_train=0.6,\n", " frac_val=0.15,\n", " frac_test=0.25,\n", " random_state=None,\n", "):\n", " if frac_train + frac_val + frac_test != 1.0:\n", " raise ValueError(\n", " \"fractions %f, %f, %f do not add up to 1.0\"\n", " % (frac_train, frac_val, frac_test)\n", " )\n", "\n", " if stratify_colname not in df_input.columns:\n", " raise ValueError(\"%s is not a column in the dataframe\" % (stratify_colname))\n", "\n", " X = df_input \n", " y = df_input[\n", " [stratify_colname]\n", " ] \n", "\n", " df_train, df_temp, y_train, y_temp = train_test_split(\n", " X, y, stratify=y, test_size=(1.0 - frac_train), random_state=random_state\n", " )\n", "\n", " relative_frac_test = frac_test / (frac_val + frac_test)\n", " df_val, df_test, y_val, y_test = train_test_split(\n", " df_temp,\n", " y_temp,\n", " stratify=y_temp,\n", " test_size=relative_frac_test,\n", " random_state=random_state,\n", " )\n", "\n", " assert len(df_input) == len(df_train) + len(df_val) + len(df_test)\n", "\n", " return df_train, df_val, df_test\n", "\n", "bins = [df['Close'].min(), df['Close'].quantile(0.33), df['Close'].quantile(0.66), df['Close'].max()]\n", "labels = ['Low', 'Medium', 'High']\n", "df['Close_binned'] = pd.cut(df['Close'], bins=bins, labels=labels)\n", "df = df.dropna()\n", "# Now stratify using the binned values\n", "df_train, df_val, df_test = split_stratified_into_train_val_test(\n", " df, stratify_colname=\"Close_binned\", frac_train=0.60, frac_val=0.20, frac_test=0.20\n", ")\n", "\n", "print(df_train.columns) \n", " \n", "print(\"Обучающая выборка: \", df_train.shape)\n", "print(df_train.Close.value_counts()) \n", "\n", "print(\"Контрольная выборка: \", df_val.shape)\n", "print(df_val.Close.value_counts())\n", "\n", "print(\"Тестовая выборка: \", df_test.shape)\n", "print(df_test.Close.value_counts())\n", "\n", "rus = RandomUnderSampler(random_state=42)\n", "X_resampled, y_resampled = rus.fit_resample(df_train, df_train[\"Close_binned\"])\n", "df_train_rus = pd.DataFrame(X_resampled)\n", "print(\"Обучающая выборка после undersampling: \", df_train_rus.shape)\n", "print(df_train_rus.Close.value_counts())\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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 }