Diff of /notebook/LightGBM.ipynb [000000] .. [361b83]

Switch to unified view

a b/notebook/LightGBM.ipynb
1
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"LightGBM K-Fold.ipynb","provenance":[],"collapsed_sections":[],"machine_shape":"hm"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"},"accelerator":"GPU"},"cells":[{"cell_type":"markdown","metadata":{"id":"ogTI9mAMbs2c"},"source":["# Import thư viện"]},{"cell_type":"code","source":["from google.colab import drive\n","drive.mount('/content/drive')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"aCFacp4jz9Vc","executionInfo":{"status":"ok","timestamp":1639730537403,"user_tz":-420,"elapsed":17861,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"2e5b3b31-aeab-4528-d609-30c70e34faf2"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive\n"]}]},{"cell_type":"code","metadata":{"id":"h1mxyZ1fNx5Q"},"source":["import pandas as pd\n","from sklearn.preprocessing import StandardScaler\n","from sklearn.model_selection import train_test_split\n","from sklearn.metrics import accuracy_score\n","from sklearn.model_selection import cross_val_score\n","from numpy import mean\n","from numpy import std\n","import numpy as np\n","import matplotlib.pyplot as plt\n","from sklearn.ensemble import GradientBoostingClassifier\n","# from xgboost import XGBClassifier\n","# from xgboost import XGBRegressor\n","\n","from lightgbm import LGBMRegressor\n","import seaborn as sns\n","from sklearn.model_selection import KFold, GridSearchCV, cross_val_score, cross_val_predict\n"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"kMG58LYCt-In"},"source":["# Đọc dữ liệu từ file CSV"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":204},"id":"a11fo5yUh0sk","executionInfo":{"status":"ok","timestamp":1639730547264,"user_tz":-420,"elapsed":8485,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"3dca72c4-d954-467c-a93f-145bb55b4221"},"source":["dataset = 'drive/MyDrive/COURSES/CS116/XGBoost/'\n","df_train = pd.read_csv(dataset + 'train.csv', sep=\",\")\n","df_test = pd.read_csv(dataset + 'test.csv', sep=\",\")\n","df_train.head()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","  <div id=\"df-9afa5658-8a97-4817-babf-0be6ecf5e4cb\">\n","    <div class=\"colab-df-container\">\n","      <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>id</th>\n","      <th>breath_id</th>\n","      <th>R</th>\n","      <th>C</th>\n","      <th>time_step</th>\n","      <th>u_in</th>\n","      <th>u_out</th>\n","      <th>pressure</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>1</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.000000</td>\n","      <td>0.083334</td>\n","      <td>0</td>\n","      <td>5.837492</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>2</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.033652</td>\n","      <td>18.383041</td>\n","      <td>0</td>\n","      <td>5.907794</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>3</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.067514</td>\n","      <td>22.509278</td>\n","      <td>0</td>\n","      <td>7.876254</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>4</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.101542</td>\n","      <td>22.808822</td>\n","      <td>0</td>\n","      <td>11.742872</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>5</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.135756</td>\n","      <td>25.355850</td>\n","      <td>0</td>\n","      <td>12.234987</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>\n","      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9afa5658-8a97-4817-babf-0be6ecf5e4cb')\"\n","              title=\"Convert this dataframe to an interactive table.\"\n","              style=\"display:none;\">\n","        \n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","       width=\"24px\">\n","    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n","    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n","  </svg>\n","      </button>\n","      \n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      flex-wrap:wrap;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","      <script>\n","        const buttonEl =\n","          document.querySelector('#df-9afa5658-8a97-4817-babf-0be6ecf5e4cb button.colab-df-convert');\n","        buttonEl.style.display =\n","          google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","        async function convertToInteractive(key) {\n","          const element = document.querySelector('#df-9afa5658-8a97-4817-babf-0be6ecf5e4cb');\n","          const dataTable =\n","            await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                     [key], {});\n","          if (!dataTable) return;\n","\n","          const docLinkHtml = 'Like what you see? Visit the ' +\n","            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","            + ' to learn more about interactive tables.';\n","          element.innerHTML = '';\n","          dataTable['output_type'] = 'display_data';\n","          await google.colab.output.renderOutput(dataTable, element);\n","          const docLink = document.createElement('div');\n","          docLink.innerHTML = docLinkHtml;\n","          element.appendChild(docLink);\n","        }\n","      </script>\n","    </div>\n","  </div>\n","  "],"text/plain":["   id  breath_id   R   C  time_step       u_in  u_out   pressure\n","0   1          1  20  50   0.000000   0.083334      0   5.837492\n","1   2          1  20  50   0.033652  18.383041      0   5.907794\n","2   3          1  20  50   0.067514  22.509278      0   7.876254\n","3   4          1  20  50   0.101542  22.808822      0  11.742872\n","4   5          1  20  50   0.135756  25.355850      0  12.234987"]},"metadata":{},"execution_count":4}]},{"cell_type":"markdown","source":["# Phân tích dữ liệu"],"metadata":{"id":"JkVIsVQjpfR0"}},{"cell_type":"code","source":["df_train.info()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"46295yabpdTC","executionInfo":{"status":"ok","timestamp":1639730547267,"user_tz":-420,"elapsed":21,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"08bfc83a-676c-4421-8d0a-d28a113ce320"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["<class 'pandas.core.frame.DataFrame'>\n","RangeIndex: 6036000 entries, 0 to 6035999\n","Data columns (total 8 columns):\n"," #   Column     Dtype  \n","---  ------     -----  \n"," 0   id         int64  \n"," 1   breath_id  int64  \n"," 2   R          int64  \n"," 3   C          int64  \n"," 4   time_step  float64\n"," 5   u_in       float64\n"," 6   u_out      int64  \n"," 7   pressure   float64\n","dtypes: float64(3), int64(5)\n","memory usage: 368.4 MB\n"]}]},{"cell_type":"code","source":["df_train.describe()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":297},"id":"vq1Te91ppo0u","executionInfo":{"status":"ok","timestamp":1639730548292,"user_tz":-420,"elapsed":1037,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"91307b90-33bd-4ddf-d022-20e0fd8acf90"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","  <div id=\"df-8b5aee48-86b0-48dc-b317-83bdc398ef2f\">\n","    <div class=\"colab-df-container\">\n","      <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>id</th>\n","      <th>breath_id</th>\n","      <th>R</th>\n","      <th>C</th>\n","      <th>time_step</th>\n","      <th>u_in</th>\n","      <th>u_out</th>\n","      <th>pressure</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>count</th>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","      <td>6.036000e+06</td>\n","    </tr>\n","    <tr>\n","      <th>mean</th>\n","      <td>3.018000e+06</td>\n","      <td>6.283886e+04</td>\n","      <td>2.703618e+01</td>\n","      <td>2.608072e+01</td>\n","      <td>1.307225e+00</td>\n","      <td>7.321615e+00</td>\n","      <td>6.204493e-01</td>\n","      <td>1.122041e+01</td>\n","    </tr>\n","    <tr>\n","      <th>std</th>\n","      <td>1.742443e+06</td>\n","      <td>3.633526e+04</td>\n","      <td>1.959549e+01</td>\n","      <td>1.715231e+01</td>\n","      <td>7.659778e-01</td>\n","      <td>1.343470e+01</td>\n","      <td>4.852752e-01</td>\n","      <td>8.109703e+00</td>\n","    </tr>\n","    <tr>\n","      <th>min</th>\n","      <td>1.000000e+00</td>\n","      <td>1.000000e+00</td>\n","      <td>5.000000e+00</td>\n","      <td>1.000000e+01</td>\n","      <td>0.000000e+00</td>\n","      <td>0.000000e+00</td>\n","      <td>0.000000e+00</td>\n","      <td>-1.895744e+00</td>\n","    </tr>\n","    <tr>\n","      <th>25%</th>\n","      <td>1.509001e+06</td>\n","      <td>3.137700e+04</td>\n","      <td>5.000000e+00</td>\n","      <td>1.000000e+01</td>\n","      <td>6.428995e-01</td>\n","      <td>3.936623e-01</td>\n","      <td>0.000000e+00</td>\n","      <td>6.329607e+00</td>\n","    </tr>\n","    <tr>\n","      <th>50%</th>\n","      <td>3.018000e+06</td>\n","      <td>6.276550e+04</td>\n","      <td>2.000000e+01</td>\n","      <td>2.000000e+01</td>\n","      <td>1.308123e+00</td>\n","      <td>4.386146e+00</td>\n","      <td>1.000000e+00</td>\n","      <td>7.032628e+00</td>\n","    </tr>\n","    <tr>\n","      <th>75%</th>\n","      <td>4.527000e+06</td>\n","      <td>9.430100e+04</td>\n","      <td>5.000000e+01</td>\n","      <td>5.000000e+01</td>\n","      <td>1.965502e+00</td>\n","      <td>4.983895e+00</td>\n","      <td>1.000000e+00</td>\n","      <td>1.364103e+01</td>\n","    </tr>\n","    <tr>\n","      <th>max</th>\n","      <td>6.036000e+06</td>\n","      <td>1.257490e+05</td>\n","      <td>5.000000e+01</td>\n","      <td>5.000000e+01</td>\n","      <td>2.937238e+00</td>\n","      <td>1.000000e+02</td>\n","      <td>1.000000e+00</td>\n","      <td>6.482099e+01</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>\n","      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-8b5aee48-86b0-48dc-b317-83bdc398ef2f')\"\n","              title=\"Convert this dataframe to an interactive table.\"\n","              style=\"display:none;\">\n","        \n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","       width=\"24px\">\n","    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n","    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n","  </svg>\n","      </button>\n","      \n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      flex-wrap:wrap;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","      <script>\n","        const buttonEl =\n","          document.querySelector('#df-8b5aee48-86b0-48dc-b317-83bdc398ef2f button.colab-df-convert');\n","        buttonEl.style.display =\n","          google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","        async function convertToInteractive(key) {\n","          const element = document.querySelector('#df-8b5aee48-86b0-48dc-b317-83bdc398ef2f');\n","          const dataTable =\n","            await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                     [key], {});\n","          if (!dataTable) return;\n","\n","          const docLinkHtml = 'Like what you see? Visit the ' +\n","            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","            + ' to learn more about interactive tables.';\n","          element.innerHTML = '';\n","          dataTable['output_type'] = 'display_data';\n","          await google.colab.output.renderOutput(dataTable, element);\n","          const docLink = document.createElement('div');\n","          docLink.innerHTML = docLinkHtml;\n","          element.appendChild(docLink);\n","        }\n","      </script>\n","    </div>\n","  </div>\n","  "],"text/plain":["                 id     breath_id  ...         u_out      pressure\n","count  6.036000e+06  6.036000e+06  ...  6.036000e+06  6.036000e+06\n","mean   3.018000e+06  6.283886e+04  ...  6.204493e-01  1.122041e+01\n","std    1.742443e+06  3.633526e+04  ...  4.852752e-01  8.109703e+00\n","min    1.000000e+00  1.000000e+00  ...  0.000000e+00 -1.895744e+00\n","25%    1.509001e+06  3.137700e+04  ...  0.000000e+00  6.329607e+00\n","50%    3.018000e+06  6.276550e+04  ...  1.000000e+00  7.032628e+00\n","75%    4.527000e+06  9.430100e+04  ...  1.000000e+00  1.364103e+01\n","max    6.036000e+06  1.257490e+05  ...  1.000000e+00  6.482099e+01\n","\n","[8 rows x 8 columns]"]},"metadata":{},"execution_count":6}]},{"cell_type":"code","source":["correlation = df_train.corr(method='pearson')\n","\n","fig = plt.subplots(figsize=(10,10))\n","sns.heatmap(correlation, vmax=1, square=True, annot=True, cmap='Blues')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":596},"id":"wk5iTQ4kpy5i","executionInfo":{"status":"ok","timestamp":1639730550156,"user_tz":-420,"elapsed":1896,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"b4a6b513-2535-48b6-91bb-834cd2bcf661"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<matplotlib.axes._subplots.AxesSubplot at 0x7f2b9a49a1d0>"]},"metadata":{},"execution_count":7},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 720x720 with 2 Axes>"]},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":["df_train['u_in'].max()\n","sns.histplot(df_train['u_in'])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":308},"id":"YHG7abKMqPdp","executionInfo":{"status":"ok","timestamp":1639730556831,"user_tz":-420,"elapsed":6705,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"81bd63d6-a05c-4569-e93e-bc23888027db"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["<matplotlib.axes._subplots.AxesSubplot at 0x7f2b89b5d190>"]},"metadata":{},"execution_count":8},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["<Figure size 432x288 with 1 Axes>"]},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":["# sns.histplot(train['u_out'])\n","df_train['u_out'].value_counts()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"u2UrmLElqc8C","executionInfo":{"status":"ok","timestamp":1639730556835,"user_tz":-420,"elapsed":32,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"630f2a68-9617-4158-8258-08cc9df6960c"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["1    3745032\n","0    2290968\n","Name: u_out, dtype: int64"]},"metadata":{},"execution_count":9}]},{"cell_type":"code","source":["cat_cols = []\n","num_cols = []\n","for col in df_train.columns:\n","    if(df_train[col].value_counts().count() < 10):\n","        cat_cols.append(col)\n","    else:\n","        num_cols.append(col)\n","    print(col + '---' + str(df_train[col].value_counts().count()))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ND4qcye5qo8e","executionInfo":{"status":"ok","timestamp":1639730560882,"user_tz":-420,"elapsed":4067,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"0ce6e841-7a12-4218-ba31-be981cd38c69"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["id---6036000\n","breath_id---75450\n","R---3\n","C---3\n","time_step---3767571\n","u_in---4020248\n","u_out---2\n","pressure---950\n"]}]},{"cell_type":"code","source":["for col in cat_cols:\n","    print(col + '---' + str(df_train[col].unique()))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"xOEGDiCKq3yG","executionInfo":{"status":"ok","timestamp":1639730561254,"user_tz":-420,"elapsed":380,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"fb17d82e-a8e5-4cc9-9503-33cdd0adf93d"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["R---[20 50  5]\n","C---[50 20 10]\n","u_out---[0 1]\n"]}]},{"cell_type":"code","source":["num_cols"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"e82N1aQcrBMn","executionInfo":{"status":"ok","timestamp":1639730561278,"user_tz":-420,"elapsed":38,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"bdf53714-c6bf-4a81-84f8-3f1d3ff0a38c"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['id', 'breath_id', 'time_step', 'u_in', 'pressure']"]},"metadata":{},"execution_count":12}]},{"cell_type":"code","source":["Q1 = df_train.quantile(0.25)\n","Q3 = df_train.quantile(0.75)\n","IQR = Q3 - Q1\n","((df_train < (Q1 - 1.5 * IQR)) | (df_train > (Q3 + 1.5 * IQR))).sum()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"cwhT6B0ArCok","executionInfo":{"status":"ok","timestamp":1639730562415,"user_tz":-420,"elapsed":1164,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"f72692bd-8d43-4d78-cf9d-bf4c19837d98"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["id                0\n","breath_id         0\n","R                 0\n","C                 0\n","time_step         0\n","u_in         836873\n","u_out             0\n","pressure     594709\n","dtype: int64"]},"metadata":{},"execution_count":13}]},{"cell_type":"code","source":["Q1 = df_test.quantile(0.25)\n","Q3 = df_test.quantile(0.75)\n","testIQR = Q3 - Q1\n","((df_test < (Q1 - 1.5 * testIQR)) | (df_test > (Q3 + 1.5 * testIQR))).sum()"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"q3xoRud1rJ5_","executionInfo":{"status":"ok","timestamp":1639730563519,"user_tz":-420,"elapsed":1107,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"c14094b4-af4f-4543-f48c-a6b7870f8001"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["id                0\n","breath_id         0\n","R                 0\n","C                 0\n","time_step         0\n","u_in         556601\n","u_out             0\n","dtype: int64"]},"metadata":{},"execution_count":14}]},{"cell_type":"markdown","metadata":{"id":"qzSr9KVPuBTY"},"source":["# Tiền xử lý dữ liệu"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ayONOpR5io7G","executionInfo":{"status":"ok","timestamp":1639730563521,"user_tz":-420,"elapsed":48,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"3961172b-5959-4590-a477-3ff01b7a23ad"},"source":["df_train['breath_id'].unique()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["array([     1,      2,      3, ..., 125743, 125745, 125749])"]},"metadata":{},"execution_count":15}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":204},"id":"cy4R731-lSkZ","executionInfo":{"status":"ok","timestamp":1639730563524,"user_tz":-420,"elapsed":34,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"bdaf15bf-f3db-41a3-c3c2-12514332ff83"},"source":["y = df_train['pressure']\n","X = df_train.drop(columns=['pressure'])\n","X.head()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","  <div id=\"df-00467b59-6c5d-4768-b9e0-d4f45e1ae083\">\n","    <div class=\"colab-df-container\">\n","      <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>id</th>\n","      <th>breath_id</th>\n","      <th>R</th>\n","      <th>C</th>\n","      <th>time_step</th>\n","      <th>u_in</th>\n","      <th>u_out</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>1</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.000000</td>\n","      <td>0.083334</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>2</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.033652</td>\n","      <td>18.383041</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>3</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.067514</td>\n","      <td>22.509278</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>4</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.101542</td>\n","      <td>22.808822</td>\n","      <td>0</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>5</td>\n","      <td>1</td>\n","      <td>20</td>\n","      <td>50</td>\n","      <td>0.135756</td>\n","      <td>25.355850</td>\n","      <td>0</td>\n","    </tr>\n","  </tbody>\n","</table>\n","</div>\n","      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-00467b59-6c5d-4768-b9e0-d4f45e1ae083')\"\n","              title=\"Convert this dataframe to an interactive table.\"\n","              style=\"display:none;\">\n","        \n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","       width=\"24px\">\n","    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n","    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n","  </svg>\n","      </button>\n","      \n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      flex-wrap:wrap;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","      <script>\n","        const buttonEl =\n","          document.querySelector('#df-00467b59-6c5d-4768-b9e0-d4f45e1ae083 button.colab-df-convert');\n","        buttonEl.style.display =\n","          google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","        async function convertToInteractive(key) {\n","          const element = document.querySelector('#df-00467b59-6c5d-4768-b9e0-d4f45e1ae083');\n","          const dataTable =\n","            await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                     [key], {});\n","          if (!dataTable) return;\n","\n","          const docLinkHtml = 'Like what you see? Visit the ' +\n","            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","            + ' to learn more about interactive tables.';\n","          element.innerHTML = '';\n","          dataTable['output_type'] = 'display_data';\n","          await google.colab.output.renderOutput(dataTable, element);\n","          const docLink = document.createElement('div');\n","          docLink.innerHTML = docLinkHtml;\n","          element.appendChild(docLink);\n","        }\n","      </script>\n","    </div>\n","  </div>\n","  "],"text/plain":["   id  breath_id   R   C  time_step       u_in  u_out\n","0   1          1  20  50   0.000000   0.083334      0\n","1   2          1  20  50   0.033652  18.383041      0\n","2   3          1  20  50   0.067514  22.509278      0\n","3   4          1  20  50   0.101542  22.808822      0\n","4   5          1  20  50   0.135756  25.355850      0"]},"metadata":{},"execution_count":16}]},{"cell_type":"markdown","source":["# Grid Search"],"metadata":{"id":"BS7Uj7z0tuRV"}},{"cell_type":"code","source":["# params = {\n","#                 'objective': ['regression_l1'], \n","#                 'metric': ['l1'], \n","#                 'boosting_type': ['gbdt'], \n","#                 'verbose': [-1], \n","#                 'random_state': [42],\n","#                 'feature_pre_filter': [False], \n","#                 'lambda_l1': [0.0], \n","#                 'lambda_l2': [0.0], \n","#                 'num_leaves':[150,250], \n","#                 'feature_fraction': [0.8999999999999999], \n","#                 'bagging_fraction': [1.0], \n","#                 'bagging_freq': [0], \n","#                 'min_child_samples': [5, 10, 20],\n","#                 'learning_rate':[0.001,0.01, 0.1],\n","#                 'max_depth':[4, 6, 8]\n","#           }"],"metadata":{"id":"VURn9j7EuklW"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# gd_sr = GridSearchCV(estimator=LGBMRegressor(),\n","#                      param_grid=params,\n","#                      scoring='neg_mean_absolute_error',\n","#                      cv=5,\n","#                      verbose=4)\n","# gd_sr"],"metadata":{"id":"m09bAsjXv829"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# gd_sr.fit(X, y)"],"metadata":{"id":"JjJzg0LM4di-"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# best_parameters = gd_sr.best_params_\n","# print(best_parameters)"],"metadata":{"id":"IdSnv0QbwUZ3"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["best_best_param = {'bagging_fraction': 1.0, 'bagging_freq': 0, 'boosting_type': 'gbdt', 'feature_fraction': 0.8999999999999999, 'feature_pre_filter': False, 'lambda_l1': 0.0, 'lambda_l2': 0.0, 'learning_rate': 0.1, 'max_depth': 10, 'metric': 'l1', 'min_child_samples': 2, 'num_leaves': 150, 'objective': 'regression_l1', 'random_state': 42, 'verbose': -1}"],"metadata":{"id":"rTeMU0rif8dl"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":[""],"metadata":{"id":"3JPqkO2LjbeW"}},{"cell_type":"code","source":["# best_result = gd_sr.best_score_\n","# print(best_result)"],"metadata":{"id":"8e0uVxz5wVNP"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":["# Huấn luyện "],"metadata":{"id":"yOVAT138waFf"}},{"cell_type":"code","source":["best_model = LGBMRegressor(**best_best_param)"],"metadata":{"id":"erWuVf959_a2"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["import time \n","\n","start = time.time()\n","best_model.fit(X, y)\n","end = time.time() \n","\n","print('Time to train {}'.format(end - start))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"O1m0P3y9-CaJ","executionInfo":{"status":"ok","timestamp":1639730593125,"user_tz":-420,"elapsed":29135,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"edf42c21-b7e4-4536-852d-14cc04c1597c"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Time to train 29.51127052307129\n"]}]},{"cell_type":"code","source":["# cv_svm = KFold(n_splits=5, random_state=0, shuffle=True)\n","# clf_cv_svm = SVC(random_state=0, C=best_parameters['C'], gamma=best_parameters['gamma'], kernel=best_parameters['kernel'])"],"metadata":{"id":"bGgCfGP2wZLg"},"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"kkHaVsQ3uX2E"},"source":["# Đánh giá trên tập test"]},{"cell_type":"code","source":["predicted = best_model.predict(df_test)"],"metadata":{"id":"oBu8YzTu_eOZ"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["predicted_pressure = pd.DataFrame({'pressure': predicted[:]})"],"metadata":{"id":"JXLnKKrP_pR0"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["test_result = df_test\n","test_result['pressure'] = predicted_pressure"],"metadata":{"id":"YurmjMdmAFsK"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["submit_result = test_result[['id','pressure']]\n","submit_result"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":419},"id":"57jGFvVgAI5J","executionInfo":{"status":"ok","timestamp":1639730603347,"user_tz":-420,"elapsed":19,"user":{"displayName":"Tan Ngoc Pham","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14GjTnKqizUwXZEJCyzVEpyGrf3UB4Q9hXQmOia-K=s64","userId":"14181975107662818559"}},"outputId":"e23b16f8-ada4-4322-b1a9-43e0b6240e84"},"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n","  <div id=\"df-6149c92c-d560-4461-9119-5ada58b80c85\">\n","    <div class=\"colab-df-container\">\n","      <div>\n","<style scoped>\n","    .dataframe tbody tr th:only-of-type {\n","        vertical-align: middle;\n","    }\n","\n","    .dataframe tbody tr th {\n","        vertical-align: top;\n","    }\n","\n","    .dataframe thead th {\n","        text-align: right;\n","    }\n","</style>\n","<table border=\"1\" class=\"dataframe\">\n","  <thead>\n","    <tr style=\"text-align: right;\">\n","      <th></th>\n","      <th>id</th>\n","      <th>pressure</th>\n","    </tr>\n","  </thead>\n","  <tbody>\n","    <tr>\n","      <th>0</th>\n","      <td>1</td>\n","      <td>6.394425</td>\n","    </tr>\n","    <tr>\n","      <th>1</th>\n","      <td>2</td>\n","      <td>6.076426</td>\n","    </tr>\n","    <tr>\n","      <th>2</th>\n","      <td>3</td>\n","      <td>7.267943</td>\n","    </tr>\n","    <tr>\n","      <th>3</th>\n","      <td>4</td>\n","      <td>8.343829</td>\n","    </tr>\n","    <tr>\n","      <th>4</th>\n","      <td>5</td>\n","      <td>10.181913</td>\n","    </tr>\n","    <tr>\n","      <th>...</th>\n","      <td>...</td>\n","      <td>...</td>\n","    </tr>\n","    <tr>\n","      <th>4023995</th>\n","      <td>4023996</td>\n","      <td>6.116436</td>\n","    </tr>\n","    <tr>\n","      <th>4023996</th>\n","      <td>4023997</td>\n","      <td>6.179192</td>\n","    </tr>\n","    <tr>\n","      <th>4023997</th>\n","      <td>4023998</td>\n","      <td>6.183358</td>\n","    </tr>\n","    <tr>\n","      <th>4023998</th>\n","      <td>4023999</td>\n","      <td>6.161587</td>\n","    </tr>\n","    <tr>\n","      <th>4023999</th>\n","      <td>4024000</td>\n","      <td>6.205361</td>\n","    </tr>\n","  </tbody>\n","</table>\n","<p>4024000 rows × 2 columns</p>\n","</div>\n","      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-6149c92c-d560-4461-9119-5ada58b80c85')\"\n","              title=\"Convert this dataframe to an interactive table.\"\n","              style=\"display:none;\">\n","        \n","  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n","       width=\"24px\">\n","    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n","    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n","  </svg>\n","      </button>\n","      \n","  <style>\n","    .colab-df-container {\n","      display:flex;\n","      flex-wrap:wrap;\n","      gap: 12px;\n","    }\n","\n","    .colab-df-convert {\n","      background-color: #E8F0FE;\n","      border: none;\n","      border-radius: 50%;\n","      cursor: pointer;\n","      display: none;\n","      fill: #1967D2;\n","      height: 32px;\n","      padding: 0 0 0 0;\n","      width: 32px;\n","    }\n","\n","    .colab-df-convert:hover {\n","      background-color: #E2EBFA;\n","      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n","      fill: #174EA6;\n","    }\n","\n","    [theme=dark] .colab-df-convert {\n","      background-color: #3B4455;\n","      fill: #D2E3FC;\n","    }\n","\n","    [theme=dark] .colab-df-convert:hover {\n","      background-color: #434B5C;\n","      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n","      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n","      fill: #FFFFFF;\n","    }\n","  </style>\n","\n","      <script>\n","        const buttonEl =\n","          document.querySelector('#df-6149c92c-d560-4461-9119-5ada58b80c85 button.colab-df-convert');\n","        buttonEl.style.display =\n","          google.colab.kernel.accessAllowed ? 'block' : 'none';\n","\n","        async function convertToInteractive(key) {\n","          const element = document.querySelector('#df-6149c92c-d560-4461-9119-5ada58b80c85');\n","          const dataTable =\n","            await google.colab.kernel.invokeFunction('convertToInteractive',\n","                                                     [key], {});\n","          if (!dataTable) return;\n","\n","          const docLinkHtml = 'Like what you see? Visit the ' +\n","            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n","            + ' to learn more about interactive tables.';\n","          element.innerHTML = '';\n","          dataTable['output_type'] = 'display_data';\n","          await google.colab.output.renderOutput(dataTable, element);\n","          const docLink = document.createElement('div');\n","          docLink.innerHTML = docLinkHtml;\n","          element.appendChild(docLink);\n","        }\n","      </script>\n","    </div>\n","  </div>\n","  "],"text/plain":["              id   pressure\n","0              1   6.394425\n","1              2   6.076426\n","2              3   7.267943\n","3              4   8.343829\n","4              5  10.181913\n","...          ...        ...\n","4023995  4023996   6.116436\n","4023996  4023997   6.179192\n","4023997  4023998   6.183358\n","4023998  4023999   6.161587\n","4023999  4024000   6.205361\n","\n","[4024000 rows x 2 columns]"]},"metadata":{},"execution_count":29}]},{"cell_type":"code","source":["submit_result.to_csv('submission.csv', index=False)"],"metadata":{"id":"IF81FgH9AMc6"},"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"b3w2fCnPmFMk"},"source":["# test_acc_cv = cross_val_score(clf_cv_svm, X, y, scoring='accuracy', cv=cv_svm, n_jobs=-1)\n","# test_acc_cv\n","# print('Accuracy: %.3f (%.3f)' % (mean(test_acc_cv), std(test_acc_cv)))"],"execution_count":null,"outputs":[]}]}