diff --git a/Earthquake_data_ML/Final Analytics Ready Data.csv b/Earthquake_data_ML/Final Analytics Ready Data.csv new file mode 100644 index 00000000..d7f94c0d --- /dev/null +++ b/Earthquake_data_ML/Final Analytics Ready Data.csv @@ -0,0 +1,90 @@ +Unknown BHRC,Un. PGA(cm/s/s),Latitude,Longitude,Epicentral Distance_x,MW_x,Epicentral Distance_y,MW_y,Depth,Effective duration (s) L,Effective duration (s) V,Effective duration (s) T,Vs30 (m/s),Fault Type_SS,Observed horizontal peak ground acceleration +19,63,34.49,45.74,22,4.8,19,4.6,22,2.17,4.61,1.67,891.0,0,54 +19,21,34.5,45.78,19,4.4,21,5.1,10,11.6,6.62,10.42,784.5901639344262,1,21 +7,207,34.81,45.91,53,7.3,70,5.1,10,14.15,17.13,13.55,514.0,0,12 +1,60,27.76,57.1,40,5.4,16,5.4,16,5.46,7.33,2.97,582.0,1,200 +2,11,37.92,47.1,25,4.6,35,5.1,9,8.53913580246914,10.849135802469135,8.820740740740739,971.0,1,86 +1,13,37.58,57.15,31,4.4,17,4.5,20,8.68,8.54,8.77,784.5901639344262,1,22 +1,31,30.75,57.39,26,4.9,49,5.9,18,15.13,16.14,14.87,567.0,0,65 +2,0,27.95,54.07,52,4.7,53,5.1,7,8.53913580246914,10.849135802469135,8.820740740740739,881.0,0,78 +1,72,32.7,58.99,13,4.1,52,5.9,20,21.29,28.79,20.4,1196.0,1,33 +1,37,29.08,51.73,28,5.0,66,5.7,14,23.18,34.97,33.87,516.0,1,22 +1,15,37.9,47.09,47,5.1,10,4.3,10,8.53913580246914,10.849135802469135,8.820740740740739,921.0,1,50 +2,11,31.9,50.69,20,4.5,2,4.4,16,3.0,6.38,5.66,784.5901639344262,1,107 +1,97,34.22,48.48,10,4.7,17,5.6,7,3.88,5.64,3.15,759.0,0,476 +1,6,30.09,57.62,60,5.3,45,5.8,18,20.98,24.17,22.25,450.0,0,59 +1,12,35.81,60.54,38,4.8,33,4.9,20,7.05,10.85,8.41,784.5901639344262,0,35 +4,34,35.89,60.37,52,6.1,83,6.5,5,8.53913580246914,10.849135802469135,8.820740740740739,784.5901639344262,1,77 +2,1,29.67,51.5,54,4.2,36,5.4,12,8.53913580246914,10.849135802469135,8.820740740740739,617.0,0,22 +1,2,29.65,51.53,56,4.3,15,4.6,16,2.58,6.58,3.48,1262.0,0,34 +1,4,29.66,51.56,59,4.9,15,4.5,16,2.94,5.12,2.81,1262.0,0,29 +1,80,26.84,53.82,7,4.8,39,5.0,20,18.43,15.76,16.39,617.0,0,15 +1,108,29.39,51.34,7,4.6,16,5.2,20,5.25,10.21,5.53,1262.0,0,39 +1,16,37.47,57.47,41,4.7,46,4.7,12,10.31,17.8,6.45,784.5901639344262,1,11 +1,123,30.15,57.48,9,4.4,47,6.1,12,17.16,31.66,13.76,784.5901639344262,1,38 +1,125,30.06,57.56,9,4.5,18,5.0,7,4.82,5.39,3.24,784.5901639344262,1,83 +1,11,37.38,57.51,38,4.9,38,5.2,8,7.67,11.78,7.41,784.5901639344262,1,28 +1,227,31.89,50.83,11,5.0,16,4.9,18,4.88,5.55,7.26,784.5901639344262,1,101 +1,12,33.99,48.41,26,4.1,33,5.6,38,8.44,15.04,13.93,784.5901639344262,1,48 +4,1,35.57,52.62,56,4.2,11,4.9,16,3.77,4.99,4.13,776.0,1,75 +1,75,29.99,57.63,34,5.4,31,5.2,22,12.97,18.09,9.71,604.0,1,19 +1,11,30.01,57.58,128,4.3,18,4.9,18,18.16,20.38,24.25,155.0,1,32 +2,14,36.7,49.86,42,4.3,39,5.2,16,17.86,23.73,17.09,514.0,1,30 +2,24,35.4,58.48,57,5.5,33,4.8,14,12.47,14.97,9.46,784.5901639344262,1,51 +1,13,27.3,52.95,29,4.8,23,5.0,18,11.62,13.51,12.28,853.0,1,47 +1,23,30.0,57.67,14,4.0,10,4.2,10,1.6,3.78,2.67,784.5901639344262,1,274 +1,85,27.48,56.24,18,4.9,17,5.5,10,4.76,7.99,5.74,898.0,0,154 +2,19,30.47,50.48,25,5.0,10,4.8,12,2.46,4.42,1.94,1564.0,1,56 +1,11,27.95,55.93,27,5.1,8,4.4,4,1.67,2.53,0.67,894.0,0,57 +1,11,27.81,57.45,39,5.0,18,4.8,12,6.63,9.4,10.01,784.5901639344262,1,227 +7,15,32.55,47.93,65,5.6,30,5.2,16,9.57,13.39,12.14,643.0,1,73 +6,40,32.74,47.71,4,4.8,16,4.4,14,2.6,5.36,5.71,1477.0,0,46 +3,25,32.7,47.82,64,5.8,17,4.7,10,10.49,8.87,9.24,784.5901639344262,1,134 +37,14,32.62,47.67,87,6.0,17,4.7,10,7.21,8.23,9.29,784.5901639344262,1,112 +37,15,32.72,47.7,52,5.8,18,4.9,16,4.14,5.52,4.59,919.0,1,74 +37,17,32.64,47.64,36,4.5,20,5.4,18,4.51,6.43,6.43,1397.0,1,143 +37,81,32.76,47.54,13,5.4,17,5.0,9,8.53913580246914,10.849135802469135,8.820740740740739,784.5901639344262,1,53 +37,17,32.53,47.79,78,5.9,15,5.6,32,10.92,7.88,10.02,398.0,1,35 +4,15,29.71,50.97,41,5.3,7,5.2,9,1.91,3.23,1.87,784.5901639344262,1,419 +3,33,28.43,51.63,13,4.5,48,5.6,28,5.72,8.39,5.36,403.0,0,111 +6,11,28.24,62.14,352,7.8,47,5.7,28,8.53913580246914,10.849135802469135,8.820740740740739,642.0,0,50 +22,563,28.35,51.74,6,5.5,31,5.1,14,8.53913580246914,10.849135802469135,8.820740740740739,403.0,0,35 +22,18,28.32,51.75,57,4.5,30,5.5,28,10.6,14.92,7.9,347.0,0,58 +22,20,28.38,51.78,81,5.7,11,5.7,9,5.43,5.64,4.24,971.0,1,212 +41,14,28.46,51.62,72,6.0,14,4.4,12,4.64,8.07,4.92,971.0,1,19 +41,61,28.42,51.66,39,5.0,13,4.8,14,12.56,15.92,14.62,821.0,0,43 +2,40,31.96,50.97,8,4.6,11,4.2,1,4.39,5.3,4.23,784.5901639344262,1,24 +2,59,31.99,50.97,8,4.5,34,5.0,14,10.89,12.46,3.11,1172.0,1,35 +1,71,31.95,50.98,19,5.2,27,5.3,20,10.3,8.15,13.02,784.5901639344262,1,92 +1,15,30.28,57.43,31,5.6,48,6.0,10,5.56,9.78,5.88,654.0,0,219 +2,64,33.44,59.99,17,4.9,5,5.8,10,6.27,8.48,6.74,898.0,0,137 +2,40,31.77,50.92,23,4.7,25,5.9,10,11.44,10.9,10.11,898.0,0,134 +2,112,31.77,50.93,17,4.7,14,5.8,18,3.84,6.85,4.47,898.0,0,249 +2,80,31.76,50.98,22,4.8,18,5.6,14,12.87,13.16,10.88,342.0,0,135 +2,25,34.5,59.95,72,5.2,23,5.0,14,9.79,8.75,9.9,1334.0,0,23 +2,12,27.88,57.78,59,4.8,25,5.0,10,11.18,10.04,11.33,784.5901639344262,1,32 +2,23,32.88,47.72,53,5.5,18,4.9,14,11.26,17.15,12.32,752.0,0,85 +1,12,36.83,49.22,26,4.2,15,4.0,10,7.18,7.35,5.0,776.0,1,16 +1,26,31.47,56.75,25,5.0,23,4.8,2,12.26,17.64,11.24,881.0,0,18 +1,30,28.66,51.56,49,4.8,9,5.5,22,5.66,7.6,5.74,428.0,1,182 +2,113,36.34,58.92,30,5.2,6,4.3,10,7.3,6.06,6.96,784.5901639344262,1,51 +2,16,36.38,52.74,36,4.9,20,4.3,14,9.43,9.62,8.96,320.0,1,33 +2,24,36.61,56.76,31,5.2,29,5.4,10,10.78,13.66,16.1,566.0,1,61 +2,21,30.03,57.58,28,4.9,25,4.2,16,4.34,4.84,2.03,883.0,0,12 +6,10,27.8,57.79,102,5.6,19,4.1,14,3.42,9.11,4.1,621.0,0,28 +1,101,30.96,51.31,16,4.9,11,5.0,3,1.87,2.89,2.41,700.0,1,227 +3,30,30.0,51.19,38,5.2,33,4.9,9,3.9,6.59,3.43,784.5901639344262,1,100 +3,83,28.18,58.97,18,5.0,16,4.5,10,5.6,5.34,5.34,398.0,1,49 +7,11,28.17,58.99,57,4.7,9,4.4,8,3.73,2.77,2.1,398.0,1,79 +7,42,28.15,59.0,47,6.1,5,4.7,16,7.34,9.48,6.86,784.5901639344262,1,79 +1,14,30.23,51.68,61,5.2,7,4.6,10,4.44,5.32,4.31,971.0,1,79 +1,17,30.17,51.74,48,5.0,7,4.8,18,12.45,14.57,12.08,821.0,0,52 +3,14,30.16,51.7,55,5.4,21,4.9,20,7.44,8.46,8.37,617.0,0,61 +3,23,30.18,51.66,32,4.6,11,4.3,20,5.7,6.38,6.76,784.5901639344262,0,33 +3,14,30.19,51.66,44,4.5,14,4.2,16,5.6,7.21,7.2,784.5901639344262,0,27 +5,77,28.32,59.19,83,6.5,53,6.1,9,19.09,23.95,15.52,795.0,1,81 +1,35,30.21,51.64,33,4.9,52,4.8,10,18.38,21.74,19.16,1472.0,1,21 +3,11,28.21,52.62,114,5.4,23,5.8,7,4.19,4.92,2.61,784.5901639344262,1,595 +3,13,27.16,53.92,44,5.9,25,4.4,12,3.76,6.48,4.93,784.5901639344262,1,50 +2,18,29.42,51.65,46,5.1,4,4.6,10,0.96,2.78,1.76,484.0,0,135 +1,18,35.05,46.93,70,5.1,189,7.3,18,25.74,31.3,38.99,863.0,0,26 diff --git a/Earthquake_data_ML/Regional Attenuation.ipynb b/Earthquake_data_ML/Regional Attenuation.ipynb new file mode 100644 index 00000000..5c30ac48 --- /dev/null +++ b/Earthquake_data_ML/Regional Attenuation.ipynb @@ -0,0 +1,2701 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Objective**\n", + "Attenuation Relations between Iran and Sharjah horizontal peak ground acceleration\n", + "\n", + "**Data Description**\n", + "Dataset consist of 130 earthquakes and 31 variables for the BHRC (Iran) dataset and for the\n", + "UOSS (Sharjah) dataset there are 130 earthquakes and 25 variable, after removing all the\n", + "earthquake without time series we finally get 89 earthquake records, These dataset consist\n", + "details of the earthquake i.e. earthquake number, station name, Un.PGA, time series, longitude,\n", + "latitude, magnitude type, epicentral distance, depth and effective duration, vs30 (m/s) and fault\n", + "type etc. Finally we Apply input from Iran data to 10 developed attenuation equations from\n", + "literature and compare the output.\n", + "\n", + "**Dependent Variable**\n", + "Peak ground acceleration, Horizontal peak ground acceleration\n", + "\n", + "**Independent Variable**\n", + "earthquake number, station name, Un.PGA, time series, longitude, latitude, magnitude type,\n", + "epicentral distance, depth and effective duration, vs30 (m/s) and fault type etc.\n", + "\n", + "**Proposed model**\n", + "Ensemble methods is a machine learning technique that combines several base models in order\n", + "to produce one optimal predictive model. We will design and implement a cutting edge\n", + "advanced statistical model using random forest algorithm and get the output for the same\n", + "technique after that, we use another technique to build a new model using KNN and the third\n", + "model is build using logistic regression. Then we will compare the result of all these algorithm,\n", + "finally we will build a new model by combining all these three techniques together (Ensemble\n", + "Technique), so that we can get a more accurate model for our research work." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "final_BHRC = pd.read_excel('waveforms_EDITED.xlsx',sheet_name='Final BHRC')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "final_BHRC.columns = ['Earthquake No.', 'Station Name', 'Record No', 'Date', 'Unknown BHRC',\n", + " 'Time', 'AM-PM', 'Un. PGA(cm/s/s)', 'Latitude', 'Longitude',\n", + " 'Epicentral Distance', 'ML', 'MW', 'MN', 'MS', 'mb', 'Reference',\n", + " 'Station Code']" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Earthquake No.Station NameRecord NoDateUnknown BHRCTimeAM-PMUn. PGA(cm/s/s)LatitudeLongitudeEpicentral DistanceMLMWMNMSmbReferenceStation Code
01Ban Mazaran7373/012017-11-131904:27:55AM63.034.4945.7422NaN4.8NaNNaNNaNBHRCGDM
12Ban Mazaran7373/022017-11-131904:36:12AM21.034.5045.7819NaN4.4NaNNaNNaNBHRCBIR
23Javanrood73982017-11-12706:18:16PM207.034.8145.9153NaN7.3NaNNaNNaNBHRCSAD
34Faryab72602017-10-23112:24:14AM60.027.7657.1040NaN5.4NaNNaNNaNBHRCSDD
45Tikmedash72532017-10-18205:35:35PM11.037.9247.1025NaN4.6NaNNaNNaNBHRCMHN
\n", + "
" + ], + "text/plain": [ + " Earthquake No. Station Name Record No Date Unknown BHRC Time \\\n", + "0 1 Ban Mazaran 7373/01 2017-11-13 19 04:27:55 \n", + "1 2 Ban Mazaran 7373/02 2017-11-13 19 04:36:12 \n", + "2 3 Javanrood 7398 2017-11-12 7 06:18:16 \n", + "3 4 Faryab 7260 2017-10-23 1 12:24:14 \n", + "4 5 Tikmedash 7253 2017-10-18 2 05:35:35 \n", + "\n", + " AM-PM Un. PGA(cm/s/s) Latitude Longitude Epicentral Distance ML MW \\\n", + "0 AM 63.0 34.49 45.74 22 NaN 4.8 \n", + "1 AM 21.0 34.50 45.78 19 NaN 4.4 \n", + "2 PM 207.0 34.81 45.91 53 NaN 7.3 \n", + "3 AM 60.0 27.76 57.10 40 NaN 5.4 \n", + "4 PM 11.0 37.92 47.10 25 NaN 4.6 \n", + "\n", + " MN MS mb Reference Station Code \n", + "0 NaN NaN NaN BHRC GDM \n", + "1 NaN NaN NaN BHRC BIR \n", + "2 NaN NaN NaN BHRC SAD \n", + "3 NaN NaN NaN BHRC SDD \n", + "4 NaN NaN NaN BHRC MHN " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_BHRC.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 126 entries, 0 to 125\n", + "Data columns (total 18 columns):\n", + "Earthquake No. 126 non-null int64\n", + "Station Name 126 non-null object\n", + "Record No 126 non-null object\n", + "Date 126 non-null datetime64[ns]\n", + "Unknown BHRC 126 non-null int64\n", + "Time 126 non-null object\n", + "AM-PM 126 non-null object\n", + "Un. PGA(cm/s/s) 126 non-null float64\n", + "Latitude 126 non-null float64\n", + "Longitude 126 non-null float64\n", + "Epicentral Distance 126 non-null int64\n", + "ML 12 non-null float64\n", + "MW 126 non-null float64\n", + "MN 0 non-null float64\n", + "MS 0 non-null float64\n", + "mb 0 non-null float64\n", + "Reference 126 non-null object\n", + "Station Code 126 non-null object\n", + "dtypes: datetime64[ns](1), float64(8), int64(3), object(6)\n", + "memory usage: 17.8+ KB\n" + ] + } + ], + "source": [ + "final_BHRC.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_excel('Last_Predicted_and_Observed_Outputs.xlsx',sheet_name=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Earthquake No.Inputs (Iran )Unnamed: 2Unnamed: 3Unnamed: 4Unnamed: 5Unnamed: 6Unnamed: 7Unnamed: 8Earthquake magnitude of Sharjah...Unnamed: 14Unnamed: 15Unnamed: 16Unnamed: 17Unnamed: 18Unnamed: 19Unnamed: 20Unnamed: 21Observed horizontal peak ground accelerationUnnamed: 23
0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...Eq.5Eq.6NaNEq.7NaNEq.8Eq.9Eq.10NaNNaN
1NaNEpicentral DistanceMLMWDepthEffective duration (s) LEffective duration (s) VEffective duration (s) TVs30 (m/s)NaN...NaNPGAHPGAVPGAHPGAVNaNNaNNaNBHRC(cm/s^2)UOSS(g)
21.019NaN4.6222.174.611.678914.9...192.04858.660627.842623.568210.86380.1530490.04205490.0946283540.442468
32.021NaN5.11011.66.6210.42NaN5.1...270.187NaNNaN40.242618.3950.6701790.0523675NaN210.139353
43.070NaN5.11014.1517.1313.555144.8...66.412521.373110.770912.01685.579090.129280.01885230.0297881120.52633
\n", + "

5 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " Earthquake No. Inputs (Iran ) Unnamed: 2 Unnamed: 3 Unnamed: 4 \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN Epicentral Distance ML MW Depth \n", + "2 1.0 19 NaN 4.6 22 \n", + "3 2.0 21 NaN 5.1 10 \n", + "4 3.0 70 NaN 5.1 10 \n", + "\n", + " Unnamed: 5 Unnamed: 6 \\\n", + "0 NaN NaN \n", + "1 Effective duration (s) L Effective duration (s) V \n", + "2 2.17 4.61 \n", + "3 11.6 6.62 \n", + "4 14.15 17.13 \n", + "\n", + " Unnamed: 7 Unnamed: 8 Earthquake magnitude of Sharjah \\\n", + "0 NaN NaN NaN \n", + "1 Effective duration (s) T Vs30 (m/s) NaN \n", + "2 1.67 891 4.9 \n", + "3 10.42 NaN 5.1 \n", + "4 13.55 514 4.8 \n", + "\n", + " ... Unnamed: 14 Unnamed: 15 Unnamed: 16 Unnamed: 17 Unnamed: 18 \\\n", + "0 ... Eq.5 Eq.6 NaN Eq.7 NaN \n", + "1 ... NaN PGAH PGAV PGAH PGAV \n", + "2 ... 192.048 58.6606 27.8426 23.5682 10.8638 \n", + "3 ... 270.187 NaN NaN 40.2426 18.395 \n", + "4 ... 66.4125 21.3731 10.7709 12.0168 5.57909 \n", + "\n", + " Unnamed: 19 Unnamed: 20 Unnamed: 21 \\\n", + "0 Eq.8 Eq.9 Eq.10 \n", + "1 NaN NaN NaN \n", + "2 0.153049 0.0420549 0.0946283 \n", + "3 0.670179 0.0523675 NaN \n", + "4 0.12928 0.0188523 0.0297881 \n", + "\n", + " Observed horizontal peak ground acceleration Unnamed: 23 \n", + "0 NaN NaN \n", + "1 BHRC(cm/s^2) UOSS(g) \n", + "2 54 0.442468 \n", + "3 21 0.139353 \n", + "4 12 0.52633 \n", + "\n", + "[5 rows x 24 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Earthquake No.Inputs (Iran )Unnamed: 2Unnamed: 3Unnamed: 4Unnamed: 5Unnamed: 6Unnamed: 7Unnamed: 8
0NaNNaNNaNNaNNaNNaNNaNNaNNaN
1NaNEpicentral DistanceMLMWDepthEffective duration (s) LEffective duration (s) VEffective duration (s) TVs30 (m/s)
21.019NaN4.6222.174.611.67891
32.021NaN5.11011.66.6210.42NaN
43.070NaN5.11014.1517.1313.55514
\n", + "
" + ], + "text/plain": [ + " Earthquake No. Inputs (Iran ) Unnamed: 2 Unnamed: 3 Unnamed: 4 \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN Epicentral Distance ML MW Depth \n", + "2 1.0 19 NaN 4.6 22 \n", + "3 2.0 21 NaN 5.1 10 \n", + "4 3.0 70 NaN 5.1 10 \n", + "\n", + " Unnamed: 5 Unnamed: 6 \\\n", + "0 NaN NaN \n", + "1 Effective duration (s) L Effective duration (s) V \n", + "2 2.17 4.61 \n", + "3 11.6 6.62 \n", + "4 14.15 17.13 \n", + "\n", + " Unnamed: 7 Unnamed: 8 \n", + "0 NaN NaN \n", + "1 Effective duration (s) T Vs30 (m/s) \n", + "2 1.67 891 \n", + "3 10.42 NaN \n", + "4 13.55 514 " + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Inputs provided to predict PGA\n", + "\n", + "bhrc_ip = df[['Earthquake No. ', 'Inputs (Iran )', 'Unnamed: 2', 'Unnamed: 3',\n", + " 'Unnamed: 4', 'Unnamed: 5', 'Unnamed: 6', 'Unnamed: 7', 'Unnamed: 8']]\n", + "bhrc_ip.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "bhrc_ip.columns=['Earthquake No.', 'Epicentral Distance', 'ML', 'MW', 'Depth',\n", + " 'Effective duration (s) L', 'Effective duration (s) V',\n", + " 'Effective duration (s) T', 'Vs30 (m/s)']" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Earthquake No.Epicentral DistanceMLMWDepthEffective duration (s) LEffective duration (s) VEffective duration (s) TVs30 (m/s)
21.019NaN4.6222.174.611.67891
32.021NaN5.11011.66.6210.42NaN
43.070NaN5.11014.1517.1313.55514
54.016NaN5.4165.467.332.97582
65.035NaN5.19NaNNaNNaN971
\n", + "
" + ], + "text/plain": [ + " Earthquake No. Epicentral Distance ML MW Depth \\\n", + "2 1.0 19 NaN 4.6 22 \n", + "3 2.0 21 NaN 5.1 10 \n", + "4 3.0 70 NaN 5.1 10 \n", + "5 4.0 16 NaN 5.4 16 \n", + "6 5.0 35 NaN 5.1 9 \n", + "\n", + " Effective duration (s) L Effective duration (s) V \\\n", + "2 2.17 4.61 \n", + "3 11.6 6.62 \n", + "4 14.15 17.13 \n", + "5 5.46 7.33 \n", + "6 NaN NaN \n", + "\n", + " Effective duration (s) T Vs30 (m/s) \n", + "2 1.67 891 \n", + "3 10.42 NaN \n", + "4 13.55 514 \n", + "5 2.97 582 \n", + "6 NaN 971 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bhrc_ip=bhrc_ip.drop([0,1])\n", + "bhrc_ip.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Epicentral DistanceMLMWDepthEffective duration (s) LEffective duration (s) VEffective duration (s) TVs30 (m/s)
Earthquake No.
119NaN4.6222.174.611.67891
221NaN5.11011.66.6210.42NaN
370NaN5.11014.1517.1313.55514
416NaN5.4165.467.332.97582
535NaN5.19NaNNaNNaN971
\n", + "
" + ], + "text/plain": [ + " Epicentral Distance ML MW Depth Effective duration (s) L \\\n", + "Earthquake No. \n", + "1 19 NaN 4.6 22 2.17 \n", + "2 21 NaN 5.1 10 11.6 \n", + "3 70 NaN 5.1 10 14.15 \n", + "4 16 NaN 5.4 16 5.46 \n", + "5 35 NaN 5.1 9 NaN \n", + "\n", + " Effective duration (s) V Effective duration (s) T Vs30 (m/s) \n", + "Earthquake No. \n", + "1 4.61 1.67 891 \n", + "2 6.62 10.42 NaN \n", + "3 17.13 13.55 514 \n", + "4 7.33 2.97 582 \n", + "5 NaN NaN 971 " + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bhrc_ip.reset_index(inplace=True)\n", + "bhrc_ip.drop('index',axis=1,inplace=True)\n", + "bhrc_ip['Earthquake No.'] = bhrc_ip['Earthquake No.'].apply(int)\n", + "bhrc_ip.set_index('Earthquake No.',inplace=True)\n", + "bhrc_ip.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "bhrc_update = pd.merge(left=final_BHRC, right=bhrc_ip, on='Earthquake No.')\n", + "bhrc_update['Un. PGA(cm/s/s)'] = bhrc_update['Un. PGA(cm/s/s)'].apply(int)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 130 entries, 0 to 129\n", + "Data columns (total 13 columns):\n", + "Earthquake No. 130 non-null int64\n", + "Time Series Avalability 130 non-null int64\n", + "Station Name 130 non-null object\n", + "Record No 130 non-null object\n", + "Date 130 non-null datetime64[ns]\n", + "Time 130 non-null object\n", + "Unnamed: 6 130 non-null object\n", + "Latitude 130 non-null float64\n", + "Longitude 130 non-null float64\n", + "Reference 130 non-null object\n", + "Station Code 130 non-null object\n", + "Province 130 non-null object\n", + "Fault Type 127 non-null object\n", + "dtypes: datetime64[ns](1), float64(2), int64(2), object(8)\n", + "memory usage: 13.3+ KB\n" + ] + } + ], + "source": [ + "bhrc_metadata = pd.read_excel('Last_Predicted_and_Observed_Outputs.xlsx',sheet_name='BHRC_Metadata')\n", + "bhrc_metadata.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Earthquake No.Station NameRecord NoDateUnknown BHRCTimeAM-PMUn. PGA(cm/s/s)LatitudeLongitude...ML_yMW_yDepthEffective duration (s) LEffective duration (s) VEffective duration (s) TVs30 (m/s)Time Series AvalabilityFault Type_SSFault Type_nan
01Ban Mazaran7373/012017-11-131904:27:55AM6334.4945.74...NaN4.6222.174.611.67891100
12Ban Mazaran7373/022017-11-131904:36:12AM2134.5045.78...NaN5.11011.66.6210.42NaN110
23Javanrood73982017-11-12706:18:16PM20734.8145.91...NaN5.11014.1517.1313.55514100
34Faryab72602017-10-23112:24:14AM6027.7657.10...NaN5.4165.467.332.97582110
45Tikmedash72532017-10-18205:35:35PM1137.9247.10...NaN5.19NaNNaNNaN971110
\n", + "

5 rows × 29 columns

\n", + "
" + ], + "text/plain": [ + " Earthquake No. Station Name Record No Date Unknown BHRC Time \\\n", + "0 1 Ban Mazaran 7373/01 2017-11-13 19 04:27:55 \n", + "1 2 Ban Mazaran 7373/02 2017-11-13 19 04:36:12 \n", + "2 3 Javanrood 7398 2017-11-12 7 06:18:16 \n", + "3 4 Faryab 7260 2017-10-23 1 12:24:14 \n", + "4 5 Tikmedash 7253 2017-10-18 2 05:35:35 \n", + "\n", + " AM-PM Un. PGA(cm/s/s) Latitude Longitude ... ML_y MW_y Depth \\\n", + "0 AM 63 34.49 45.74 ... NaN 4.6 22 \n", + "1 AM 21 34.50 45.78 ... NaN 5.1 10 \n", + "2 PM 207 34.81 45.91 ... NaN 5.1 10 \n", + "3 AM 60 27.76 57.10 ... NaN 5.4 16 \n", + "4 PM 11 37.92 47.10 ... NaN 5.1 9 \n", + "\n", + " Effective duration (s) L Effective duration (s) V \\\n", + "0 2.17 4.61 \n", + "1 11.6 6.62 \n", + "2 14.15 17.13 \n", + "3 5.46 7.33 \n", + "4 NaN NaN \n", + "\n", + " Effective duration (s) T Vs30 (m/s) Time Series Avalability Fault Type_SS \\\n", + "0 1.67 891 1 0 \n", + "1 10.42 NaN 1 1 \n", + "2 13.55 514 1 0 \n", + "3 2.97 582 1 1 \n", + "4 NaN 971 1 1 \n", + "\n", + " Fault Type_nan \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "\n", + "[5 rows x 29 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ts_fault = bhrc_metadata[['Earthquake No. ','Time Series Avalability','Fault Type']]\n", + "ts_fault.columns = ['Earthquake No.','Time Series Avalability','Fault Type']\n", + "ts_f = pd.get_dummies(data=ts_fault, dummy_na=True, columns=['Fault Type'], drop_first=True)\n", + "ts_f.head()\n", + "bhrc_update = pd.merge(bhrc_update,ts_f,on='Earthquake No.')\n", + "bhrc_update.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Station NameRecord NoDateUnknown BHRCTimeAM-PMUn. PGA(cm/s/s)LatitudeLongitudeEpicentral Distance_x...MW_yDepthEffective duration (s) LEffective duration (s) VEffective duration (s) TVs30 (m/s)Time Series AvalabilityFault Type_SSFault Type_nanObserved horizontal peak ground acceleration
Earthquake No.
1Ban Mazaran7373/012017-11-131904:27:55AM6334.4945.7422...4.6222.174.611.6789110054
2Ban Mazaran7373/022017-11-131904:36:12AM2134.5045.7819...5.11011.66.6210.42NaN11021
3Javanrood73982017-11-12706:18:16PM20734.8145.9153...5.11014.1517.1313.5551410012
4Faryab72602017-10-23112:24:14AM6027.7657.1040...5.4165.467.332.97582110200
5Tikmedash72532017-10-18205:35:35PM1137.9247.1025...5.19NaNNaNNaN97111086
\n", + "

5 rows × 29 columns

\n", + "
" + ], + "text/plain": [ + " Station Name Record No Date Unknown BHRC Time \\\n", + "Earthquake No. \n", + "1 Ban Mazaran 7373/01 2017-11-13 19 04:27:55 \n", + "2 Ban Mazaran 7373/02 2017-11-13 19 04:36:12 \n", + "3 Javanrood 7398 2017-11-12 7 06:18:16 \n", + "4 Faryab 7260 2017-10-23 1 12:24:14 \n", + "5 Tikmedash 7253 2017-10-18 2 05:35:35 \n", + "\n", + " AM-PM Un. PGA(cm/s/s) Latitude Longitude \\\n", + "Earthquake No. \n", + "1 AM 63 34.49 45.74 \n", + "2 AM 21 34.50 45.78 \n", + "3 PM 207 34.81 45.91 \n", + "4 AM 60 27.76 57.10 \n", + "5 PM 11 37.92 47.10 \n", + "\n", + " Epicentral Distance_x ... MW_y Depth \\\n", + "Earthquake No. ... \n", + "1 22 ... 4.6 22 \n", + "2 19 ... 5.1 10 \n", + "3 53 ... 5.1 10 \n", + "4 40 ... 5.4 16 \n", + "5 25 ... 5.1 9 \n", + "\n", + " Effective duration (s) L Effective duration (s) V \\\n", + "Earthquake No. \n", + "1 2.17 4.61 \n", + "2 11.6 6.62 \n", + "3 14.15 17.13 \n", + "4 5.46 7.33 \n", + "5 NaN NaN \n", + "\n", + " Effective duration (s) T Vs30 (m/s) Time Series Avalability \\\n", + "Earthquake No. \n", + "1 1.67 891 1 \n", + "2 10.42 NaN 1 \n", + "3 13.55 514 1 \n", + "4 2.97 582 1 \n", + "5 NaN 971 1 \n", + "\n", + " Fault Type_SS Fault Type_nan \\\n", + "Earthquake No. \n", + "1 0 0 \n", + "2 1 0 \n", + "3 0 0 \n", + "4 1 0 \n", + "5 1 0 \n", + "\n", + " Observed horizontal peak ground acceleration \n", + "Earthquake No. \n", + "1 54 \n", + "2 21 \n", + "3 12 \n", + "4 200 \n", + "5 86 \n", + "\n", + "[5 rows x 29 columns]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Collecting observed results from a created model \n", + "\n", + "pga_trained = df[['Observed horizontal peak ground acceleration','Earthquake No. ']].dropna()\n", + "pga_trained['Earthquake No. '] = pga_trained['Earthquake No. '].apply(int)\n", + "pga_trained.columns=['Observed horizontal peak ground acceleration', 'Earthquake No.']\n", + "pga_observed = pga_trained.set_index('Earthquake No.')\n", + "\n", + "pga_observed.head()\n", + "# Merging Observed BHRC data\n", + "bhrc_update = pd.merge(bhrc_update,pga_observed,on='Earthquake No.')\n", + "bhrc_update.set_index('Earthquake No.',inplace=True)\n", + "bhrc_update.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.heatmap(bhrc_update.isnull(),yticklabels=False,cbar=False,cmap='viridis') # cbar=color bar" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "bhrc_update = bhrc_update[bhrc_update['Time Series Avalability']==1]\n", + "sns.heatmap(bhrc_update.isnull(),yticklabels=False,cbar=False,cmap='viridis')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['Station Name', 'Record No', 'Date', 'Unknown BHRC', 'Time', 'AM-PM',\n", + " 'Un. PGA(cm/s/s)', 'Latitude', 'Longitude', 'Epicentral Distance_x',\n", + " 'ML_x', 'MW_x', 'MN', 'MS', 'mb', 'Reference', 'Station Code',\n", + " 'Epicentral Distance_y', 'ML_y', 'MW_y', 'Depth',\n", + " 'Effective duration (s) L', 'Effective duration (s) V',\n", + " 'Effective duration (s) T', 'Vs30 (m/s)', 'Time Series Avalability',\n", + " 'Fault Type_SS', 'Fault Type_nan',\n", + " 'Observed horizontal peak ground acceleration'],\n", + " dtype='object')" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bhrc_update.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Cleaning1\n", + "bhrc_update = bhrc_update.drop(['ML_x', 'MN', 'MS', 'mb','ML_y','Reference','Station Name','Station Code', \n", + " 'Time Series Avalability','Fault Type_nan','Record No','Date','Time', 'AM-PM'],axis=1)\n", + "sns.heatmap(bhrc_update.isnull(),yticklabels=False,cbar=False,cmap='viridis')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Cleaning 2\n", + "for col in bhrc_update.columns:\n", + " bhrc_update[col]=bhrc_update[col].fillna(bhrc_update[col].mean())\n", + "sns.heatmap(bhrc_ip.isnull(),yticklabels=False,cbar=False,cmap='viridis') # cbar=color bar" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 89 entries, 1 to 125\n", + "Data columns (total 15 columns):\n", + "Unknown BHRC 89 non-null int64\n", + "Un. PGA(cm/s/s) 89 non-null int64\n", + "Latitude 89 non-null float64\n", + "Longitude 89 non-null float64\n", + "Epicentral Distance_x 89 non-null int64\n", + "MW_x 89 non-null float64\n", + "Epicentral Distance_y 89 non-null int64\n", + "MW_y 89 non-null float64\n", + "Depth 89 non-null int64\n", + "Effective duration (s) L 89 non-null float64\n", + "Effective duration (s) V 89 non-null float64\n", + "Effective duration (s) T 89 non-null float64\n", + "Vs30 (m/s) 89 non-null float64\n", + "Fault Type_SS 89 non-null uint8\n", + "Observed horizontal peak ground acceleration 89 non-null int64\n", + "dtypes: float64(8), int64(6), uint8(1)\n", + "memory usage: 10.5 KB\n" + ] + } + ], + "source": [ + "bhrc_update.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "bhrc_update.to_csv('Final Analytics Ready Data',index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "X = bhrc_update.drop('Observed horizontal peak ground acceleration',axis=1)\n", + "\n", + "y = bhrc_update['Observed horizontal peak ground acceleration']" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# After scaling the data - still same data\n", + "scaler = StandardScaler()\n", + "scaler.fit(X)\n", + "scaled_features = scaler.transform(X)\n", + "X_train, X_test, y_train, y_test = train_test_split(scaled_features, y, test_size=0.3, random_state=101)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Subham\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", + " FutureWarning)\n", + "C:\\Users\\Subham\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:469: FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n", + " \"this warning.\", FutureWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", + " intercept_scaling=1, l1_ratio=None, max_iter=100,\n", + " multi_class='warn', n_jobs=None, penalty='l2',\n", + " random_state=None, solver='warn', tol=0.0001, verbose=0,\n", + " warm_start=False)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "logmodel = LogisticRegression()\n", + "logmodel.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "predict_log = logmodel.predict(X_test)\n", + "prob_log =logmodel.predict_proba(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.distplot((y_test-predict_log),bins=50)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn import metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAE: 58.666666666666664\n", + "MSE: 6148.740740740741\n", + "RMSE: 78.41390655196781\n" + ] + } + ], + "source": [ + "print('MAE:', metrics.mean_absolute_error(y_test, predict_log))\n", + "print('MSE:', metrics.mean_squared_error(y_test, predict_log))\n", + "print('RMSE:', np.sqrt(metrics.mean_squared_error(y_test, predict_log)))" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#knn = KNeighborsClassifier(n_neighbors=5)\n", + "#knn.fit(X_train,y_train)\n", + "#predict_knn_test = knn.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "error_rate = []\n", + "\n", + "for i in range(1,50):\n", + " \n", + " knn = KNeighborsClassifier(n_neighbors=i,)\n", + " knn.fit(X_train,y_train)\n", + " pred_i = knn.predict(X_test)\n", + " error_rate.append(metrics.mean_squared_error(y_test, pred_i)) # MSE" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Error Rate')" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,6))\n", + "plt.plot(range(1,50),error_rate,color='blue', linestyle='dashed', marker='o',\n", + " markerfacecolor='red', markersize=10)\n", + "plt.title('Error Rate vs. K Value')\n", + "plt.xlabel('K')\n", + "plt.ylabel('Error Rate')" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAE: 42.148148148148145\n", + "MSE: 3535.3333333333335\n", + "RMSE: 59.45866911841648\n" + ] + } + ], + "source": [ + "# Lets choose k=33, by looking at elbow/Hit and Trail\n", + "knn = KNeighborsClassifier(n_neighbors=33)\n", + "\n", + "knn.fit(X_train,y_train)\n", + "predict_knn = knn.predict(X_test)\n", + "prob_knn = knn.predict_proba(X_test)\n", + "\n", + "print('MAE:', metrics.mean_absolute_error(y_test, predict_knn))\n", + "print('MSE:', metrics.mean_squared_error(y_test, predict_knn))\n", + "print('RMSE:', np.sqrt(metrics.mean_squared_error(y_test, predict_knn)))" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.distplot((y_test-predict_knn),bins=50)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Earlier value was classified\n", + "#X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAE: 70.66666666666667\n", + "MSE: 12836.37037037037\n", + "RMSE: 113.29770681867471\n" + ] + } + ], + "source": [ + "from sklearn.ensemble import RandomForestClassifier\n", + "rfc = RandomForestClassifier(n_estimators=100)\n", + "rfc.fit(X_train, y_train)\n", + "predict_rfc = rfc.predict(X_test)\n", + "prob_rfc = rfc.predict_proba(X_test)\n", + "print('MAE:', metrics.mean_absolute_error(y_test, predict_rfc))\n", + "print('MSE:', metrics.mean_squared_error(y_test, predict_rfc))\n", + "print('RMSE:', np.sqrt(metrics.mean_squared_error(y_test, predict_rfc)))" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.distplot((y_test-predict_rfc),bins=50)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[0.01995031, 0.0100929 , 0.00437241, ..., 0.01816346, 0.00298587,\n", + " 0.01632645],\n", + " [0.01366162, 0.01524924, 0.03452406, ..., 0.01459565, 0.02600493,\n", + " 0.00292507],\n", + " [0.01631831, 0.00385861, 0.00585272, ..., 0.01570799, 0.03019698,\n", + " 0.00467213],\n", + " ...,\n", + " [0.02195196, 0.01119279, 0.01718005, ..., 0.0139089 , 0.00318188,\n", + " 0.01053397],\n", + " [0.00632974, 0.02890315, 0.00383576, ..., 0.00456459, 0.008892 ,\n", + " 0.00493844],\n", + " [0.0266743 , 0.00499018, 0.03262955, ..., 0.01490784, 0.01563567,\n", + " 0.00269491]])" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Shows probablity of correctness once ensembling is done\n", + "final_prob = (prob_knn + prob_log + prob_rfc)/3 \n", + "sns.heatmap(final_prob)\n", + "final_prob\n", + "\n", + "# More brighter, better results" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAE: 39.20987654320987\n", + "MSE: 3107.1687242798357\n", + "RMSE: 55.74198349789713\n" + ] + } + ], + "source": [ + "# Averaging Ensemble Technique\n", + "predict_ensemble=(predict_knn+predict_log+predict_rfc)/3\n", + "print('MAE:', metrics.mean_absolute_error(y_test, predict_ensemble))\n", + "print('MSE:', metrics.mean_squared_error(y_test, predict_ensemble))\n", + "print('RMSE:', np.sqrt(metrics.mean_squared_error(y_test, predict_ensemble)))" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.distplot((y_test- predict_ensemble),bins=50)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now we have 4 models ready\n", + "1. Logistic Regression\n", + "2. KNN\n", + "3. Random Forest\n", + "4. Ensemble model\n", + "\n", + "##### We will compare all these model among eachother and the predicted data given from an already created model" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "MAE =[metrics.mean_absolute_error(y_test, predict_log),\n", + " metrics.mean_absolute_error(y_test, predict_knn),\n", + " metrics.mean_absolute_error(y_test, predict_rfc),\n", + " metrics.mean_absolute_error(y_test, predict_ensemble)]\n", + "\n", + "MSE = [metrics.mean_squared_error(y_test, predict_log),\n", + " metrics.mean_squared_error(y_test, predict_knn),\n", + " metrics.mean_squared_error(y_test, predict_rfc),\n", + " metrics.mean_squared_error(y_test, predict_ensemble)\n", + " ]\n", + "\n", + "RMSE = [np.sqrt(metrics.mean_squared_error(y_test, predict_log)),\n", + " np.sqrt(metrics.mean_squared_error(y_test, predict_knn)),\n", + " np.sqrt(metrics.mean_squared_error(y_test, predict_rfc)),\n", + " np.sqrt(metrics.mean_squared_error(y_test, predict_ensemble))\n", + " ]" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ModelMAEMSERMSE
0Logistic Regression58.6666676148.74074178.413907
1KNN42.1481483535.33333359.458669
2Random Forest70.66666712836.370370113.297707
3Ensemble39.2098773107.16872455.741983
\n", + "
" + ], + "text/plain": [ + " Model MAE MSE RMSE\n", + "0 Logistic Regression 58.666667 6148.740741 78.413907\n", + "1 KNN 42.148148 3535.333333 59.458669\n", + "2 Random Forest 70.666667 12836.370370 113.297707\n", + "3 Ensemble 39.209877 3107.168724 55.741983" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Results=pd.DataFrame()\n", + "Results['Model'] = ['Logistic Regression','KNN','Random Forest','Ensemble']\n", + "Results['MAE'] = MAE\n", + "Results['MSE'] = MSE\n", + "Results['RMSE'] = RMSE\n", + "Results" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.barplot(x='Model',y='MSE',data=Results)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from plotly import __version__\n", + "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", + "import cufflinks as cf\n", + "cf.go_offline()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": true + }, + "data": [ + { + "marker": { + "color": "rgba(255, 153, 51, 0.6)", + "line": { + "color": "rgba(255, 153, 51, 1.0)", + "width": 1 + } + }, + "name": "RMSE", + "orientation": "v", + "text": "", + "type": "bar", + "uid": "33ffc6a5-24e5-467b-b5a6-9fa4acd62628", + "x": [ + "Logistic Regression", + "KNN", + "Random Forest", + "Ensemble" + ], + "y": [ + 78.41390655196781, + 59.45866911841648, + 113.29770681867471, + 55.74198349789713 + ] + } + ], + "layout": { + "legend": { + "bgcolor": "#F5F6F9", + "font": { + "color": "#4D5663" + } + }, + "paper_bgcolor": "#F5F6F9", + "plot_bgcolor": "#F5F6F9", + "title": { + "font": { + "color": "#4D5663" + }, + "text": "Comparing RMSE of different models" + }, + "xaxis": { + "gridcolor": "#E1E5ED", + "showgrid": true, + "tickfont": { + "color": "#4D5663" + }, + "title": { + "font": { + "color": "#4D5663" + }, + "text": "Models" + }, + "zerolinecolor": "#E1E5ED" + }, + "yaxis": { + "gridcolor": "#E1E5ED", + "showgrid": true, + "tickfont": { + "color": "#4D5663" + }, + "title": { + "font": { + "color": "#4D5663" + }, + "text": "Root Mean Squared Error" + }, + "zerolinecolor": "#E1E5ED" + } + } + }, + "text/html": [ + "
\n", + " \n", + " \n", + "
\n", + " \n", + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Results.iplot(kind='bar',x='Model',y='RMSE',title='Comparing RMSE of different models', xTitle='Models', yTitle='Root Mean Squared Error')" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Comparing 4 models on basis of MAE\n", + "sns.barplot(x='Model',y='MAE',data=Results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### So we can see that Averaging Ensemble model is much more efficient than the previously predicted model.\n", + "\n", + "### Now lets check using **Blending Ensemble** model" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "# Creating one validation set\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(pd.DataFrame(scaled_features), y, test_size=0.2, random_state=101)\n", + "\n", + "X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=101) # validation" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "#model1 = \n", + "rfc.fit(X_train, y_train)\n", + "val_pred_rfc=rfc.predict(X_val)\n", + "test_pred_rfc=rfc.predict(X_test)\n", + "#val_pred_rfc=pd.DataFrame(rfc.predict(X_val))\n", + "#test_pred_rfc=pd.DataFrame(rfc.predict(X_test))\n", + "\n", + "#model2 = KNeighborsClassifier()\n", + "knn.fit(X_train,y_train)\n", + "val_pred_knn=knn.predict(X_val)\n", + "test_pred_knn=knn.predict(X_test)\n", + "#val_pred_knn=pd.DataFrame(val_pred_knn)\n", + "#test_pred_knn=pd.DataFrame(test_pred_knn)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [], + "source": [ + "#df_val=pd.concat([X_val, val_pred_rfc,val_pred_knn],axis=1)\n", + "df_val = X_val\n", + "df_val['pred_rfc']=val_pred_rfc\n", + "df_val['pred_knn']=val_pred_knn\n", + "#df_test=pd.concat([X_test, test_pred_rfc,test_pred_knn],axis=1)\n", + "df_test = X_test\n", + "df_test['pred_rfc']=test_pred_rfc\n", + "df_test['pred_knn']=test_pred_knn\n" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Subham\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:432: FutureWarning:\n", + "\n", + "Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", + "\n", + "C:\\Users\\Subham\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\logistic.py:469: FutureWarning:\n", + "\n", + "Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n", + "\n" + ] + } + ], + "source": [ + "#model = LogisticRegression()\n", + "logmodel.fit(df_val,y_val) # training the model based on validation set\n", + "#logmodel.score(df_test,y_test) #score based on test set\n", + "blending_predict=logmodel.predict(df_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAE: 55.388888888888886\n", + "MSE: 5441.055555555556\n", + "RMSE: 73.76351100344638\n" + ] + } + ], + "source": [ + "print('MAE:', metrics.mean_absolute_error(y_test,blending_predict))\n", + "print('MSE:', metrics.mean_squared_error(y_test, blending_predict))\n", + "print('RMSE:', np.sqrt(metrics.mean_squared_error(y_test, blending_predict)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Lets stick to averaging ensemblimg model which is performing better than blending model" + ] + }, + { + "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.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Earthquake_data_ML/Report Draft.pdf b/Earthquake_data_ML/Report Draft.pdf new file mode 100644 index 00000000..c3fefdc3 Binary files /dev/null and b/Earthquake_data_ML/Report Draft.pdf differ diff --git a/README.md b/README.md index 34ef4ab7..3d9eef6e 100644 --- a/README.md +++ b/README.md @@ -76,3 +76,7 @@ https://deeplearningcourses.com/c/deep-learning-convolutional-neural-networks-th Unsupervised Deep Learning in Python https://deeplearningcourses.com/c/unsupervised-deep-learning-in-python + +====================================================================================================================== + +A project on predicting the PGA value from Earthquake data in Iran and Middle East areas is added by subham-py