├── LSTM-classification.ipynb ├── LSTM-regression.ipynb ├── README.md └── train-small.txt /LSTM-classification.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 51, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "#导入必要的库\n", 10 | "import numpy as np\n", 11 | "import matplotlib.pyplot as plt\n", 12 | "import pandas as pd\n", 13 | "from sklearn import preprocessing\n", 14 | "from sklearn.metrics import mean_squared_error\n", 15 | "from math import sqrt\n", 16 | "from keras.models import Sequential\n", 17 | "from keras.layers.core import Dense, Dropout, Activation\n", 18 | "from keras.layers.recurrent import LSTM" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 52, 24 | "metadata": {}, 25 | "outputs": [ 26 | { 27 | "name": "stderr", 28 | "output_type": "stream", 29 | "text": [ 30 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:4: FutureWarning: read_table is deprecated, use read_csv instead.\n", 31 | " after removing the cwd from sys.path.\n" 32 | ] 33 | }, 34 | { 35 | "data": { 36 | "text/html": [ 37 | "
\n", 38 | "\n", 51 | "\n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | "
OpenHighLowCloseVolume
99941.221981.222261.221981.22226386.8
99951.222101.222191.222031.22208404.3
99961.222141.222301.222001.22223939.1
99971.222301.222301.222031.22217689.0
99981.222031.222291.222001.22229610.9
\n", 105 | "
" 106 | ], 107 | "text/plain": [ 108 | " Open High Low Close Volume \n", 109 | "9994 1.22198 1.22226 1.22198 1.22226 386.8\n", 110 | "9995 1.22210 1.22219 1.22203 1.22208 404.3\n", 111 | "9996 1.22214 1.22230 1.22200 1.22223 939.1\n", 112 | "9997 1.22230 1.22230 1.22203 1.22217 689.0\n", 113 | "9998 1.22203 1.22229 1.22200 1.22229 610.9" 114 | ] 115 | }, 116 | "execution_count": 52, 117 | "metadata": {}, 118 | "output_type": "execute_result" 119 | } 120 | ], 121 | "source": [ 122 | "#设置LSTM的时间窗\n", 123 | "window=1\n", 124 | "#读取数据\n", 125 | "df1=pd.read_table(\"train-small.txt\",sep=',',header=0)\n", 126 | "#df1=pd.read_table(\"train-small.txt\",sep=',',header=0)\n", 127 | "#df1.to_csv('train-small.txt', sep=',',index=False)\n", 128 | "df1=df1.iloc[:10000,1:]\n", 129 | "df1.tail()" 130 | ] 131 | }, 132 | { 133 | "cell_type": "code", 134 | "execution_count": 53, 135 | "metadata": {}, 136 | "outputs": [ 137 | { 138 | "data": { 139 | "text/html": [ 140 | "
\n", 141 | "\n", 154 | "\n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | "
OpenHighLowCloseVolume
99940.8439100.8465020.8497160.8547370.027970
99950.8475190.8443910.8512100.8493230.029578
99960.8487220.8477080.8503140.8538350.078703
99970.8535340.8477080.8512100.8520300.055730
99980.8454140.8474070.8503140.8556390.048556
\n", 208 | "
" 209 | ], 210 | "text/plain": [ 211 | " Open High Low Close Volume \n", 212 | "9994 0.843910 0.846502 0.849716 0.854737 0.027970\n", 213 | "9995 0.847519 0.844391 0.851210 0.849323 0.029578\n", 214 | "9996 0.848722 0.847708 0.850314 0.853835 0.078703\n", 215 | "9997 0.853534 0.847708 0.851210 0.852030 0.055730\n", 216 | "9998 0.845414 0.847407 0.850314 0.855639 0.048556" 217 | ] 218 | }, 219 | "execution_count": 53, 220 | "metadata": {}, 221 | "output_type": "execute_result" 222 | } 223 | ], 224 | "source": [ 225 | "#进行数据归一化\n", 226 | "from sklearn import preprocessing\n", 227 | "min_max_scaler = preprocessing.MinMaxScaler()\n", 228 | "df0=min_max_scaler.fit_transform(df1)\n", 229 | "df1 = pd.DataFrame(df0, columns=df1.columns)\n", 230 | "df1.tail()" 231 | ] 232 | }, 233 | { 234 | "cell_type": "code", 235 | "execution_count": 54, 236 | "metadata": {}, 237 | "outputs": [], 238 | "source": [ 239 | "#调整列顺序\n", 240 | "cols=list(df1)\n", 241 | "cols.insert(0,cols.pop(cols.index('Volume ')))\n", 242 | "df1=df1[cols]" 243 | ] 244 | }, 245 | { 246 | "cell_type": "code", 247 | "execution_count": 55, 248 | "metadata": {}, 249 | "outputs": [ 250 | { 251 | "data": { 252 | "text/html": [ 253 | "
\n", 254 | "\n", 267 | "\n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | "
VolumeOpenHighLowCloselabel
99940.0279700.8439100.8465020.8497160.8547371
99950.0295780.8475190.8443910.8512100.8493230
99960.0787030.8487220.8477080.8503140.8538351
99970.0557300.8535340.8477080.8512100.8520300
99980.0485560.8454140.8474070.8503140.8556391
\n", 327 | "
" 328 | ], 329 | "text/plain": [ 330 | " Volume Open High Low Close label\n", 331 | "9994 0.027970 0.843910 0.846502 0.849716 0.854737 1\n", 332 | "9995 0.029578 0.847519 0.844391 0.851210 0.849323 0\n", 333 | "9996 0.078703 0.848722 0.847708 0.850314 0.853835 1\n", 334 | "9997 0.055730 0.853534 0.847708 0.851210 0.852030 0\n", 335 | "9998 0.048556 0.845414 0.847407 0.850314 0.855639 1" 336 | ] 337 | }, 338 | "execution_count": 55, 339 | "metadata": {}, 340 | "output_type": "execute_result" 341 | } 342 | ], 343 | "source": [ 344 | "#计算得出标签\n", 345 | "record=(df1['Close'][1:].values-df1['Close'][0:-1].values)>0\n", 346 | "classification=[0]\n", 347 | "for i in record:\n", 348 | " if(i==True):\n", 349 | " classification.append(1)\n", 350 | " else:\n", 351 | " classification.append(0)\n", 352 | "classification\n", 353 | "df1['label']=classification \n", 354 | "df1.tail()" 355 | ] 356 | }, 357 | { 358 | "cell_type": "code", 359 | "execution_count": 56, 360 | "metadata": {}, 361 | "outputs": [ 362 | { 363 | "name": "stderr", 364 | "output_type": "stream", 365 | "text": [ 366 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:6: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n", 367 | " \n" 368 | ] 369 | }, 370 | { 371 | "data": { 372 | "text/plain": [ 373 | "((8997, 1, 6), (1000, 1, 6))" 374 | ] 375 | }, 376 | "execution_count": 56, 377 | "metadata": {}, 378 | "output_type": "execute_result" 379 | } 380 | ], 381 | "source": [ 382 | "#构建LSTM输入\n", 383 | "stock=df1\n", 384 | "seq_len=window\n", 385 | "input_size=len(df1.iloc[1,:])\n", 386 | "amount_of_features = len(stock.columns)#有几列\n", 387 | "data = stock.as_matrix() #pd.DataFrame(stock) 表格转化为矩阵\n", 388 | "sequence_length = seq_len + 1#序列长度5+1\n", 389 | "result = []\n", 390 | "for index in range(len(data) - sequence_length):#循环170-5次\n", 391 | " result.append(data[index: index + sequence_length])#第i行到i+5\n", 392 | "result = np.array(result)#得到161个样本,样本形式为6天*3特征\n", 393 | "row = round(0.9 * result.shape[0])#划分训练集测试集\n", 394 | "train = result[:int(row), :]\n", 395 | "x_train = train[:, :-1]\n", 396 | "y_train = train[:, -1][:,-1]\n", 397 | "x_test = result[int(row):, :-1]\n", 398 | "y_test = result[int(row):, -1][:,-1]\n", 399 | "#reshape成 5天*3特征\n", 400 | "X_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], amount_of_features))\n", 401 | "X_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], amount_of_features)) \n", 402 | "X_train.shape,X_test.shape" 403 | ] 404 | }, 405 | { 406 | "cell_type": "code", 407 | "execution_count": 57, 408 | "metadata": {}, 409 | "outputs": [ 410 | { 411 | "name": "stderr", 412 | "output_type": "stream", 413 | "text": [ 414 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:6: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(32, activation=\"relu\", kernel_initializer=\"uniform\")`\n", 415 | " \n", 416 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:7: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(1, activation=\"sigmoid\", kernel_initializer=\"uniform\")`\n", 417 | " import sys\n", 418 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:9: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.\n", 419 | " if __name__ == '__main__':\n" 420 | ] 421 | }, 422 | { 423 | "name": "stdout", 424 | "output_type": "stream", 425 | "text": [ 426 | "Train on 8997 samples, validate on 1000 samples\n", 427 | "Epoch 1/100\n", 428 | "8997/8997 [==============================] - 3s 297us/step - loss: 0.6923 - accuracy: 0.5136 - val_loss: 0.6912 - val_accuracy: 0.5270\n", 429 | "Epoch 2/100\n", 430 | "8997/8997 [==============================] - 0s 36us/step - loss: 0.6876 - accuracy: 0.5457 - val_loss: 0.6883 - val_accuracy: 0.5410\n", 431 | "Epoch 3/100\n", 432 | "8997/8997 [==============================] - 0s 39us/step - loss: 0.6815 - accuracy: 0.5770 - val_loss: 0.6938 - val_accuracy: 0.5410\n", 433 | "Epoch 4/100\n", 434 | "8997/8997 [==============================] - 0s 35us/step - loss: 0.6812 - accuracy: 0.5770 - val_loss: 0.6935 - val_accuracy: 0.5410\n", 435 | "Epoch 5/100\n", 436 | "8997/8997 [==============================] - 0s 27us/step - loss: 0.6813 - accuracy: 0.5770 - val_loss: 0.6922 - val_accuracy: 0.5410\n", 437 | "Epoch 6/100\n", 438 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6811 - accuracy: 0.5770 - val_loss: 0.6919 - val_accuracy: 0.5410\n", 439 | "Epoch 7/100\n", 440 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6810 - accuracy: 0.5770 - val_loss: 0.6927 - val_accuracy: 0.5410\n", 441 | "Epoch 8/100\n", 442 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6809 - accuracy: 0.5770 - val_loss: 0.6924 - val_accuracy: 0.5410\n", 443 | "Epoch 9/100\n", 444 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6808 - accuracy: 0.5770 - val_loss: 0.6913 - val_accuracy: 0.5410\n", 445 | "Epoch 10/100\n", 446 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6809 - accuracy: 0.5770 - val_loss: 0.6912 - val_accuracy: 0.5410\n", 447 | "Epoch 11/100\n", 448 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6808 - accuracy: 0.5770 - val_loss: 0.6907 - val_accuracy: 0.5410\n", 449 | "Epoch 12/100\n", 450 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6807 - accuracy: 0.5770 - val_loss: 0.6907 - val_accuracy: 0.5410\n", 451 | "Epoch 13/100\n", 452 | "8997/8997 [==============================] - 0s 26us/step - loss: 0.6807 - accuracy: 0.5770 - val_loss: 0.6912 - val_accuracy: 0.5410\n", 453 | "Epoch 14/100\n", 454 | "8997/8997 [==============================] - 0s 27us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6910 - val_accuracy: 0.5410\n", 455 | "Epoch 15/100\n", 456 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6808 - accuracy: 0.5770 - val_loss: 0.6902 - val_accuracy: 0.5410\n", 457 | "Epoch 16/100\n", 458 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6807 - accuracy: 0.5770 - val_loss: 0.6897 - val_accuracy: 0.5410\n", 459 | "Epoch 17/100\n", 460 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6895 - val_accuracy: 0.5410\n", 461 | "Epoch 18/100\n", 462 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6805 - accuracy: 0.5770 - val_loss: 0.6904 - val_accuracy: 0.5410\n", 463 | "Epoch 19/100\n", 464 | "8997/8997 [==============================] - 0s 26us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6894 - val_accuracy: 0.5410\n", 465 | "Epoch 20/100\n", 466 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6896 - val_accuracy: 0.5410\n", 467 | "Epoch 21/100\n", 468 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6891 - val_accuracy: 0.5410\n", 469 | "Epoch 22/100\n", 470 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6807 - accuracy: 0.5770 - val_loss: 0.6898 - val_accuracy: 0.5410\n", 471 | "Epoch 23/100\n", 472 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6889 - val_accuracy: 0.5410\n", 473 | "Epoch 24/100\n", 474 | "8997/8997 [==============================] - 0s 27us/step - loss: 0.6805 - accuracy: 0.5770 - val_loss: 0.6890 - val_accuracy: 0.5410\n", 475 | "Epoch 25/100\n", 476 | "8997/8997 [==============================] - 0s 26us/step - loss: 0.6807 - accuracy: 0.5770 - val_loss: 0.6890 - val_accuracy: 0.5410\n", 477 | "Epoch 26/100\n", 478 | "8997/8997 [==============================] - 0s 29us/step - loss: 0.6804 - accuracy: 0.5770 - val_loss: 0.6889 - val_accuracy: 0.5410\n", 479 | "Epoch 27/100\n", 480 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6804 - accuracy: 0.5770 - val_loss: 0.6884 - val_accuracy: 0.5410\n", 481 | "Epoch 28/100\n", 482 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6885 - val_accuracy: 0.5410\n", 483 | "Epoch 29/100\n", 484 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6805 - accuracy: 0.5770 - val_loss: 0.6891 - val_accuracy: 0.5410\n", 485 | "Epoch 30/100\n", 486 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6888 - val_accuracy: 0.5410\n", 487 | "Epoch 31/100\n", 488 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6806 - accuracy: 0.5770 - val_loss: 0.6892 - val_accuracy: 0.5410\n", 489 | "Epoch 32/100\n", 490 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6804 - accuracy: 0.5770 - val_loss: 0.6882 - val_accuracy: 0.5410\n", 491 | "Epoch 33/100\n", 492 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6804 - accuracy: 0.5772 - val_loss: 0.6899 - val_accuracy: 0.5410\n", 493 | "Epoch 34/100\n", 494 | "8997/8997 [==============================] - 0s 31us/step - loss: 0.6805 - accuracy: 0.5770 - val_loss: 0.6883 - val_accuracy: 0.5410\n", 495 | "Epoch 35/100\n", 496 | "8997/8997 [==============================] - 0s 30us/step - loss: 0.6805 - accuracy: 0.5771 - val_loss: 0.6889 - val_accuracy: 0.5410\n", 497 | "Epoch 36/100\n", 498 | "8997/8997 [==============================] - 0s 30us/step - loss: 0.6804 - accuracy: 0.5770 - val_loss: 0.6883 - val_accuracy: 0.5410\n", 499 | "Epoch 37/100\n", 500 | "8997/8997 [==============================] - 0s 42us/step - loss: 0.6803 - accuracy: 0.5770 - val_loss: 0.6881 - val_accuracy: 0.5420\n", 501 | "Epoch 38/100\n", 502 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6804 - accuracy: 0.5769 - val_loss: 0.6884 - val_accuracy: 0.5420\n", 503 | "Epoch 39/100\n", 504 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6804 - accuracy: 0.5769 - val_loss: 0.6883 - val_accuracy: 0.5410\n", 505 | "Epoch 40/100\n", 506 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6803 - accuracy: 0.5770 - val_loss: 0.6885 - val_accuracy: 0.5410\n", 507 | "Epoch 41/100\n", 508 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6803 - accuracy: 0.5769 - val_loss: 0.6884 - val_accuracy: 0.5410\n", 509 | "Epoch 42/100\n", 510 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6805 - accuracy: 0.5770 - val_loss: 0.6883 - val_accuracy: 0.5420\n", 511 | "Epoch 43/100\n", 512 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6807 - accuracy: 0.5766 - val_loss: 0.6882 - val_accuracy: 0.5420\n", 513 | "Epoch 44/100\n", 514 | "8997/8997 [==============================] - 0s 25us/step - loss: 0.6804 - accuracy: 0.5767 - val_loss: 0.6877 - val_accuracy: 0.5410\n", 515 | "Epoch 45/100\n", 516 | "8997/8997 [==============================] - 0s 25us/step - loss: 0.6803 - accuracy: 0.5767 - val_loss: 0.6881 - val_accuracy: 0.5420\n", 517 | "Epoch 46/100\n", 518 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5767 - val_loss: 0.6880 - val_accuracy: 0.5420\n", 519 | "Epoch 47/100\n", 520 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6803 - accuracy: 0.5766 - val_loss: 0.6885 - val_accuracy: 0.5410\n", 521 | "Epoch 48/100\n", 522 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6803 - accuracy: 0.5766 - val_loss: 0.6881 - val_accuracy: 0.5410\n", 523 | "Epoch 49/100\n", 524 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6802 - accuracy: 0.5766 - val_loss: 0.6881 - val_accuracy: 0.5410\n", 525 | "Epoch 50/100\n", 526 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6804 - accuracy: 0.5766 - val_loss: 0.6879 - val_accuracy: 0.5410\n", 527 | "Epoch 51/100\n", 528 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5766 - val_loss: 0.6880 - val_accuracy: 0.5420\n", 529 | "Epoch 52/100\n", 530 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5767 - val_loss: 0.6881 - val_accuracy: 0.5410\n", 531 | "Epoch 53/100\n", 532 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6804 - accuracy: 0.5771 - val_loss: 0.6877 - val_accuracy: 0.5410\n", 533 | "Epoch 54/100\n", 534 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6804 - accuracy: 0.5767 - val_loss: 0.6880 - val_accuracy: 0.5420\n", 535 | "Epoch 55/100\n", 536 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5767 - val_loss: 0.6874 - val_accuracy: 0.5420\n", 537 | "Epoch 56/100\n" 538 | ] 539 | }, 540 | { 541 | "name": "stdout", 542 | "output_type": "stream", 543 | "text": [ 544 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6804 - accuracy: 0.5764 - val_loss: 0.6878 - val_accuracy: 0.5420\n", 545 | "Epoch 57/100\n", 546 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6803 - accuracy: 0.5767 - val_loss: 0.6874 - val_accuracy: 0.5420\n", 547 | "Epoch 58/100\n", 548 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5765 - val_loss: 0.6881 - val_accuracy: 0.5430\n", 549 | "Epoch 59/100\n", 550 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.6804 - accuracy: 0.5767 - val_loss: 0.6877 - val_accuracy: 0.5420\n", 551 | "Epoch 60/100\n", 552 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6878 - val_accuracy: 0.5420\n", 553 | "Epoch 61/100\n", 554 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5766 - val_loss: 0.6874 - val_accuracy: 0.5420\n", 555 | "Epoch 62/100\n", 556 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5764 - val_loss: 0.6879 - val_accuracy: 0.5420\n", 557 | "Epoch 63/100\n", 558 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5765 - val_loss: 0.6875 - val_accuracy: 0.5420\n", 559 | "Epoch 64/100\n", 560 | "8997/8997 [==============================] - 0s 20us/step - loss: 0.6803 - accuracy: 0.5769 - val_loss: 0.6874 - val_accuracy: 0.5410\n", 561 | "Epoch 65/100\n", 562 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6881 - val_accuracy: 0.5420\n", 563 | "Epoch 66/100\n", 564 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5762 - val_loss: 0.6873 - val_accuracy: 0.5420\n", 565 | "Epoch 67/100\n", 566 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6873 - val_accuracy: 0.5420\n", 567 | "Epoch 68/100\n", 568 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6874 - val_accuracy: 0.5430\n", 569 | "Epoch 69/100\n", 570 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6804 - accuracy: 0.5767 - val_loss: 0.6875 - val_accuracy: 0.5420\n", 571 | "Epoch 70/100\n", 572 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5764 - val_loss: 0.6870 - val_accuracy: 0.5430\n", 573 | "Epoch 71/100\n", 574 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6872 - val_accuracy: 0.5430\n", 575 | "Epoch 72/100\n", 576 | "8997/8997 [==============================] - 0s 25us/step - loss: 0.6802 - accuracy: 0.5769 - val_loss: 0.6877 - val_accuracy: 0.5420\n", 577 | "Epoch 73/100\n", 578 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6802 - accuracy: 0.5769 - val_loss: 0.6870 - val_accuracy: 0.5430\n", 579 | "Epoch 74/100\n", 580 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6802 - accuracy: 0.5767 - val_loss: 0.6872 - val_accuracy: 0.5420\n", 581 | "Epoch 75/100\n", 582 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6806 - accuracy: 0.5764 - val_loss: 0.6876 - val_accuracy: 0.5420\n", 583 | "Epoch 76/100\n", 584 | "8997/8997 [==============================] - 0s 26us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6878 - val_accuracy: 0.5430\n", 585 | "Epoch 77/100\n", 586 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5765 - val_loss: 0.6873 - val_accuracy: 0.5420\n", 587 | "Epoch 78/100\n", 588 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6804 - accuracy: 0.5766 - val_loss: 0.6868 - val_accuracy: 0.5440\n", 589 | "Epoch 79/100\n", 590 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5769 - val_loss: 0.6871 - val_accuracy: 0.5420\n", 591 | "Epoch 80/100\n", 592 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5765 - val_loss: 0.6869 - val_accuracy: 0.5420\n", 593 | "Epoch 81/100\n", 594 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6805 - accuracy: 0.5771 - val_loss: 0.6872 - val_accuracy: 0.5430\n", 595 | "Epoch 82/100\n", 596 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5762 - val_loss: 0.6869 - val_accuracy: 0.5380\n", 597 | "Epoch 83/100\n", 598 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5770 - val_loss: 0.6877 - val_accuracy: 0.5380\n", 599 | "Epoch 84/100\n", 600 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6804 - accuracy: 0.5774 - val_loss: 0.6873 - val_accuracy: 0.5380\n", 601 | "Epoch 85/100\n", 602 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6804 - accuracy: 0.5765 - val_loss: 0.6877 - val_accuracy: 0.5390\n", 603 | "Epoch 86/100\n", 604 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6803 - accuracy: 0.5774 - val_loss: 0.6876 - val_accuracy: 0.5390\n", 605 | "Epoch 87/100\n", 606 | "8997/8997 [==============================] - 0s 27us/step - loss: 0.6802 - accuracy: 0.5764 - val_loss: 0.6873 - val_accuracy: 0.5380\n", 607 | "Epoch 88/100\n", 608 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6802 - accuracy: 0.5773 - val_loss: 0.6870 - val_accuracy: 0.5380\n", 609 | "Epoch 89/100\n", 610 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6801 - accuracy: 0.5773 - val_loss: 0.6869 - val_accuracy: 0.5380\n", 611 | "Epoch 90/100\n", 612 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6803 - accuracy: 0.5775 - val_loss: 0.6868 - val_accuracy: 0.5380\n", 613 | "Epoch 91/100\n", 614 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5773 - val_loss: 0.6871 - val_accuracy: 0.5390\n", 615 | "Epoch 92/100\n", 616 | "8997/8997 [==============================] - 0s 21us/step - loss: 0.6802 - accuracy: 0.5772 - val_loss: 0.6869 - val_accuracy: 0.5380\n", 617 | "Epoch 93/100\n", 618 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6802 - accuracy: 0.5775 - val_loss: 0.6870 - val_accuracy: 0.5390\n", 619 | "Epoch 94/100\n", 620 | "8997/8997 [==============================] - 0s 42us/step - loss: 0.6803 - accuracy: 0.5773 - val_loss: 0.6872 - val_accuracy: 0.5380\n", 621 | "Epoch 95/100\n", 622 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.6802 - accuracy: 0.5772 - val_loss: 0.6870 - val_accuracy: 0.5380\n", 623 | "Epoch 96/100\n", 624 | "8997/8997 [==============================] - 0s 26us/step - loss: 0.6802 - accuracy: 0.5774 - val_loss: 0.6872 - val_accuracy: 0.5380\n", 625 | "Epoch 97/100\n", 626 | "8997/8997 [==============================] - 0s 25us/step - loss: 0.6803 - accuracy: 0.5772 - val_loss: 0.6876 - val_accuracy: 0.5390\n", 627 | "Epoch 98/100\n", 628 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6802 - accuracy: 0.5771 - val_loss: 0.6865 - val_accuracy: 0.5370\n", 629 | "Epoch 99/100\n", 630 | "8997/8997 [==============================] - 0s 27us/step - loss: 0.6802 - accuracy: 0.5773 - val_loss: 0.6873 - val_accuracy: 0.5380\n", 631 | "Epoch 100/100\n", 632 | "8997/8997 [==============================] - 0s 22us/step - loss: 0.6801 - accuracy: 0.5774 - val_loss: 0.6874 - val_accuracy: 0.5390\n" 633 | ] 634 | }, 635 | { 636 | "data": { 637 | "text/plain": [ 638 | "" 639 | ] 640 | }, 641 | "execution_count": 57, 642 | "metadata": {}, 643 | "output_type": "execute_result" 644 | } 645 | ], 646 | "source": [ 647 | "#建立LSTM模型 训练\n", 648 | "d = 0.01\n", 649 | "model = Sequential()\n", 650 | "model.add(LSTM(64, input_shape=(window, input_size), return_sequences=False))\n", 651 | "model.add(Dropout(d))\n", 652 | "model.add(Dense(32,init='uniform',activation='relu')) \n", 653 | "model.add(Dense(1,init='uniform',activation='sigmoid'))\n", 654 | "model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])\n", 655 | "model.fit(X_train, y_train, nb_epoch = 100, batch_size = 200,validation_data=(X_test, y_test)) #训练模型1000次" 656 | ] 657 | }, 658 | { 659 | "cell_type": "code", 660 | "execution_count": 58, 661 | "metadata": {}, 662 | "outputs": [ 663 | { 664 | "data": { 665 | "text/plain": [ 666 | "" 667 | ] 668 | }, 669 | "execution_count": 58, 670 | "metadata": {}, 671 | "output_type": "execute_result" 672 | }, 673 | { 674 | "data": { 675 | "image/png": "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\n", 676 | "text/plain": [ 677 | "
" 678 | ] 679 | }, 680 | "metadata": { 681 | "needs_background": "light" 682 | }, 683 | "output_type": "display_data" 684 | } 685 | ], 686 | "source": [ 687 | "#画出迭代曲线\n", 688 | "pd.DataFrame(model.history.history).plot()" 689 | ] 690 | }, 691 | { 692 | "cell_type": "code", 693 | "execution_count": 59, 694 | "metadata": {}, 695 | "outputs": [ 696 | { 697 | "name": "stdout", 698 | "output_type": "stream", 699 | "text": [ 700 | "精确度等指标:\n", 701 | " precision recall f1-score support\n", 702 | "\n", 703 | " 0.0 0.59 0.56 0.58 4631\n", 704 | " 1.0 0.56 0.59 0.58 4366\n", 705 | "\n", 706 | " accuracy 0.58 8997\n", 707 | " macro avg 0.58 0.58 0.58 8997\n", 708 | "weighted avg 0.58 0.58 0.58 8997\n", 709 | "\n", 710 | "混淆矩阵:\n", 711 | "[[2601 2030]\n", 712 | " [1775 2591]]\n" 713 | ] 714 | } 715 | ], 716 | "source": [ 717 | "#在训练集上的拟合结果\n", 718 | "y_train_predict=model.predict(X_train)\n", 719 | "y_train_predict=y_train_predict[:,0]\n", 720 | "y_train_predict>0.5\n", 721 | "y_train_predict=[int(i) for i in y_train_predict>0.5]\n", 722 | "y_train_predict=np.array(y_train_predict)\n", 723 | "from sklearn import metrics\n", 724 | "print(\"精确度等指标:\")\n", 725 | "print(metrics.classification_report(y_train,y_train_predict))\n", 726 | "print(\"混淆矩阵:\")\n", 727 | "print(metrics.confusion_matrix(y_train,y_train_predict))" 728 | ] 729 | }, 730 | { 731 | "cell_type": "code", 732 | "execution_count": 60, 733 | "metadata": {}, 734 | "outputs": [ 735 | { 736 | "name": "stdout", 737 | "output_type": "stream", 738 | "text": [ 739 | "精确度等指标:\n", 740 | " precision recall f1-score support\n", 741 | "\n", 742 | " 0.0 0.57 0.51 0.54 527\n", 743 | " 1.0 0.51 0.57 0.54 473\n", 744 | "\n", 745 | " accuracy 0.54 1000\n", 746 | " macro avg 0.54 0.54 0.54 1000\n", 747 | "weighted avg 0.54 0.54 0.54 1000\n", 748 | "\n", 749 | "混淆矩阵:\n", 750 | "[[271 256]\n", 751 | " [205 268]]\n" 752 | ] 753 | } 754 | ], 755 | "source": [ 756 | "#在测试集上的拟合结果\n", 757 | "y_test_predict=model.predict(X_test)\n", 758 | "y_test_predict=y_test_predict[:,0]\n", 759 | "y_test_predict>0.5\n", 760 | "y_test_predict=[int(i) for i in y_test_predict>0.5]\n", 761 | "y_test_predict=np.array(y_test_predict)\n", 762 | "from sklearn import metrics\n", 763 | "print(\"精确度等指标:\")\n", 764 | "print(metrics.classification_report(y_test,y_test_predict))\n", 765 | "print(\"混淆矩阵:\")\n", 766 | "print(metrics.confusion_matrix(y_test,y_test_predict))" 767 | ] 768 | }, 769 | { 770 | "cell_type": "code", 771 | "execution_count": null, 772 | "metadata": {}, 773 | "outputs": [], 774 | "source": [] 775 | } 776 | ], 777 | "metadata": { 778 | "kernelspec": { 779 | "display_name": "Python 3", 780 | "language": "python", 781 | "name": "python3" 782 | }, 783 | "language_info": { 784 | "codemirror_mode": { 785 | "name": "ipython", 786 | "version": 3 787 | }, 788 | "file_extension": ".py", 789 | "mimetype": "text/x-python", 790 | "name": "python", 791 | "nbconvert_exporter": "python", 792 | "pygments_lexer": "ipython3", 793 | "version": "3.7.3" 794 | } 795 | }, 796 | "nbformat": 4, 797 | "nbformat_minor": 2 798 | } 799 | -------------------------------------------------------------------------------- /LSTM-regression.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 84, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "#导入必要的库\n", 10 | "import numpy as np\n", 11 | "import matplotlib.pyplot as plt\n", 12 | "import pandas as pd\n", 13 | "from sklearn import preprocessing\n", 14 | "from sklearn.metrics import mean_squared_error\n", 15 | "from math import sqrt\n", 16 | "from keras.models import Sequential\n", 17 | "from keras.layers.core import Dense, Dropout, Activation\n", 18 | "from keras.layers.recurrent import LSTM" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 85, 24 | "metadata": {}, 25 | "outputs": [ 26 | { 27 | "name": "stderr", 28 | "output_type": "stream", 29 | "text": [ 30 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:4: FutureWarning: read_table is deprecated, use read_csv instead.\n", 31 | " after removing the cwd from sys.path.\n" 32 | ] 33 | }, 34 | { 35 | "data": { 36 | "text/html": [ 37 | "
\n", 38 | "\n", 51 | "\n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | "
OpenHighLowCloseVolume
99941.221981.222261.221981.22226386.8
99951.222101.222191.222031.22208404.3
99961.222141.222301.222001.22223939.1
99971.222301.222301.222031.22217689.0
99981.222031.222291.222001.22229610.9
\n", 105 | "
" 106 | ], 107 | "text/plain": [ 108 | " Open High Low Close Volume \n", 109 | "9994 1.22198 1.22226 1.22198 1.22226 386.8\n", 110 | "9995 1.22210 1.22219 1.22203 1.22208 404.3\n", 111 | "9996 1.22214 1.22230 1.22200 1.22223 939.1\n", 112 | "9997 1.22230 1.22230 1.22203 1.22217 689.0\n", 113 | "9998 1.22203 1.22229 1.22200 1.22229 610.9" 114 | ] 115 | }, 116 | "execution_count": 85, 117 | "metadata": {}, 118 | "output_type": "execute_result" 119 | } 120 | ], 121 | "source": [ 122 | "#设置LSTM的时间窗\n", 123 | "window=1\n", 124 | "#读取数据\n", 125 | "df1=pd.read_table(\"train-small.txt\",sep=',',header=0)\n", 126 | "df1=df1.iloc[:10000,1:]\n", 127 | "df1.tail()" 128 | ] 129 | }, 130 | { 131 | "cell_type": "code", 132 | "execution_count": 86, 133 | "metadata": {}, 134 | "outputs": [], 135 | "source": [ 136 | "#进行数据归一化\n", 137 | "from sklearn import preprocessing\n", 138 | "min_max_scaler = preprocessing.MinMaxScaler()\n", 139 | "df0=min_max_scaler.fit_transform(df1)\n", 140 | "df = pd.DataFrame(df0, columns=df1.columns)\n", 141 | "input_size=len(df.iloc[1,:])" 142 | ] 143 | }, 144 | { 145 | "cell_type": "code", 146 | "execution_count": 87, 147 | "metadata": {}, 148 | "outputs": [], 149 | "source": [ 150 | "#调整列顺序\n", 151 | "cols=list(df)\n", 152 | "cols.insert(0,cols.pop(cols.index('Volume ')))\n", 153 | "df=df[cols]" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": 88, 159 | "metadata": {}, 160 | "outputs": [ 161 | { 162 | "name": "stderr", 163 | "output_type": "stream", 164 | "text": [ 165 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:5: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n", 166 | " \"\"\"\n" 167 | ] 168 | } 169 | ], 170 | "source": [ 171 | "#构建LSTM模型的输入\n", 172 | "stock=df\n", 173 | "seq_len=window\n", 174 | "amount_of_features = len(stock.columns)#有几列\n", 175 | "data = stock.as_matrix() #pd.DataFrame(stock) 表格转化为矩阵\n", 176 | "sequence_length = seq_len + 1#序列长度5+1\n", 177 | "result = []\n", 178 | "for index in range(len(data) - sequence_length):#循环170-5次\n", 179 | " result.append(data[index: index + sequence_length])#第i行到i+5\n", 180 | "result = np.array(result)#得到161个样本,样本形式为6天*3特征\n", 181 | "row = round(0.9 * result.shape[0])#划分训练集测试集\n", 182 | "train = result[:int(row), :]\n", 183 | "x_train = train[:, :-1]\n", 184 | "y_train = train[:, -1][:,-1]\n", 185 | "x_test = result[int(row):, :-1]\n", 186 | "y_test = result[int(row):, -1][:,-1]\n", 187 | "#reshape成 5天*3特征\n", 188 | "X_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], amount_of_features))\n", 189 | "X_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], amount_of_features)) " 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 89, 195 | "metadata": {}, 196 | "outputs": [ 197 | { 198 | "name": "stderr", 199 | "output_type": "stream", 200 | "text": [ 201 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:6: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(16, activation=\"relu\", kernel_initializer=\"uniform\")`\n", 202 | " \n", 203 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:7: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(1, activation=\"relu\", kernel_initializer=\"uniform\")`\n", 204 | " import sys\n", 205 | "E:\\anoconda\\lib\\site-packages\\ipykernel_launcher.py:9: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.\n", 206 | " if __name__ == '__main__':\n" 207 | ] 208 | }, 209 | { 210 | "name": "stdout", 211 | "output_type": "stream", 212 | "text": [ 213 | "Train on 8997 samples, validate on 1000 samples\n", 214 | "Epoch 1/100\n", 215 | "8997/8997 [==============================] - 1s 105us/step - loss: 0.2117 - accuracy: 1.1115e-04 - val_loss: 0.3859 - val_accuracy: 0.0000e+00\n", 216 | "Epoch 2/100\n", 217 | "8997/8997 [==============================] - 0s 26us/step - loss: 0.0289 - accuracy: 1.1115e-04 - val_loss: 0.0107 - val_accuracy: 0.0010\n", 218 | "Epoch 3/100\n", 219 | "8997/8997 [==============================] - 0s 32us/step - loss: 0.0060 - accuracy: 1.1115e-04 - val_loss: 0.0056 - val_accuracy: 0.0010\n", 220 | "Epoch 4/100\n", 221 | "8997/8997 [==============================] - 0s 24us/step - loss: 0.0032 - accuracy: 1.1115e-04 - val_loss: 0.0017 - val_accuracy: 0.0010\n", 222 | "Epoch 5/100\n", 223 | "8997/8997 [==============================] - 0s 23us/step - loss: 0.0015 - accuracy: 1.1115e-04 - val_loss: 2.9899e-04 - val_accuracy: 0.0010\n", 224 | "Epoch 6/100\n", 225 | "8997/8997 [==============================] - 0s 23us/step - loss: 7.1400e-04 - accuracy: 1.1115e-04 - val_loss: 9.6646e-05 - val_accuracy: 0.0010\n", 226 | "Epoch 7/100\n", 227 | "8997/8997 [==============================] - 0s 22us/step - loss: 4.0668e-04 - accuracy: 1.1115e-04 - val_loss: 2.7180e-04 - val_accuracy: 0.0010\n", 228 | "Epoch 8/100\n", 229 | "8997/8997 [==============================] - 0s 23us/step - loss: 3.1662e-04 - accuracy: 1.1115e-04 - val_loss: 4.6937e-04 - val_accuracy: 0.0010\n", 230 | "Epoch 9/100\n", 231 | "8997/8997 [==============================] - 0s 22us/step - loss: 2.9236e-04 - accuracy: 1.1115e-04 - val_loss: 4.6544e-04 - val_accuracy: 0.0010\n", 232 | "Epoch 10/100\n", 233 | "8997/8997 [==============================] - 0s 22us/step - loss: 2.7095e-04 - accuracy: 1.1115e-04 - val_loss: 4.7182e-04 - val_accuracy: 0.0010\n", 234 | "Epoch 11/100\n", 235 | "8997/8997 [==============================] - 0s 21us/step - loss: 2.6104e-04 - accuracy: 1.1115e-04 - val_loss: 4.7367e-04 - val_accuracy: 0.0010\n", 236 | "Epoch 12/100\n", 237 | "8997/8997 [==============================] - 0s 21us/step - loss: 2.4418e-04 - accuracy: 1.1115e-04 - val_loss: 3.5014e-04 - val_accuracy: 0.0010\n", 238 | "Epoch 13/100\n", 239 | "8997/8997 [==============================] - 0s 22us/step - loss: 2.3309e-04 - accuracy: 1.1115e-04 - val_loss: 3.9607e-04 - val_accuracy: 0.0010\n", 240 | "Epoch 14/100\n", 241 | "8997/8997 [==============================] - 0s 22us/step - loss: 2.1573e-04 - accuracy: 1.1115e-04 - val_loss: 3.9244e-04 - val_accuracy: 0.0010\n", 242 | "Epoch 15/100\n", 243 | "8997/8997 [==============================] - 0s 21us/step - loss: 2.0557e-04 - accuracy: 1.1115e-04 - val_loss: 3.2604e-04 - val_accuracy: 0.0010\n", 244 | "Epoch 16/100\n", 245 | "8997/8997 [==============================] - 0s 22us/step - loss: 1.9340e-04 - accuracy: 1.1115e-04 - val_loss: 2.7806e-04 - val_accuracy: 0.0010\n", 246 | "Epoch 17/100\n", 247 | "8997/8997 [==============================] - 0s 22us/step - loss: 1.8099e-04 - accuracy: 1.1115e-04 - val_loss: 2.3290e-04 - val_accuracy: 0.0010\n", 248 | "Epoch 18/100\n", 249 | "8997/8997 [==============================] - 0s 24us/step - loss: 1.6936e-04 - accuracy: 1.1115e-04 - val_loss: 1.7555e-04 - val_accuracy: 0.0010\n", 250 | "Epoch 19/100\n", 251 | "8997/8997 [==============================] - 0s 24us/step - loss: 1.5904e-04 - accuracy: 1.1115e-04 - val_loss: 1.8458e-04 - val_accuracy: 0.0010\n", 252 | "Epoch 20/100\n", 253 | "8997/8997 [==============================] - 0s 23us/step - loss: 1.5103e-04 - accuracy: 1.1115e-04 - val_loss: 1.4063e-04 - val_accuracy: 0.0010\n", 254 | "Epoch 21/100\n", 255 | "8997/8997 [==============================] - 0s 21us/step - loss: 1.4178e-04 - accuracy: 1.1115e-04 - val_loss: 1.4926e-04 - val_accuracy: 0.0010\n", 256 | "Epoch 22/100\n", 257 | "8997/8997 [==============================] - 0s 21us/step - loss: 1.3315e-04 - accuracy: 1.1115e-04 - val_loss: 1.1795e-04 - val_accuracy: 0.0010\n", 258 | "Epoch 23/100\n", 259 | "8997/8997 [==============================] - 0s 21us/step - loss: 1.2712e-04 - accuracy: 1.1115e-04 - val_loss: 1.1084e-04 - val_accuracy: 0.0010\n", 260 | "Epoch 24/100\n", 261 | "8997/8997 [==============================] - 0s 21us/step - loss: 1.2290e-04 - accuracy: 1.1115e-04 - val_loss: 9.8882e-05 - val_accuracy: 0.0010\n", 262 | "Epoch 25/100\n", 263 | "8997/8997 [==============================] - 0s 23us/step - loss: 1.1662e-04 - accuracy: 1.1115e-04 - val_loss: 7.5842e-05 - val_accuracy: 0.0010\n", 264 | "Epoch 26/100\n", 265 | "8997/8997 [==============================] - 0s 21us/step - loss: 1.1414e-04 - accuracy: 1.1115e-04 - val_loss: 7.7268e-05 - val_accuracy: 0.0010\n", 266 | "Epoch 27/100\n", 267 | "8997/8997 [==============================] - 0s 24us/step - loss: 1.1088e-04 - accuracy: 1.1115e-04 - val_loss: 7.8689e-05 - val_accuracy: 0.0010\n", 268 | "Epoch 28/100\n", 269 | "8997/8997 [==============================] - 0s 23us/step - loss: 1.0821e-04 - accuracy: 1.1115e-04 - val_loss: 7.3507e-05 - val_accuracy: 0.0010\n", 270 | "Epoch 29/100\n", 271 | "8997/8997 [==============================] - 0s 21us/step - loss: 1.0347e-04 - accuracy: 1.1115e-04 - val_loss: 7.2269e-05 - val_accuracy: 0.0010\n", 272 | "Epoch 30/100\n", 273 | "8997/8997 [==============================] - 0s 23us/step - loss: 1.0512e-04 - accuracy: 1.1115e-04 - val_loss: 7.3401e-05 - val_accuracy: 0.0010\n", 274 | "Epoch 31/100\n", 275 | "8997/8997 [==============================] - 0s 22us/step - loss: 1.0183e-04 - accuracy: 1.1115e-04 - val_loss: 7.3803e-05 - val_accuracy: 0.0010\n", 276 | "Epoch 32/100\n", 277 | "8997/8997 [==============================] - 0s 22us/step - loss: 1.0283e-04 - accuracy: 1.1115e-04 - val_loss: 7.3874e-05 - val_accuracy: 0.0010\n", 278 | "Epoch 33/100\n", 279 | "8997/8997 [==============================] - 0s 22us/step - loss: 9.8046e-05 - accuracy: 1.1115e-04 - val_loss: 8.1598e-05 - val_accuracy: 0.0010\n", 280 | "Epoch 34/100\n", 281 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.7320e-05 - accuracy: 1.1115e-04 - val_loss: 7.5061e-05 - val_accuracy: 0.0010\n", 282 | "Epoch 35/100\n", 283 | "8997/8997 [==============================] - 0s 22us/step - loss: 9.7799e-05 - accuracy: 1.1115e-04 - val_loss: 7.9819e-05 - val_accuracy: 0.0010\n", 284 | "Epoch 36/100\n", 285 | "8997/8997 [==============================] - 0s 22us/step - loss: 1.0031e-04 - accuracy: 1.1115e-04 - val_loss: 8.3777e-05 - val_accuracy: 0.0010\n", 286 | "Epoch 37/100\n", 287 | "8997/8997 [==============================] - 0s 22us/step - loss: 9.6915e-05 - accuracy: 1.1115e-04 - val_loss: 8.4741e-05 - val_accuracy: 0.0010\n", 288 | "Epoch 38/100\n", 289 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.6725e-05 - accuracy: 1.1115e-04 - val_loss: 8.3025e-05 - val_accuracy: 0.0010\n", 290 | "Epoch 39/100\n", 291 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.5395e-05 - accuracy: 1.1115e-04 - val_loss: 7.9906e-05 - val_accuracy: 0.0010\n", 292 | "Epoch 40/100\n", 293 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.8358e-05 - accuracy: 1.1115e-04 - val_loss: 9.0712e-05 - val_accuracy: 0.0010\n", 294 | "Epoch 41/100\n", 295 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.5397e-05 - accuracy: 1.1115e-04 - val_loss: 7.5835e-05 - val_accuracy: 0.0010\n", 296 | "Epoch 42/100\n", 297 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.6551e-05 - accuracy: 1.1115e-04 - val_loss: 8.7060e-05 - val_accuracy: 0.0010\n", 298 | "Epoch 43/100\n", 299 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.5867e-05 - accuracy: 1.1115e-04 - val_loss: 8.4656e-05 - val_accuracy: 0.0010\n", 300 | "Epoch 44/100\n", 301 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.3556e-05 - accuracy: 1.1115e-04 - val_loss: 8.4486e-05 - val_accuracy: 0.0010\n", 302 | "Epoch 45/100\n", 303 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.7805e-05 - accuracy: 1.1115e-04 - val_loss: 9.6522e-05 - val_accuracy: 0.0010\n", 304 | "Epoch 46/100\n", 305 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.7608e-05 - accuracy: 1.1115e-04 - val_loss: 8.0626e-05 - val_accuracy: 0.0010\n", 306 | "Epoch 47/100\n", 307 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.9574e-05 - accuracy: 1.1115e-04 - val_loss: 9.3506e-05 - val_accuracy: 0.0010\n", 308 | "Epoch 48/100\n", 309 | "8997/8997 [==============================] - 0s 22us/step - loss: 9.5832e-05 - accuracy: 1.1115e-04 - val_loss: 8.9757e-05 - val_accuracy: 0.0010\n", 310 | "Epoch 49/100\n", 311 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.5497e-05 - accuracy: 1.1115e-04 - val_loss: 8.1129e-05 - val_accuracy: 0.0010\n", 312 | "Epoch 50/100\n", 313 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.7369e-05 - accuracy: 1.1115e-04 - val_loss: 8.5932e-05 - val_accuracy: 0.0010\n", 314 | "Epoch 51/100\n", 315 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.7666e-05 - accuracy: 1.1115e-04 - val_loss: 8.4546e-05 - val_accuracy: 0.0010\n", 316 | "Epoch 52/100\n" 317 | ] 318 | }, 319 | { 320 | "name": "stdout", 321 | "output_type": "stream", 322 | "text": [ 323 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.8145e-05 - accuracy: 1.1115e-04 - val_loss: 8.4372e-05 - val_accuracy: 0.0010\n", 324 | "Epoch 53/100\n", 325 | "8997/8997 [==============================] - 0s 22us/step - loss: 9.6249e-05 - accuracy: 1.1115e-04 - val_loss: 8.6429e-05 - val_accuracy: 0.0010\n", 326 | "Epoch 54/100\n", 327 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.6534e-05 - accuracy: 1.1115e-04 - val_loss: 9.2732e-05 - val_accuracy: 0.0010\n", 328 | "Epoch 55/100\n", 329 | "8997/8997 [==============================] - 0s 21us/step - loss: 9.6092e-05 - accuracy: 1.1115e-04 - val_loss: 8.8160e-05 - val_accuracy: 0.0010\n", 330 | "Epoch 56/100\n", 331 | "8997/8997 [==============================] - 0s 24us/step - loss: 9.4548e-05 - accuracy: 1.1115e-04 - val_loss: 7.7682e-05 - val_accuracy: 0.0010\n", 332 | "Epoch 57/100\n", 333 | "8997/8997 [==============================] - 0s 24us/step - loss: 9.5388e-05 - accuracy: 1.1115e-04 - val_loss: 1.0521e-04 - val_accuracy: 0.0010\n", 334 | "Epoch 58/100\n", 335 | "8997/8997 [==============================] - 0s 28us/step - loss: 9.4659e-05 - accuracy: 1.1115e-04 - val_loss: 7.6711e-05 - val_accuracy: 0.0010\n", 336 | "Epoch 59/100\n", 337 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.7291e-05 - accuracy: 1.1115e-04 - val_loss: 8.6201e-05 - val_accuracy: 0.0010\n", 338 | "Epoch 60/100\n", 339 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.5966e-05 - accuracy: 1.1115e-04 - val_loss: 9.1978e-05 - val_accuracy: 0.0010\n", 340 | "Epoch 61/100\n", 341 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.6034e-05 - accuracy: 1.1115e-04 - val_loss: 7.9663e-05 - val_accuracy: 0.0010\n", 342 | "Epoch 62/100\n", 343 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.3681e-05 - accuracy: 1.1115e-04 - val_loss: 9.4325e-05 - val_accuracy: 0.0010\n", 344 | "Epoch 63/100\n", 345 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.3342e-05 - accuracy: 1.1115e-04 - val_loss: 7.7962e-05 - val_accuracy: 0.0010\n", 346 | "Epoch 64/100\n", 347 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.2605e-05 - accuracy: 1.1115e-04 - val_loss: 7.7722e-05 - val_accuracy: 0.0010\n", 348 | "Epoch 65/100\n", 349 | "8997/8997 [==============================] - 0s 28us/step - loss: 9.5381e-05 - accuracy: 1.1115e-04 - val_loss: 9.0109e-05 - val_accuracy: 0.0010\n", 350 | "Epoch 66/100\n", 351 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.5997e-05 - accuracy: 1.1115e-04 - val_loss: 1.0080e-04 - val_accuracy: 0.0010\n", 352 | "Epoch 67/100\n", 353 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.6473e-05 - accuracy: 1.1115e-04 - val_loss: 1.0269e-04 - val_accuracy: 0.0010\n", 354 | "Epoch 68/100\n", 355 | "8997/8997 [==============================] - 0s 26us/step - loss: 9.4731e-05 - accuracy: 1.1115e-04 - val_loss: 1.0398e-04 - val_accuracy: 0.0010\n", 356 | "Epoch 69/100\n", 357 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.5642e-05 - accuracy: 1.1115e-04 - val_loss: 8.3290e-05 - val_accuracy: 0.0010\n", 358 | "Epoch 70/100\n", 359 | "8997/8997 [==============================] - 0s 24us/step - loss: 9.5176e-05 - accuracy: 1.1115e-04 - val_loss: 7.9385e-05 - val_accuracy: 0.0010\n", 360 | "Epoch 71/100\n", 361 | "8997/8997 [==============================] - 0s 22us/step - loss: 9.7059e-05 - accuracy: 1.1115e-04 - val_loss: 9.4881e-05 - val_accuracy: 0.0010\n", 362 | "Epoch 72/100\n", 363 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.3111e-05 - accuracy: 1.1115e-04 - val_loss: 8.5810e-05 - val_accuracy: 0.0010\n", 364 | "Epoch 73/100\n", 365 | "8997/8997 [==============================] - 0s 26us/step - loss: 9.4739e-05 - accuracy: 1.1115e-04 - val_loss: 1.0027e-04 - val_accuracy: 0.0010\n", 366 | "Epoch 74/100\n", 367 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.2492e-05 - accuracy: 1.1115e-04 - val_loss: 8.1757e-05 - val_accuracy: 0.0010\n", 368 | "Epoch 75/100\n", 369 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.2866e-05 - accuracy: 1.1115e-04 - val_loss: 9.1820e-05 - val_accuracy: 0.0010\n", 370 | "Epoch 76/100\n", 371 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.3287e-05 - accuracy: 1.1115e-04 - val_loss: 7.5702e-05 - val_accuracy: 0.0010\n", 372 | "Epoch 77/100\n", 373 | "8997/8997 [==============================] - 0s 31us/step - loss: 9.4649e-05 - accuracy: 1.1115e-04 - val_loss: 8.8641e-05 - val_accuracy: 0.0010\n", 374 | "Epoch 78/100\n", 375 | "8997/8997 [==============================] - 0s 23us/step - loss: 9.7217e-05 - accuracy: 1.1115e-04 - val_loss: 7.8856e-05 - val_accuracy: 0.0010\n", 376 | "Epoch 79/100\n", 377 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.3898e-05 - accuracy: 1.1115e-04 - val_loss: 1.0381e-04 - val_accuracy: 0.0010\n", 378 | "Epoch 80/100\n", 379 | "8997/8997 [==============================] - 0s 29us/step - loss: 9.4291e-05 - accuracy: 1.1115e-04 - val_loss: 7.3583e-05 - val_accuracy: 0.0010\n", 380 | "Epoch 81/100\n", 381 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.3770e-05 - accuracy: 1.1115e-04 - val_loss: 9.6626e-05 - val_accuracy: 0.0010\n", 382 | "Epoch 82/100\n", 383 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.1735e-05 - accuracy: 1.1115e-04 - val_loss: 9.7536e-05 - val_accuracy: 0.0010\n", 384 | "Epoch 83/100\n", 385 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.5221e-05 - accuracy: 1.1115e-04 - val_loss: 9.3995e-05 - val_accuracy: 0.0010\n", 386 | "Epoch 84/100\n", 387 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.1696e-05 - accuracy: 1.1115e-04 - val_loss: 7.7761e-05 - val_accuracy: 0.0010\n", 388 | "Epoch 85/100\n", 389 | "8997/8997 [==============================] - 0s 24us/step - loss: 9.4142e-05 - accuracy: 1.1115e-04 - val_loss: 8.3972e-05 - val_accuracy: 0.0010\n", 390 | "Epoch 86/100\n", 391 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.1765e-05 - accuracy: 1.1115e-04 - val_loss: 8.2793e-05 - val_accuracy: 0.0010\n", 392 | "Epoch 87/100\n", 393 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.3826e-05 - accuracy: 1.1115e-04 - val_loss: 9.3120e-05 - val_accuracy: 0.0010\n", 394 | "Epoch 88/100\n", 395 | "8997/8997 [==============================] - 0s 27us/step - loss: 9.4570e-05 - accuracy: 1.1115e-04 - val_loss: 9.3488e-05 - val_accuracy: 0.0010\n", 396 | "Epoch 89/100\n", 397 | "8997/8997 [==============================] - 0s 28us/step - loss: 9.3037e-05 - accuracy: 1.1115e-04 - val_loss: 7.5917e-05 - val_accuracy: 0.0010\n", 398 | "Epoch 90/100\n", 399 | "8997/8997 [==============================] - 0s 30us/step - loss: 9.3661e-05 - accuracy: 1.1115e-04 - val_loss: 8.0782e-05 - val_accuracy: 0.0010\n", 400 | "Epoch 91/100\n", 401 | "8997/8997 [==============================] - 0s 24us/step - loss: 9.1371e-05 - accuracy: 1.1115e-04 - val_loss: 7.2496e-05 - val_accuracy: 0.0010\n", 402 | "Epoch 92/100\n", 403 | "8997/8997 [==============================] - 0s 25us/step - loss: 9.2662e-05 - accuracy: 1.1115e-04 - val_loss: 9.0285e-05 - val_accuracy: 0.0010\n", 404 | "Epoch 93/100\n", 405 | "8997/8997 [==============================] - 0s 26us/step - loss: 9.5612e-05 - accuracy: 1.1115e-04 - val_loss: 7.5097e-05 - val_accuracy: 0.0010\n", 406 | "Epoch 94/100\n", 407 | "8997/8997 [==============================] - 0s 29us/step - loss: 9.1829e-05 - accuracy: 1.1115e-04 - val_loss: 8.5156e-05 - val_accuracy: 0.0010\n", 408 | "Epoch 95/100\n", 409 | "8997/8997 [==============================] - 0s 35us/step - loss: 9.3017e-05 - accuracy: 1.1115e-04 - val_loss: 8.2027e-05 - val_accuracy: 0.0010\n", 410 | "Epoch 96/100\n", 411 | "8997/8997 [==============================] - 0s 33us/step - loss: 9.7134e-05 - accuracy: 1.1115e-04 - val_loss: 8.9301e-05 - val_accuracy: 0.0010\n", 412 | "Epoch 97/100\n", 413 | "8997/8997 [==============================] - 0s 24us/step - loss: 9.1534e-05 - accuracy: 1.1115e-04 - val_loss: 1.1552e-04 - val_accuracy: 0.0010\n", 414 | "Epoch 98/100\n", 415 | "8997/8997 [==============================] - 0s 39us/step - loss: 9.4823e-05 - accuracy: 1.1115e-04 - val_loss: 8.6562e-05 - val_accuracy: 0.0010\n", 416 | "Epoch 99/100\n", 417 | "8997/8997 [==============================] - 0s 41us/step - loss: 9.2978e-05 - accuracy: 1.1115e-04 - val_loss: 9.8124e-05 - val_accuracy: 0.0010\n", 418 | "Epoch 100/100\n", 419 | "8997/8997 [==============================] - 0s 36us/step - loss: 9.4091e-05 - accuracy: 1.1115e-04 - val_loss: 7.3639e-05 - val_accuracy: 0.0010\n" 420 | ] 421 | }, 422 | { 423 | "data": { 424 | "text/plain": [ 425 | "" 426 | ] 427 | }, 428 | "execution_count": 89, 429 | "metadata": {}, 430 | "output_type": "execute_result" 431 | } 432 | ], 433 | "source": [ 434 | "#建立LSTM模型 训练\n", 435 | "d = 0.01\n", 436 | "model = Sequential()\n", 437 | "model.add(LSTM(64, input_shape=(window, input_size), return_sequences=False))\n", 438 | "model.add(Dropout(d))\n", 439 | "model.add(Dense(16,init='uniform',activation='relu')) \n", 440 | "model.add(Dense(1,init='uniform',activation='relu'))\n", 441 | "model.compile(loss='mse',optimizer='adam',metrics=['accuracy'])\n", 442 | "model.fit(X_train, y_train, nb_epoch = 100, batch_size = 200,validation_data=(X_test, y_test)) #训练模型1000次" 443 | ] 444 | }, 445 | { 446 | "cell_type": "code", 447 | "execution_count": 90, 448 | "metadata": {}, 449 | "outputs": [ 450 | { 451 | "data": { 452 | "text/plain": [ 453 | "" 454 | ] 455 | }, 456 | "execution_count": 90, 457 | "metadata": {}, 458 | "output_type": "execute_result" 459 | }, 460 | { 461 | "data": { 462 | "image/png": "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\n", 463 | "text/plain": [ 464 | "
" 465 | ] 466 | }, 467 | "metadata": { 468 | "needs_background": "light" 469 | }, 470 | "output_type": "display_data" 471 | } 472 | ], 473 | "source": [ 474 | "#画出迭代loss和acc曲线\n", 475 | "pd.DataFrame(model.history.history).plot()" 476 | ] 477 | }, 478 | { 479 | "cell_type": "code", 480 | "execution_count": 91, 481 | "metadata": {}, 482 | "outputs": [ 483 | { 484 | "data": { 485 | "text/plain": [ 486 | "Text(0.5, 1.0, 'Train Data')" 487 | ] 488 | }, 489 | "execution_count": 91, 490 | "metadata": {}, 491 | "output_type": "execute_result" 492 | }, 493 | { 494 | "data": { 495 | "image/png": "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\n", 496 | "text/plain": [ 497 | "
" 498 | ] 499 | }, 500 | "metadata": { 501 | "needs_background": "light" 502 | }, 503 | "output_type": "display_data" 504 | } 505 | ], 506 | "source": [ 507 | "#在训练集上的拟合结果\n", 508 | "y_train_predict=model.predict(X_train)\n", 509 | "y_train_predict=y_train_predict[:,0]\n", 510 | "draw=pd.concat([pd.DataFrame(y_train),pd.DataFrame(y_train_predict)],axis=1)\n", 511 | "draw.iloc[100:150,0].plot(figsize=(12,6))\n", 512 | "draw.iloc[100:150,1].plot(figsize=(12,6))\n", 513 | "plt.legend(('real', 'predict'),fontsize='15')\n", 514 | "plt.title(\"Train Data\",fontsize='30') #添加标题\n", 515 | "#展示在训练集上的表现 " 516 | ] 517 | }, 518 | { 519 | "cell_type": "code", 520 | "execution_count": 92, 521 | "metadata": {}, 522 | "outputs": [ 523 | { 524 | "data": { 525 | "text/plain": [ 526 | "Text(0.5, 1.0, 'Test Data')" 527 | ] 528 | }, 529 | "execution_count": 92, 530 | "metadata": {}, 531 | "output_type": "execute_result" 532 | }, 533 | { 534 | "data": { 535 | "image/png": "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\n", 536 | "text/plain": [ 537 | "
" 538 | ] 539 | }, 540 | "metadata": { 541 | "needs_background": "light" 542 | }, 543 | "output_type": "display_data" 544 | } 545 | ], 546 | "source": [ 547 | "#在测试集上的预测\n", 548 | "y_test_predict=model.predict(X_test)\n", 549 | "y_test_predict=y_test_predict[:,0]\n", 550 | "draw=pd.concat([pd.DataFrame(y_test),pd.DataFrame(y_test_predict)],axis=1);\n", 551 | "draw.iloc[200:250,0].plot(figsize=(12,6))\n", 552 | "draw.iloc[200:250,1].plot(figsize=(12,6))\n", 553 | "plt.legend(('real', 'predict'),loc='upper right',fontsize='15')\n", 554 | "plt.title(\"Test Data\",fontsize='30') #添加标题\n", 555 | "#展示在测试集上的表现 " 556 | ] 557 | }, 558 | { 559 | "cell_type": "code", 560 | "execution_count": 93, 561 | "metadata": {}, 562 | "outputs": [ 563 | { 564 | "name": "stdout", 565 | "output_type": "stream", 566 | "text": [ 567 | "训练集上的MAE/MSE/MAPE\n", 568 | "0.005499483640339445\n", 569 | "5.8590830718440346e-05\n", 570 | "2.2893008967559623\n", 571 | "测试集上的MAE/MSE/MAPE\n", 572 | "0.006091158946438909\n", 573 | "7.363862208464315e-05\n", 574 | "0.6853797211628617\n", 575 | "预测涨跌正确: 0.5035035035035035\n", 576 | "训练时间(秒): 54.56\n" 577 | ] 578 | } 579 | ], 580 | "source": [ 581 | "#输出结果\n", 582 | "from sklearn.metrics import mean_absolute_error\n", 583 | "from sklearn.metrics import mean_squared_error\n", 584 | "import math\n", 585 | "def mape(y_true, y_pred):\n", 586 | " return np.mean(np.abs((y_pred - y_true) / y_true)) * 100\n", 587 | "print('训练集上的MAE/MSE/MAPE')\n", 588 | "print(mean_absolute_error(y_train_predict, y_train))\n", 589 | "print(mean_squared_error(y_train_predict, y_train) )\n", 590 | "print(mape(y_train_predict, y_train) )\n", 591 | "print('测试集上的MAE/MSE/MAPE')\n", 592 | "print(mean_absolute_error(y_test_predict, y_test))\n", 593 | "print(mean_squared_error(y_test_predict, y_test) )\n", 594 | "print(mape(y_test_predict, y_test) )\n", 595 | "y_var_test=y_test[1:]-y_test[:len(y_test)-1]\n", 596 | "y_var_predict=y_test_predict[1:]-y_test_predict[:len(y_test_predict)-1]\n", 597 | "txt=np.zeros(len(y_var_test))\n", 598 | "for i in range(len(y_var_test-1)):\n", 599 | " txt[i]=np.sign(y_var_test[i])==np.sign(y_var_predict[i])\n", 600 | "result=sum(txt)/len(txt)\n", 601 | "print('预测涨跌正确:',result)\n", 602 | "print('训练时间(秒):',54.56)" 603 | ] 604 | }, 605 | { 606 | "cell_type": "code", 607 | "execution_count": null, 608 | "metadata": {}, 609 | "outputs": [], 610 | "source": [] 611 | }, 612 | { 613 | "cell_type": "code", 614 | "execution_count": null, 615 | "metadata": {}, 616 | "outputs": [], 617 | "source": [] 618 | }, 619 | { 620 | "cell_type": "code", 621 | "execution_count": null, 622 | "metadata": {}, 623 | "outputs": [], 624 | "source": [] 625 | } 626 | ], 627 | "metadata": { 628 | "kernelspec": { 629 | "display_name": "Python 3", 630 | "language": "python", 631 | "name": "python3" 632 | }, 633 | "language_info": { 634 | "codemirror_mode": { 635 | "name": "ipython", 636 | "version": 3 637 | }, 638 | "file_extension": ".py", 639 | "mimetype": "text/x-python", 640 | "name": "python", 641 | "nbconvert_exporter": "python", 642 | "pygments_lexer": "ipython3", 643 | "version": "3.7.3" 644 | } 645 | }, 646 | "nbformat": 4, 647 | "nbformat_minor": 2 648 | } 649 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LSTM-regression-and-classification 2 | 使用LSTM对股票价格进行回归预测,对股价涨跌进行分类预测。We use LSTM to forecast the stock price and classify the rise and fall of the stock price. 3 | --------------------------------------------------------------------------------