{"cells":[{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"import os\nimport pandas as pd\nimport numpy as np\nfrom sklearn.preprocessing import StandardScaler \nfrom tqdm import tqdm\nfrom sklearn.svm import SVR,NuSVR\nfrom sklearn.model_selection import GridSearchCV","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"034e94741aab678430c4f0de633a1669b0b39637"},"cell_type":"code","source":"train=pd.read_csv(\"../input/train.csv\",dtype={\"acoustic_data\": np.int16, \"time_to_failure\": np.float64})","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dc8031ad8dd7152e1de817f9cad9cc50536bc383"},"cell_type":"code","source":"rows = 150000\nsegments = int(np.floor(train.shape[0] / rows))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"14ec29560d5a3db9fedbfe9628be125a32c16d58"},"cell_type":"code","source":"col_names = ['mean','max','variance','min', 'stdev', 'q1', 'q5','q95', 'q99']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a623f3fe730bbec40f7b321d5dc7f0c46ec102f6"},"cell_type":"code","source":"X1= pd.DataFrame(index=range(segments), dtype=np.float64, columns=col_names)\nY1 = pd.DataFrame(index=range(segments), dtype=np.float64, columns=['time_to_failure'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9774aebd884b3cc342e5b539b7fffd599bf41fd0"},"cell_type":"code","source":"for segment in tqdm(range(segments)):\n    seg = train.iloc[segment*rows:segment*rows+rows]\n    x = seg['acoustic_data'].values\n    y = seg['time_to_failure'].values[-1]\n    Y1.loc[segment, 'time_to_failure'] = y\n    X1.loc[segment, 'mean'] = x.mean()\n    X1.loc[segment, 'stdev'] = x.std()\n    X1.loc[segment, 'variance'] = np.var(x)\n    X1.loc[segment, 'max'] = x.max()\n    X1.loc[segment, 'min'] = x.min()\n    X1.loc[segment, 'q1'] =  np.quantile(x, 0.01)\n    X1.loc[segment, 'q5'] =  np.quantile(x, 0.05)\n\n    X1.loc[segment, 'q95'] = np.quantile(x, 0.95)\n    X1.loc[segment, 'q99'] = np.quantile(x, 0.99)  \n    z = np.fft.fft(x)\n    realFFT = np.real(z)\n    imagFFT = np.imag(z)\n    X1.loc[segment, 'A0'] = abs(z[0])\n    X1.loc[segment, 'Real_mean'] = realFFT.mean()\n    X1.loc[segment, 'Real_std'] = realFFT.std()\n    X1.loc[segment, 'Real_max'] = realFFT.max()\n    X1.loc[segment, 'Real_min'] = realFFT.min()\n    X1.loc[segment, 'Imag_mean'] = imagFFT.mean()\n    X1.loc[segment, 'Imag_std'] = imagFFT.std()\n    X1.loc[segment, 'Imag_max'] = imagFFT.max()\n    X1.loc[segment, 'Imag_min'] = imagFFT.min()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f44d6c037fef642f05c386657f3e7a154a897462"},"cell_type":"code","source":"sc=StandardScaler()\nsc.fit(X1)\nscX = pd.DataFrame(sc.transform(X1), columns = X1.columns)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"aa2bdeca00dfdbfb00ab83613b4bf67cb6cb7f5c"},"cell_type":"code","source":"parameters = [{'gamma': [0.001, 0.005, 0.01, 0.02, 0.05, 0.1],'C': [0.1, 0.2, 0.5, 1, 1.5, 2]}]\nmodel = GridSearchCV(SVR(kernel='rbf', tol=0.01), parameters, cv=5, scoring='neg_mean_absolute_error')\nmodel.fit(scX, Y1.values.flatten())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"98d44d2f94773685e2023372371665d1c88b5862"},"cell_type":"code","source":"sub=pd.read_csv(\"../input/sample_submission.csv\",index_col='seg_id')\nxtest=pd.DataFrame(columns=X1.columns,dtype=np.float64,index=sub.index)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"796e531416bb8d134042f8ba7383cb9ca54bb657"},"cell_type":"code","source":"for i, seg_id in enumerate(tqdm(xtest.index)):\n    seg = pd.read_csv('../input/test/' + seg_id + '.csv')\n    \n    x = pd.Series(seg['acoustic_data'].values)\n    z = np.fft.fft(x)\n    realFFT = np.real(z)\n    imagFFT = np.imag(z)\n    \n    xtest.loc[seg_id, 'mean'] = x.mean()\n    xtest.loc[seg_id, 'stdev'] = x.std()\n    xtest.loc[seg_id, 'variance'] = np.var(x)\n    xtest.loc[seg_id, 'max'] = x.max()\n    xtest.loc[seg_id, 'min'] = x.min()\n    xtest.loc[seg_id, 'q1'] = np.quantile(x, 0.01)\n    xtest.loc[seg_id, 'q5'] = np.quantile(x, 0.05)\n    \n    xtest.loc[seg_id, 'q95'] = np.quantile(x, 0.95)\n    xtest.loc[seg_id, 'q99'] = np.quantile(x, 0.99)\n    xtest.loc[seg_id, 'A0'] = abs(z[0])\n    xtest.loc[seg_id, 'Real_mean'] = realFFT.mean()\n    xtest.loc[seg_id, 'Real_std'] = realFFT.std()\n    xtest.loc[seg_id, 'Real_max'] = realFFT.max()\n    xtest.loc[seg_id, 'Real_min'] = realFFT.min()\n    xtest.loc[seg_id, 'Imag_mean'] = imagFFT.mean()\n    xtest.loc[seg_id, 'Imag_std'] = imagFFT.std()\n    xtest.loc[seg_id, 'Imag_max'] = imagFFT.max()\n    xtest.loc[seg_id, 'Imag_min'] = imagFFT.min()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"8b67071f48cd1368f3cafe73ab5bb6945ddb59d9"},"cell_type":"code","source":"sctestx = pd.DataFrame(sc.transform(xtest), columns = xtest.columns)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2bb84c52fcece3a85569dddddd7e57d14a6d2b97"},"cell_type":"code","source":"pred = model.predict(sctestx)\nprint(pred.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e537257a90f842ea9168bdd40b62aed3b2b31f0f"},"cell_type":"code","source":"sub['time_to_failure'] = pred\nsub.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"97bbfe02fdf7ed383e709ecf0f35eecdd6e763d9"},"cell_type":"code","source":"sub.to_csv(\"submittedoutput.csv\")","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}