{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"#import matplotlib.pyplot as plt\n#import plotly.express as px\nfrom tqdm import tqdm\n#from sklearn.preprocessing import StandardScaler\n#from sklearn.svm import NuSVR\n#from sklearn.metrics import mean_absolute_error\nimport pandas as pd\nimport numpy as np\nimport seaborn as sns \nfrom sklearn import tree\nfrom sklearn.model_selection import GridSearchCV ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/LANL-Earthquake-Prediction/train.csv', dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"pd.options.display.precision = 15\ntrain.head(3)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"x = train[['acoustic_data']].iloc[0:15000, 0:]\nax = sns.distplot(x)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"rows = 150000\nsegments = int(np.floor(train.shape[0] / rows))\nprint(segments)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train = pd.DataFrame(index=range(segments), dtype=np.float64,\n                       columns=['mean', 'des', 'std', 'max', 'min', 'quan0.25', 'quan0.5', 'quan0.75'])\nprint(X_train.shape)\n\ny_train = pd.DataFrame(index=range(segments), dtype=np.float64,\n                       columns=['time_to_failure'])\n\nprint(y_train.shape)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for segment in tqdm(range(segments)):\n    \n    seg = train.iloc[segment*rows:segment*rows+rows] \n    \n    x = seg['acoustic_data'].values \n    y = seg['time_to_failure'].values[-1] \n    \n    \n    y_train.loc[segment, 'time_to_failure'] = y\n    \n    \n    X_train.loc[segment, 'mean'] = x.mean()\n    X_train.loc[segment, 'des'] = np.var(x)\n    X_train.loc[segment, 'std'] = x.std()\n    X_train.loc[segment, 'max'] = x.max()\n    X_train.loc[segment, 'min'] = x.min()\n\n    X_train.loc[segment, 'quan0.25'] = np.quantile(x, 0.25)\n    X_train.loc[segment, 'quan0.5'] = np.quantile(x, 0.5)\n    X_train.loc[segment, 'quan0.75'] = np.quantile(x, 0.75)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(X_train.shape)\nprint(y_train.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"reg = tree.DecisionTreeRegressor()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"parametrs_des_regr = {'criterion': ['mae', 'friedman_mse'], 'max_depth': range(2, 10), 'min_samples_split': range(59,70), \n             'min_samples_leaf': range(10,20)} ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"grid_search_cv_clf = GridSearchCV(reg, parametrs_des_regr, cv=5)\ngrid_search_cv_clf.fit(X_train, y_train)\nprint(grid_search_cv_clf.best_params_)\nbest_clf = grid_search_cv_clf.best_estimator_\nbest_clf.fit(X_train, y_train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.read_csv('../input/LANL-Earthquake-Prediction/sample_submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test = pd.DataFrame(columns=X_train.columns, dtype=np.float64, index=submission.seg_id)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for seg_id in X_test.index:\n    \n    seg = pd.read_csv('../input/LANL-Earthquake-Prediction/test/' + seg_id + '.csv')\n    \n    y = seg['acoustic_data'].values\n    \n    X_test.loc[seg_id, 'mean'] = y.mean()\n    X_test.loc[seg_id, 'des'] = np.var(y)\n    X_test.loc[seg_id, 'std'] = y.std()\n    X_test.loc[seg_id, 'max'] = y.max()\n    X_test.loc[seg_id, 'min'] = y.min()\n\n    X_test.loc[seg_id, 'quan0.25'] = np.quantile(y, 0.25)\n    X_test.loc[seg_id, 'quan0.5'] = np.quantile(y, 0.5)\n    X_test.loc[seg_id, 'quan0.75'] = np.quantile(y, 0.75)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"predict_time_to_failure = best_clf.predict(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"predict_time_to_failure","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_pred = pd.DataFrame(columns=submission.columns, dtype=np.float64)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_pred.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_pred['time_to_failure'] = predict_time_to_failure\nsubmission_pred['seg_id'] = submission.seg_id","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission_pred.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.to_csv('submission1.csv', index=False)","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":1}