Train-checkpoint.ipynb 116 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LSTM 모델\n",
    "\n",
    "일반신경망에 시계열 개념이 추가되어 은닉계층에 이전 정보를 기억시킬 수 있는 순환신경망이 시계열 데이터인 주가 예측 모델로 적합<br>\n",
    "1. 단방향 LSTM 순환신경망\n",
    "    - 입력 순서를 시간 순서대로 처리하기 때문에 결과물은 주로 직전 패턴을 기반으로 하는 경향 (한계점)\n",
    "2. 양방향 LSTM 순환신경망\n",
    "    - 데이터의 흐름에 역방향에 은닉계층이 추가되는 양방향 LSTM 순환신경망\n",
    "3. 성능 측정 : 실제 주가와 예측된 주가 간의 평균 제곱근 오차(RMSE)\n",
    "---\n",
    "\n",
    "**2주차 목표 : 단방향 LSTM 과 양방향 LSTM의 성능(RMSE)과 예측률 비교**\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.models import Model, Sequential\n",
    "from keras.layers import Input, Dense, LSTM, Bidirectional\n",
    "from keras.callbacks import EarlyStopping, ModelCheckpoint\n",
    "from keras import backend as K\n",
    "import matplotlib.pyplot as plt\n",
    "from keras.layers.core import Dense, Activation, Dropout"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 단방향(Unidirectional) LSTM\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## (1) 데이터 불러오기\n",
    "### case1. Simple Price Data (시가, 종가, 고가, 저가, 거래량)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "train = pd.read_csv('/Users/yangyoonji/Documents/2020_2학기/캡스톤디자인/data/scaled/train_scaled.csv')\n",
    "test = pd.read_csv('/Users/yangyoonji/Documents/2020_2학기/캡스톤디자인/data/recent_test/recent_data_scaled.csv')\n",
    "validation = pd.read_csv('/Users/yangyoonji/Documents/2020_2학기/캡스톤디자인/data/scaled/validation_scaled.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "test.columns = ['close','open','high','low','vol']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 불필요한 열 삭제\n",
    "del train['Unnamed: 0']\n",
    "del test['Unnamed: 0']\n",
    "del validation['Unnamed: 0']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking if any null values are present in train\n",
      " close    0\n",
      "open     0\n",
      "high     0\n",
      "low      0\n",
      "vol      0\n",
      "dtype: int64\n",
      "checking if any null values are present in test\n",
      " close    0\n",
      "open     0\n",
      "high     0\n",
      "low      0\n",
      "vol      0\n",
      "dtype: int64\n",
      "checking if any null values are present in validation\n",
      " close    0\n",
      "open     0\n",
      "high     0\n",
      "low      0\n",
      "vol      0\n",
      "dtype: int64\n"
     ]
    }
   ],
   "source": [
    "# NULL value 없나 확인해보기\n",
    "print(\"checking if any null values are present in train\\n\", train.isna().sum())\n",
    "print(\"checking if any null values are present in test\\n\", test.isna().sum())\n",
    "print(\"checking if any null values are present in validation\\n\", validation.isna().sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>close</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>vol</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.377298</td>\n",
       "      <td>0.313141</td>\n",
       "      <td>0.298986</td>\n",
       "      <td>0.310670</td>\n",
       "      <td>0.840077</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.454963</td>\n",
       "      <td>0.440645</td>\n",
       "      <td>0.393486</td>\n",
       "      <td>0.354839</td>\n",
       "      <td>0.825928</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      close      open      high       low       vol\n",
       "0  0.377298  0.313141  0.298986  0.310670  0.840077\n",
       "1  0.454963  0.440645  0.393486  0.354839  0.825928"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.head(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "#### Keras RNN 계열의 모델을 트레이닝할 때 요구되는 데이터의 형식 : 3차원\n",
    "3차원 데이터 : **(size, timestep, feature)** <br>\n",
    "일반적인 MLP모델에서는 size, feature만 있는 2차원 모델 <br>\n",
    "RNN계열은 '시간'이라는 개념이 있기 때문에 한 차원 늘어난다. -> **timestep**\n",
    "\n",
    "---\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_dataset(data, label, window_size = 20):\n",
    "    feature_list = []\n",
    "    label_list = []\n",
    "    for i in range(len(data)-window_size):\n",
    "        feature_list.append(np.array(data.iloc[i:i+window_size]))\n",
    "        label_list.append(np.array(label.iloc[i+window_size]))\n",
    "    return np.array(feature_list), np.array(label_list)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "# feature , label 분리\n",
    "feature_cols = ['open','high','low','vol']\n",
    "label_cols = ['close']\n",
    "\n",
    "##----train_data----##\n",
    "train_feature = train[feature_cols]\n",
    "train_label = train[label_cols]\n",
    "train_feature, train_label = make_dataset(train_feature,train_label,20)\n",
    "\n",
    "##----test_data----##\n",
    "test_feature = test[feature_cols]\n",
    "test_label = test[label_cols]\n",
    "test_feature, test_label = make_dataset(test_feature,test_label,20)\n",
    "\n",
    "##----validation_data----##\n",
    "validation_feature = validation[feature_cols]\n",
    "validation_label = validation[label_cols]\n",
    "validation_feature, validation_label = make_dataset(validation_feature,validation_label,20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, y_train, X_val, y_val = train_feature, train_label, validation_feature, validation_label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_test, y_test = test_feature, test_label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0,)\n"
     ]
    }
   ],
   "source": [
    "print(X_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'y_va' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-46-adf671bb0c2f>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_va\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'y_va' is not defined"
     ]
    }
   ],
   "source": [
    "print(y_va.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "lstm_3 (LSTM)                (None, 20, 64)            17664     \n",
      "_________________________________________________________________\n",
      "lstm_4 (LSTM)                (None, 50)                23000     \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 1)                 51        \n",
      "=================================================================\n",
      "Total params: 40,715\n",
      "Trainable params: 40,715\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "#keras 활용한 LSTM 모델 생성\n",
    "\n",
    "model = Sequential() \n",
    "model.add(LSTM(64, return_sequences=True, input_shape=(20, 4))) #첫번째 LSTM 은 유닛수 50개\n",
    "model.add(LSTM(50, return_sequences=False)) #두번째 LSTM 유닛수는 64개\n",
    "model.add(Dense(1, activation='linear')) # 아웃풋으로 나오는 값은 1개 (다음날 하루 예측)\n",
    "model.compile(loss='mse', optimizer='adam') #손실 함수 ,optimizer= rmsprop\n",
    "model.summary() #모델의 개요"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/yangyoonji/anaconda3/lib/python3.7/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Train on 3444 samples, validate on 167 samples\n",
      "Epoch 1/100\n",
      "3444/3444 [==============================] - 50s 15ms/step - loss: 0.0023 - val_loss: 0.0093\n",
      "Epoch 2/100\n",
      "3444/3444 [==============================] - 46s 13ms/step - loss: 6.2230e-04 - val_loss: 0.0063\n",
      "Epoch 3/100\n",
      "3444/3444 [==============================] - 46s 13ms/step - loss: 4.7907e-04 - val_loss: 0.0051\n",
      "Epoch 4/100\n",
      "3444/3444 [==============================] - 47s 14ms/step - loss: 4.4064e-04 - val_loss: 0.0043\n",
      "Epoch 5/100\n",
      "3444/3444 [==============================] - 47s 14ms/step - loss: 3.4811e-04 - val_loss: 0.0032\n",
      "Epoch 6/100\n",
      "3444/3444 [==============================] - 46s 13ms/step - loss: 3.1416e-04 - val_loss: 0.0032\n",
      "Epoch 7/100\n",
      "3444/3444 [==============================] - 49s 14ms/step - loss: 2.5156e-04 - val_loss: 0.0026\n",
      "Epoch 8/100\n",
      "3444/3444 [==============================] - 49s 14ms/step - loss: 2.4702e-04 - val_loss: 0.0023\n",
      "Epoch 9/100\n",
      "3444/3444 [==============================] - 46s 13ms/step - loss: 2.3543e-04 - val_loss: 0.0022\n",
      "Epoch 10/100\n",
      "3444/3444 [==============================] - 46s 13ms/step - loss: 2.1987e-04 - val_loss: 0.0026\n"
     ]
    }
   ],
   "source": [
    "early_stopping = EarlyStopping() \n",
    "hist = model.fit(X_train, y_train, validation_data=(X_val, y_val),batch_size=5, epochs=100,callbacks=[early_stopping])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "Error when checking input: expected lstm_3_input to have shape (20, 4) but got array with shape (2, 4)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-47-5dcb1ab23ecc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mscore\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevaluate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mevaluate\u001b[0;34m(self, x, y, batch_size, verbose, sample_weight, steps)\u001b[0m\n\u001b[1;32m   1100\u001b[0m             \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1101\u001b[0m             \u001b[0msample_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msample_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1102\u001b[0;31m             batch_size=batch_size)\n\u001b[0m\u001b[1;32m   1103\u001b[0m         \u001b[0;31m# Prepare inputs, delegate logic to `test_loop`.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1104\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_uses_dynamic_learning_phase\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36m_standardize_user_data\u001b[0;34m(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size)\u001b[0m\n\u001b[1;32m    749\u001b[0m             \u001b[0mfeed_input_shapes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    750\u001b[0m             \u001b[0mcheck_batch_axis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m  \u001b[0;31m# Don't enforce the batch size.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 751\u001b[0;31m             exception_prefix='input')\n\u001b[0m\u001b[1;32m    752\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    753\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0my\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/lib/python3.7/site-packages/keras/engine/training_utils.py\u001b[0m in \u001b[0;36mstandardize_input_data\u001b[0;34m(data, names, shapes, check_batch_axis, exception_prefix)\u001b[0m\n\u001b[1;32m    136\u001b[0m                             \u001b[0;34m': expected '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m' to have shape '\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    137\u001b[0m                             \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m' but got array with shape '\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 138\u001b[0;31m                             str(data_shape))\n\u001b[0m\u001b[1;32m    139\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    140\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: Error when checking input: expected lstm_3_input to have shape (20, 4) but got array with shape (2, 4)"
     ]
    }
   ],
   "source": [
    "score = model.evaluate(X_test, y_test, batch_size = 5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "predict = model.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.figure(figsize=(12,9))\n",
    "plt.plot(y_test, label='actual')\n",
    "plt.plot(predict, label=\"prediction\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 모델 학습 과정\n",
    "fig, loss_ax = plt.subplots()\n",
    "\n",
    "acc_ax = loss_ax.twinx()\n",
    "\n",
    "loss_ax.plot(hist.history['loss'], 'y', label='train loss')\n",
    "loss_ax.plot(hist.history['val_loss'], 'r', label='val loss')\n",
    "\n",
    "loss_ax.set_xlabel('epoch')\n",
    "loss_ax.set_ylabel('loss')\n",
    "\n",
    "\n",
    "loss_ax.legend(loc='upper left')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "score_list['50'] = score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "score_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "score_list = dict()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Bidirectional LSTM\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# keras 활용한 Bi-LSTM 모델 생성\n",
    "\n",
    "Bimodel = Sequential()\n",
    "Bimodel.add(Bidirectional(LSTM(50,return_sequences=True,input_shape=(20,4))))\n",
    "Bimodel.add(Bidirectional(LSTM(50)))\n",
    "Bimodel.add(Dense(1,activation='linear'))\n",
    "Bimodel.compile(loss='mse',optimizer='adam')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/yangyoonji/anaconda3/lib/python3.7/site-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Train on 3444 samples, validate on 167 samples\n",
      "Epoch 1/100\n",
      "3444/3444 [==============================] - 85s 25ms/step - loss: 0.0016 - val_loss: 0.0071\n",
      "Epoch 2/100\n",
      "3444/3444 [==============================] - 77s 22ms/step - loss: 5.0811e-04 - val_loss: 0.0047\n",
      "Epoch 3/100\n",
      "3444/3444 [==============================] - 77s 22ms/step - loss: 4.1713e-04 - val_loss: 0.0036\n",
      "Epoch 4/100\n",
      "3444/3444 [==============================] - 77s 22ms/step - loss: 3.6805e-04 - val_loss: 0.0034\n",
      "Epoch 5/100\n",
      "3444/3444 [==============================] - 77s 22ms/step - loss: 3.2470e-04 - val_loss: 0.0035\n"
     ]
    }
   ],
   "source": [
    "early_stopping = EarlyStopping() \n",
    "hist = Bimodel.fit(X_train, y_train, validation_data=(X_val, y_val),batch_size=5, epochs=100,callbacks=[early_stopping])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "226/226 [==============================] - 1s 3ms/step\n"
     ]
    }
   ],
   "source": [
    "score = Bimodel.evaluate(X_test, y_test, batch_size = 5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.005031266614415609\n"
     ]
    }
   ],
   "source": [
    "print(score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "predict = Bimodel.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x648 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,9))\n",
    "plt.plot(y_test, label='actual')\n",
    "plt.plot(predict, label=\"prediction\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x638f409b0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 모델 학습 과정\n",
    "fig, loss_ax = plt.subplots()\n",
    "\n",
    "acc_ax = loss_ax.twinx()\n",
    "\n",
    "loss_ax.plot(hist.history['loss'], 'y', label='train loss')\n",
    "loss_ax.plot(hist.history['val_loss'], 'r', label='val loss')\n",
    "\n",
    "loss_ax.set_xlabel('epoch')\n",
    "loss_ax.set_ylabel('loss')\n",
    "\n",
    "\n",
    "loss_ax.legend(loc='upper left')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "score_list = dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "## GridSearch\n",
    "하이퍼파라미터를 최적화하면 모델 성능을 향상시키는데 큰 도움이 된다.<br>\n",
    "GridSearch는 리스트로 지정된 여러 하이퍼파라미터 값을 받아 모든 조합에 대해 모델 성능을 평가하여<br>\n",
    "최적의 하이퍼파라미터 조합을 찾는다.\n",
    "\n",
    "---"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "grid_param_LSTM = {\n",
    "    'batch_size' : [10,20,30,40,50,75,100,150],\n",
    "    'epochs' : [5,10,50,100],\n",
    "    'learning_rate' : [0.0001,0.001,0.01,0.1],\n",
    "    'optimizer' : ['Adam','RMSProp'],\n",
    "    'activation' : ['relu','linear','tanh','sigmoid'],\n",
    "    'dropout_rate' : [0.05,0.1,0.2,0.3,0.4,0.5,0.6],\n",
    "}\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}