{"id":396,"date":"2020-08-19T23:04:12","date_gmt":"2020-08-19T14:04:12","guid":{"rendered":"http:\/\/cedartrees.co.kr\/?p=396"},"modified":"2021-05-29T23:22:57","modified_gmt":"2021-05-29T14:22:57","slug":"rnn-time-series-predict2","status":"publish","type":"post","link":"http:\/\/blog.cedartrees.co.kr\/index.php\/2020\/08\/19\/rnn-time-series-predict2\/","title":{"rendered":"RNN Time-Series \uc608\uce21(2)"},"content":{"rendered":"\n<p>\ubcf8 \uc608\uc81c\ub294 \ubaa8\ub450\ub97c \uc704\ud55c \ub525\ub7ec\ub2dd \uc2dc\uc98c2\uc758 \ub370\uc774\ud130(data-02-stock_daily.csv)\uc640 \ubaa8\ub378\uc744 \uc81c\uc678\ud55c \uc18c\uc2a4 \ucf54\ub4dc\ub97c \ucc38\uace0\ud588\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Reference\n# \ubaa8\ub450\ub97c \uc704\ud55c \ub525\ub7ec\ub2dd \uc2dc\uc98c 2 - PyTorch\n# Lab-11-4 RNN timeseries<\/pre>\n\n\n\n<p>\ud544\uc694\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc784\ud3ec\ud2b8 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import torch\nimport torch.optim as optim\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom sklearn.preprocessing import MinMaxScaler<\/pre>\n\n\n\n<p>\ubaa8\ub378\uc5d0 \uc0ac\uc6a9\ud560 \ud30c\ub77c\uba54\ud130\ub97c \uc14b\ud305\ud574\uc90d\ub2c8\ub2e4. seq_length\ub294 \uc785\ub825 \uc2dc\ud000\uc2a4 \uc815\ubcf4, data_dim\uc740 \uc785\ub825 \ub370\uc774\ud130\uc758 \ucc28\uc6d0, hidden_dim\uc740 \ucd9c\ub825 \ub370\uc774\ud130\uc758 \ucc28\uc6d0, output_dim\uc740 \ucd5c\uc885 \uc608\uce21 \ub370\uc774\ud130\uc758 \ucc28\uc6d0 \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># hyper parameters\nseq_length = 7\ndata_dim = 5\nhidden_dim = 30\noutput_dim = 1\nlearning_rate = 0.01\niterations = 501<\/pre>\n\n\n\n<p>\ud574\ub2f9 \ub370\uc774\ud130\ub294 \uc8fc\uac00 \ub370\uc774\ud130\ub85c \uac1c\uc7a5 \ud3ec\uc778\ud2b8, \uac00\uc7a5 \ub192\uc740 \ud3ec\uc778\ud2b8, \uac00\uc7a5 \ub0ae\uc740 \ud3ec\uc778\ud2b8, \ud3d0\uc7a5\uc2dc \ud3ec\uc778\ud2b8\uc640 \uac70\ub798\ub7c9\uc73c\ub85c 5\uac1c \ubcc0\uc218 \ub370\uc774\ud130\ub97c \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ubcf8 \uc608\uce21\uc740 \ud559\uc2b5 \ub370\uc774\ud130\ub97c 7\uc77c\ub85c \ubd84\ub9ac\ud558\uc5ec \ub2e4\uc74c \ud3d0\uc7a5 \ud3ec\uc778\ud2b8\ub97c \uc608\uce21\ud558\ub294 \ubaa8\ub378\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># load data\nxy = np.loadtxt(\"data-02-stock_daily.csv\", delimiter=\",\")\nxy = xy[::-1]  # reverse order<\/pre>\n\n\n\n<p>\ud559\uc2b5\uc6a9 \ub370\uc774\ud130\uc640 \ud14c\uc2a4\ud2b8\uc6a9 \ub370\uc774\ud130\ub97c \ubd84\ub9ac\ud558\ub294 \ub0b4\uc6a9\uc785\ub2c8\ub2e4. \ud559\uc2b5 \ub370\uc774\ud130\uc640 \uac80\uc99d \ub370\uc774\ud130\ub294 7:3 \ube44\uc728\ub85c \ubd84\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># split train-test set\ntrain_size = int(len(xy) * 0.7)\ntrain_set = xy[0:train_size]\ntest_set = xy[train_size - seq_length:]\ntrain_set.shape, test_set.shape<\/pre>\n\n\n\n<p>\uc785\ub825\ud55c \ub370\uc774\ud130\ub97c \ud559\uc2b5\uc5d0 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc815\uaddc\ud654 \uacfc\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<br>\uc815\uaddc\ud654\ub97c \uc65c \ud574\uc57c \ud558\ub294\uc9c0\uc5d0 \ub300\ud574\uc11c\ub294 \uc544\ub798\uc758 \uadf8\ub798\ud504\ub97c \ucc38\uace0\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ud574\ub2f9 \ub370\uc774\ud130\uc14b\uc740 \ucd1d 5\uac1c\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\uc911 4\uac1c\uc758 \ub370\uc774\ud130\ub294 \ub2e8\uc704\uac00 \ube44\uc2b7\ud558\uae30 \ub54c\ubb38\uc5d0 \uadf8\ub798\ud504\ub97c \ud1b5\ud574 \ubcf4\uba74 \uc720\uc0ac\ud55c \ud615\ud0dc\ub97c \ubcf4\uc774\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 Volume \uc774\ub77c\ub294 \uceec\ub7fc\uc744 \uac19\uc774 \ud45c\ud604\ud558\uace0\uc790 \ud55c\ub2e4\uba74 \uc785\ub825 \ub2e8\uc704\uc758 \ucc28\uc774\uac00 \ub9e4\uc6b0 \ud06c\uae30 \ub54c\ubb38\uc5d0 \uc544\ub798\uc758 \uadf8\ub9bc\uacfc \uac19\uc774 \ub098\uba38\uc9c0 \ub370\uc774\ud130\ub294 \uc2dd\ubcc4\uc774 \ubd88\uac00\ub2a5\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"375\" height=\"248\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-4-1.png\" alt=\"\" class=\"wp-image-410\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-4-1.png 375w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-4-1-300x198.png 300w\" sizes=\"(max-width: 375px) 100vw, 375px\" \/><\/figure><\/div>\n\n\n\n<ul><li>\ub2e8\uc704\uc758 \ucc28\uc774\ub85c \uc778\ud574\uc11c Volume \ub370\uc774\ud130\ub97c \uc2dc\uac01\ud654 \ud558\ub294\ub370 \ud55c\uacc4\uac00 \uc788\uc74c<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"372\" height=\"264\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-1-4.png\" alt=\"\" class=\"wp-image-405\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-1-4.png 372w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-1-4-300x213.png 300w\" sizes=\"(max-width: 372px) 100vw, 372px\" \/><\/figure><\/div>\n\n\n\n<p>\uadf8\ub7ec\ub098 MinMaxScaler\ub97c \ud65c\uc6a9\ud558\uc5ec \uc815\uaddc\ud654 \ud558\uac8c \ub418\uba74 \ubaa8\ub4e0 \ub370\uc774\ud130\ub97c 0,1\uc758 \ubc94\uc704 \uc548\uc5d0 \ud45c\ud604\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \ubaa8\ub4e0 \uadf8\ub798\ud504\ub97c \ud55c\ubc88\uc5d0 \uadf8\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc774\ub807\uac8c \ud45c\ud604\ud55c \ub370\uc774\ud130\ub294 \ub2e4\uc2dc \uc6d0\ub798 \ub2e8\uc704\uc758 \ud615\ud0dc\ub85c \ubcf5\uc6d0 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ud559\uc2b5\uc5d0\uc11c MinMaxScaler\ub97c \uc0ac\uc6a9\ud558\ub294 \uc774\uc720\ub294 \ub2e4\ucc28\uc6d0 \ub370\uc774\ud130\uac12\uc744 \ube44\uad50 \ubd84\uc11d\ud558\uae30 \uc27d\uac8c \ub9cc\ub4e4\uc5b4\uc8fc\uace0 \uc790\ub8cc\uc758 \uc624\ubc84\ud50c\ub85c\uc6b0\ub098 \uc5b8\ub354\ud50c\ub85c\uc6b0\ub97c \ubc29\uc9c0\ud574\uc8fc\uace0 \ucd5c\uc801\uacfc \uacfc\uc815\uc5d0\uc11c \uc548\uc815\uc131 \ubc0f \uc218\ub834 \uc18d\ub3c4\ub97c \ud5a5\uc0c1 \uc2dc\ud0a4\uae30 \uc704\ud568\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"372\" height=\"264\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-2-2.png\" alt=\"\" class=\"wp-image-406\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-2-2.png 372w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-2-2-300x213.png 300w\" sizes=\"(max-width: 372px) 100vw, 372px\" \/><figcaption>MinMaxScaler \uc218\ud589\ud6c4 \ub370\uc774\ud130 \uc2dc\uac01\ud654<\/figcaption><\/figure><\/div>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">scaler = MinMaxScaler()\nscaler.fit(train_set)\nprint(scaler.n_samples_seen_, scaler.data_min_, scaler.data_max_, scaler.feature_range)\ntrain_set = scaler.transform(train_set)\nscaler.fit(test_set)\nprint(scaler.n_samples_seen_, scaler.data_min_, scaler.data_max_, scaler.feature_range)\ntest_set = scaler.transform(test_set)<\/pre>\n\n\n\n<p>build_dataset \ud568\uc218\ub294 RNN \ud559\uc2b5\uc744 \uc704\ud574\uc11c \uc785\ub825 \ud150\uc11c\ub97c \ub9cc\ub4e4\uc5b4 \uc8fc\ub294 \ubd80\ubd84\uc785\ub2c8\ub2e4.<br>time_series[0:7,], time_series[7,[-1]] \ud615\uc2dd\uc73c\ub85c \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># make dataset to input\ndef build_dataset(time_series, seq_length):\n    dataX = []\n    dataY = []\n    for i in range(0, len(time_series) - seq_length):\n        _x = time_series[i:i + seq_length, :]\n        _y = time_series[i + seq_length, [-1]]  # Next close price\n        #print(_x, \"->\", _y)\n        dataX.append(_x)\n        dataY.append(_y)\n    return np.array(dataX), np.array(dataY)<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># make train-test dataset to input\ntrainX, trainY = build_dataset(train_set, seq_length)\ntestX, testY = build_dataset(test_set, seq_length)\nprint(trainX.shape, trainY.shape)\n\n# convert to tensor\ntrainX_tensor = torch.FloatTensor(trainX)\ntrainY_tensor = torch.FloatTensor(trainY)\n\ntestX_tensor = torch.FloatTensor(testX)\ntestY_tensor = torch.FloatTensor(testY)<\/pre>\n\n\n\n<p>\uc774\uc81c \ud559\uc2b5 \ub370\uc774\ud130\ub97c \ud1b5\ud574\uc11c \ub370\uc774\ud130\ub97c \ud559\uc2b5\ud558\ub294 \ubaa8\ub378\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. \ubcf8 \uc608\uc81c\uc5d0\uc11c\ub294 BiLSTM \ubc29\uc2dd\uc73c\ub85c 4\uac1c\uc758 \uce35\uc744 \uc313\uc544 \uc62c\ub9b0 \ud615\ud0dc\uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uc704\uc758 \uadf8\ub9bc\uc740 \ud574\ub2f9 \ub370\uc774\ud130\uc5d0 \ub300\ud55c \uc785\ub825 \ub370\uc774\ud130 \ud615\ud0dc\uc640 \uc785\ub825\uc640 \ucd9c\ub825\uc758 \ud615\ud0dc\ub294 \uc544\ub798 \uadf8\ub9bc\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uc77c\ub2e8 \ubca1\ud130\ub294 (n,7,5) -> (n,7,30) \ud615\ud0dc\ub85c \ub098\uc635\ub2c8\ub2e4. \uadf8\ub7ec\ub098 BiLSTM \ubaa8\ub378\uc744 \uc0ac\uc6a9\ud588\uae30 \ub54c\ubb38\uc5d0 \ub9c8\uc9c0\ub9c9 output\uc740 30*2\uc758 \ud615\ud0dc\uac00 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"715\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/20200821_093410067_iOS-1024x715.png\" alt=\"\" class=\"wp-image-418\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/20200821_093410067_iOS-1024x715.png 1024w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/20200821_093410067_iOS-300x210.png 300w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/20200821_093410067_iOS-768x537.png 768w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/20200821_093410067_iOS-1536x1073.png 1536w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/20200821_093410067_iOS.png 1981w\" sizes=\"(max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/figure><\/div>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Net(torch.nn.Module):\n    def __init__(self, input_dim, hidden_dim, output_dim, layers):\n        super(Net, self).__init__()\n        self.rnn = torch.nn.LSTM(input_dim, hidden_dim, num_layers=layers, batch_first=True, bidirectional=True)\n        self.layers = torch.nn.Sequential(\n            torch.nn.Linear(hidden_dim*2, 20),\n            torch.nn.Linear(20, 10),\n            torch.nn.Linear(10, output_dim)\n        )\n\n    def forward(self, x):\n        x, (hidden, cell) = self.rnn(x)\n        x = self.layers(x[:, -1, ])\n        return x\n\nnet = Net(data_dim, hidden_dim, output_dim, 4)<\/pre>\n\n\n\n<p>\uc774\uc81c \ud559\uc2b5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># loss &amp; optimizer setting\ncriterion = torch.nn.MSELoss()\noptimizer = optim.Adam(net.parameters(), lr=learning_rate)\n\n# start training\nfor i in range(iterations):\n    outputs = net(trainX_tensor)\n    loss = criterion(outputs, trainY_tensor)\n    \n    optimizer.zero_grad()\n    loss.backward()\n    optimizer.step()\n    \n    if i%50 == 0:\n        print(i, loss.item())<\/pre>\n\n\n\n<p>\ud559\uc2b5\uc774 \uc644\ub8cc\ub41c \ud6c4 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">net.eval()\npredict_data = net(testX_tensor).data.numpy()\nplt.grid(True)\nplt.autoscale(axis='x', tight=True)\nplt.plot(testY)\nplt.plot(predict_data, color='red')\nplt.legend(['original', 'prediction'])\nplt.show()<\/pre>\n\n\n\n<p>\ud559\uc2b5\ub41c \uacb0\uacfc\uc640 \uc6d0\ubcf8 \ub370\uc774\ud130\ub97c \ud1b5\ud574 \ube44\uad50\ud574\ubcf4\uba74 \uc608\uce21\uc774 \ube44\uad50\uc801 \uc798\ub410\uc74c\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"372\" height=\"248\" src=\"http:\/\/cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-3-2.png\" alt=\"\" class=\"wp-image-407\" srcset=\"http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-3-2.png 372w, http:\/\/blog.cedartrees.co.kr\/wp-content\/uploads\/2020\/08\/download-3-2-300x200.png 300w\" sizes=\"(max-width: 372px) 100vw, 372px\" \/><\/figure><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ubcf8 \uc608\uc81c\ub294 \ubaa8\ub450\ub97c \uc704\ud55c \ub525\ub7ec\ub2dd \uc2dc\uc98c2\uc758 \ub370\uc774\ud130(data-02-stock_daily.csv)\uc640 \ubaa8\ub378\uc744 \uc81c\uc678\ud55c \uc18c\uc2a4 \ucf54\ub4dc\ub97c \ucc38\uace0\ud588\uc2b5\ub2c8\ub2e4. \ud544\uc694\ud55c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc784\ud3ec\ud2b8 \ud569\ub2c8\ub2e4. \ubaa8\ub378\uc5d0 \uc0ac\uc6a9\ud560 \ud30c\ub77c\uba54\ud130\ub97c \uc14b\ud305\ud574\uc90d\ub2c8\ub2e4. seq_length\ub294 \uc785\ub825 \uc2dc\ud000\uc2a4 \uc815\ubcf4, data_dim\uc740 \uc785\ub825 \ub370\uc774\ud130\uc758 \ucc28\uc6d0, hidden_dim\uc740 \ucd9c\ub825 \ub370\uc774\ud130\uc758 \ucc28\uc6d0, output_dim\uc740 \ucd5c\uc885 \uc608\uce21 \ub370\uc774\ud130\uc758 \ucc28\uc6d0 \uc785\ub2c8\ub2e4. \ud574\ub2f9 \ub370\uc774\ud130\ub294 \uc8fc\uac00 \ub370\uc774\ud130\ub85c \uac1c\uc7a5 \ud3ec\uc778\ud2b8, \uac00\uc7a5 \ub192\uc740 \ud3ec\uc778\ud2b8, \uac00\uc7a5 \ub0ae\uc740 \ud3ec\uc778\ud2b8, \ud3d0\uc7a5\uc2dc \ud3ec\uc778\ud2b8\uc640 \uac70\ub798\ub7c9\uc73c\ub85c 5\uac1c \ubcc0\uc218 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.cedartrees.co.kr\/index.php\/2020\/08\/19\/rnn-time-series-predict2\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;RNN Time-Series \uc608\uce21(2)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[40,14],"tags":[120,61,121,122,55],"_links":{"self":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/396"}],"collection":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/comments?post=396"}],"version-history":[{"count":6,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/396\/revisions"}],"predecessor-version":[{"id":1066,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/posts\/396\/revisions\/1066"}],"wp:attachment":[{"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/media?parent=396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/categories?post=396"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.cedartrees.co.kr\/index.php\/wp-json\/wp\/v2\/tags?post=396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}