{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport math \nfrom keras.models import Sequential\nfrom keras.layers import Dense,Dropout\nfrom keras.layers import LSTM\nfrom sklearn.preprocessing import  MinMaxScaler\nfrom sklearn.metrics import mean_squared_error\nimport os","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c0f1335d2cf40331d45914f7174f695263ef88d5"},"cell_type":"code","source":"IS_LOCAL = False\nif(IS_LOCAL):\n    PATH=\"../input/LANL/\"\nelse:\n    PATH=\"../input/\"\nos.listdir(PATH)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5ba880e5aaac4b1538bc081a93114f50d1fdedda"},"cell_type":"code","source":"%%time\ntrain_df = pd.read_csv(os.path.join(PATH,'train.csv'), dtype={'acoustic_data': np.int16, 'time_to_failure': np.float32})","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"01b86e5353d9038b6c5129d08395ebbd36548326"},"cell_type":"code","source":"train_df.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4f106f621a4093df4da952cd62fff03b680357c3"},"cell_type":"code","source":"train_sample = train_df[\"acoustic_data\"].values[:1000000]\ntrain_sample_tf = train_df[\"time_to_failure\"].values[:1000000]\nplt.plot(train_sample)\nplt.plot(train_sample_tf)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5926a3d37f836948314e39e7922ac127c47a92ea"},"cell_type":"code","source":"dataset = train_df.iloc[:3000000,0].values\nplt.figure(figsize=(20,10))\nplt.plot(dataset)\nplt.xlabel(\"time\")\nplt.ylabel(\"Magnitude(Ml)\")\nplt.title(\"earthquake data\")\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ead1aec3f83dc648df6768e34cb7cfaa848beba0"},"cell_type":"code","source":"dataset = dataset.reshape(-1,1)\ndataset = dataset.astype(\"float32\")\ndataset.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f961fda43e9530543a65eebc2e64fab4f55d8d37"},"cell_type":"code","source":"scaler = MinMaxScaler(feature_range = (0,1))\ndataset= scaler.fit_transform(dataset)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dd68a16f474cf433f2c0d52827a10996a0f27748"},"cell_type":"code","source":"train_size = int(len(dataset)*0.8)\ntest_size =len(dataset)-train_size\ntrain = dataset[0:train_size,:]\ntest = dataset[train_size:len(dataset),:]\nprint(\"train size:{},test size {}\".format(len(train),len(test)))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"70c3af211a61a90add61bd86707b0315a72f8d84"},"cell_type":"code","source":"time_stemp = 50\ndataX = []\ndataY =[]\nfor i in range(len(train)-time_stemp -1):\n    a = train[i:(i+time_stemp),0]\n    dataX.append(a)\n    dataY.append(train[i + time_stemp,0])\ntrainX =np.array(dataX)\ntrainY = np.array(dataY)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d2b3cb52845ca65e9255e442dbe885000ee7d51e"},"cell_type":"code","source":"dataX = []\ndataY = []\nfor i in range(len(test)-time_stemp-1):\n    a = test[i:(i+time_stemp),0]\n    dataX.append(a)\n    dataY.append(test[i+time_stemp,0])\ntestX = np.array(dataX)\ntestY = np.array(dataY)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"717e49ea9b67b29e8a425ef65a954d1a6087cfdd"},"cell_type":"code","source":"trainX = np.reshape(trainX,(trainX.shape[0],1,trainX.shape[1]))\ntestX = np.reshape(testX,(testX.shape[0],1,testX.shape[1]))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c30e00d91728b2ee51d6004855e192d4ec09cb8e"},"cell_type":"code","source":"model = Sequential()\nmodel.add(LSTM(50,input_shape=(1,time_stemp)))\nmodel.add(Dropout(0.2))\nmodel.add(Dense(1))\nmodel.compile(loss = 'mean_squared_error',optimizer='adam')\nhistory = model.fit(trainX,trainY,epochs = 20,batch_size = 100)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0eda6871387f99b2ff6a8bc8decc53b510e352b5"},"cell_type":"code","source":"trainPredict = model.predict(trainX)\ntestPredict = model.predict(testX)\n\ntrainPredict = scaler.inverse_transform(trainPredict)\ntrainY = scaler.inverse_transform([trainY])\ntestPredict = scaler.inverse_transform(testPredict)\ntestY = scaler.inverse_transform([testY])\n\ntrainScore = math.sqrt(mean_squared_error(trainY[0],trainPredict[:,0]))\nprint('Train Score : %2f RMSE '%(trainScore))\ntestScore = math.sqrt(mean_squared_error(testY[0],testPredict[:,0]))\nprint('Test Score : %2f RMSE '%(testScore))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c805b4dbb15866ea265e2d974eaff4bf7dd9a237"},"cell_type":"code","source":"fig = plt.figure(figsize = (15,8),)\ntrainPredictPlot = np.empty_like(dataset)\ntrainPredictPlot[:,:] = np.nan\ntrainPredictPlot[time_stemp:len(trainPredict)+time_stemp,:] = trainPredict\n\ntestPredictPlot = np.empty_like(dataset)\ntestPredictPlot[:,:] = np.nan\ntestPredictPlot[len(trainPredict)+(time_stemp*2)+2:len(dataset)] = testPredict\nplt.title(\"Depremler(Ardışık) SL = 50 \",fontsize = 25)\nplt.xlabel(\"Time\",fontsize = 15)\nplt.ylabel(\"Magnitude\",fontsize = 15)\nplt.plot(scaler.inverse_transform(dataset),color=\"b\",label=\"Bütün data\")\nplt.plot(trainPredictPlot,color = \"g\",label=\"Deneme Datası\")\nplt.plot(testPredictPlot,color = \"r\",label=\"Test Datası\")\nplt.legend(loc='best')\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8035b2e8cd88d25b0ce2c7d5554e00f394b93080"},"cell_type":"code","source":"plt.plot(history.history['loss'],color = 'b',label = \"validation loss\")\nplt.title (\"Test Loss SL=50\")\nplt.xlabel(\"Number of Epochs\")\nplt.ylabel(\"Loss\")\nplt.legend()\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1a91585fbdd5b3c2be263696af633083b8a4c57d"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}