{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport gc\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.cluster import KMeans\nfrom sklearn.metrics import mean_squared_error\n\nfrom sklearn.linear_model import SGDRegressor\nfrom sklearn.linear_model import Lasso\nfrom sklearn.linear_model import HuberRegressor\nfrom sklearn.ensemble import RandomForestRegressor\nimport xgboost as xgb\nimport lightgbm as lgbm \nfrom lightgbm import LGBMRegressor\n\nimport os\n#for dirname, _, filenames in os.walk('/kaggle/input'):\n    #for filename in filenames:\n        #print(os.path.join(dirname, filename))\n#import warnings\n#warnings.filterwarnings(\"ignore\")\n        \nfrom sklearn.decomposition import PCA\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom scipy.ndimage import maximum_filter1d\nfrom scipy.ndimage import minimum_filter1d\n\nfrom sklearn.preprocessing import MinMaxScaler\nfrom sklearn.preprocessing import StandardScaler\nStSc = StandardScaler()\nMMS = MinMaxScaler()\nfrom sklearn.model_selection import train_test_split, RandomizedSearchCV\n","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"V_PATH = '../input/predict-volcanic-eruptions-ingv-oe/'\nTRAIN_PATH = V_PATH + 'train/'\nTEST_PATH = V_PATH + 'test/'","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"SENSOR_COLS = ['sensor_1', 'sensor_2', 'sensor_3', 'sensor_4', 'sensor_5', 'sensor_6',\n       'sensor_7', 'sensor_8', 'sensor_9', 'sensor_10']\n\n\nSENSOR_RMEANS = [x+'_rmin' for x in SENSOR_COLS] \nSENSOR_RSTDS = [x+'_rstd' for x in SENSOR_COLS] \nSENSOR_RMINS = [x+'_rmin' for x in SENSOR_COLS] \nSENSOR_RMAXES = [x+'_rmax' for x in SENSOR_COLS]\nSENSOR_RSKEWS = [x+'_rskew' for x in SENSOR_COLS]\nSENSOR_RSUMS = [x+'_rsum' for x in SENSOR_COLS]\nSENSOR_RVARS = [x+'_rvar' for x in SENSOR_COLS]\n#SENSOR_RMADS = [x+'_rmad' for x in SENSOR_COLS]\n#SENSOR_RKURTOSISES = [x+'_rkurtosis' for x in SENSOR_COLS]\n\n\n\n#SENSOR_RGRADMEAN = [x+'_grad_rmean' for x in SENSOR_COLS]\n#SENSOR_RGRADSTD = [x+'_grad_rstd' for x in SENSOR_COLS]\n\nSENSOR_RSTATS = [SENSOR_RMEANS, SENSOR_RSTDS, SENSOR_RMINS, SENSOR_RMAXES, SENSOR_RSKEWS, SENSOR_RSUMS, SENSOR_RVARS]\n\nROLL_DESCR = ['rmean', 'rstd', 'rmin', 'rmax', 'rskew', 'rsum', 'rvar']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/predict-volcanic-eruptions-ingv-oe/train.csv')\nprint(train.shape)\nprint(train.columns)\n\ntrain.head(6)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_small=train[:20]\ntrain_small","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_files = []\nfor dirname, _, filenames in os.walk(V_PATH+'/test/'):\n    for filename in filenames:\n        test_files.append(filename[:-4]) # without .csv extension\n        \ntest = pd.DataFrame(test_files, columns=[\"segment_id\"])\ntest.head(6)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_small=test[:20]\ntest_small","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sample_submission = pd.read_csv('../input/predict-volcanic-eruptions-ingv-oe/sample_submission.csv')\nsample_submission.head(5)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sns.distplot(train['time_to_eruption'], \n             hist=True, \n             kde=False, \n             bins=100, \n             color = 'blue', \n             hist_kws={'edgecolor':'black'})","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fulltrain = pd.read_csv('../input/testtraindatasets/volcano_train_small_fts_0_4431.csv')\nfulltest = pd.read_csv('../input/testtraindatasets/volcano_test_small_fts_0_4520.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_20=fulltrain[:4431]\ntest_20=fulltest[:4520]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_20","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_20","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X = train_20.drop(['segment_id', 'time_to_eruption', 'Unnamed: 0' ], axis=1)\ny = train_20['time_to_eruption']\n\nX_train, X_valid, y_train, y_valid = train_test_split(X, y, \n                                                      test_size=0.2, \n                                                      random_state=42)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Default parameters\nparams = {\n    'boosting_type': 'gbdt', \n    'num_leaves': 31,\n    'max_depth': -1,\n    'learning_rate': 0.1,\n    'n_estimators': 100, \n    'subsample_for_bin': 200, # 200000 is default \n    #'objective': 'binary'\n    'min_split_gain': 0.5,    # 0.0 is default \n    'min_child_weight': 1e-3, \n    'min_child_samples': 20,\n    'subsample': 1,\n    'colsample_bytree': 1.0,\n    'min_data_in_leaf': 20,\n    'feature_fraction': 1.0,\n    'bagging_fraction': 1.0,\n    'random_state': 42\n    #'device': 'cpu', # you can use GPU to achieve faster learning\n}\n        \n# Initiate classifier to use\nmodel_lgbm_regr = LGBMRegressor(boosting_type = params['boosting_type'], \n                                num_leaves = params['num_leaves'],\n                                max_depth = params['max_depth'],\n                                learning_rate = params['learning_rate'],\n                                n_estimators = params['n_estimators'],\n                                subsample_for_bin = params['subsample_for_bin'],\n                                #objective = params['objective'],\n                                min_split_gain = params['min_split_gain'], \n                                min_child_weight = params['min_child_weight'], \n                                min_child_samples = params['min_child_samples'],\n                                subsample = params['subsample'],\n                                colsample_bytree = params['colsample_bytree'],\n                                min_data_in_leaf = params['min_data_in_leaf'],\n                                feature_fraction = params['feature_fraction'],\n                                bagging_fraction = params['bagging_fraction'],\n                                random_state = params['random_state'],\n                                #n_jobs = 5, \n                                silent = True\n                               )\n\n# To view the default model parameters:\nmodel_lgbm_regr.get_params().keys()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"model_lgbm_regr.fit(X_train, y_train, \neval_set= [(X_train, y_train), (X_valid, y_valid)], eval_metric=\"mae\", verbose=200, early_stopping_rounds=50)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"predictions = model_lgbm_regr.predict(test_20.drop(columns=['segment_id', 'Unnamed: 0']))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.DataFrame()\nsubmission['segment_id'] = test_20[\"segment_id\"]\nsubmission['time_to_eruption'] = predictions\nsubmission.to_csv('submission.csv', header=True, index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission","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":4}