{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ecba6e87e49cdb08797e521f111a1e4d2d7793ea"},"cell_type":"code","source":"import matplotlib.pyplot as plt\nfrom tqdm import tqdm #Makes iterations look better\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.metrics import mean_absolute_error\nfrom sklearn.ensemble import GradientBoostingRegressor","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"train_data = pd.read_csv('../input/train.csv',dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ac93d47d8ec4fa5b8de1486cbbb2b00f3dd07775"},"cell_type":"code","source":"# Display the head of the dataframe\npd.options.display.precision = 10\n\ntrain_data.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d9522cbd2edd53fbeffe970bf7399ca4e8430940"},"cell_type":"code","source":"# Dimensions of the given training data\nprint(\"Rows: {}, Columns: {}\".format(train_data.shape[0],train_data.shape[1]))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ea233f5209a8685b7ab64af675cad16d9828eeea"},"cell_type":"code","source":"from scipy.stats import kurtosis, skew\nfrom statsmodels.robust import mad\nsegment_size = 150000\nnum_segments = int(np.floor(train_data.shape[0]/segment_size))\n\nX_train = pd.DataFrame(index=range(num_segments),columns=['ave','std','min','max'],dtype=np.float64)\ny_train = pd.DataFrame(index=range(num_segments),columns=['time_to_failure'],dtype=np.float64)\n\nfor i in tqdm(range(num_segments)):\n    segment_i = train_data.iloc[i*segment_size:i*segment_size+segment_size]\n    x = segment_i['acoustic_data'].values\n    y = segment_i['time_to_failure'].values[-1]\n    X_train.loc[i,'ave'] = x.mean()\n    X_train.loc[i,'std'] = x.std()\n    X_train.loc[i,'max'] = x.max()\n    X_train.loc[i,'min'] = x.min()\n    X_train.loc[i,'kurtosis'] = kurtosis(x)\n    X_train.loc[i,'skew'] = skew(x)\n    X_train.loc[i,'mad'] = mad(x)\n    \n    y_train.loc[i,'time_to_failure'] = y\n    ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2ce594eb2dda6df71d78357e6b68bf70275ceb81"},"cell_type":"code","source":"X_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"589f4a044f630ad33a49f0708578ac2e9c1ec691"},"cell_type":"code","source":"y_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bb96c350fac3c6f7fe418587f60c199bcf10e03e"},"cell_type":"code","source":"print(\"X_train Shape: {}, y_train Shape: {}\".format(X_train.shape,y_train.shape))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4edab6192db2d68ac894b76ef33278cecc8d8e24"},"cell_type":"code","source":"scaler = StandardScaler()\nscaler.fit(X_train)\nX_train_scaled = scaler.transform(X_train)\nX_train_scaled","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d0450a5eeec5f9d027c2272a944f6283e002945b"},"cell_type":"code","source":"# Create testing data / handle the testing part\nfrom scipy.stats import kurtosis, skew\nfrom statsmodels.robust import mad\nsubmission_files = pd.read_csv('../input/sample_submission.csv',index_col='seg_id')\nsubmission_files\n\nX_test = pd.DataFrame(columns=X_train.columns,index=submission_files.index,dtype=np.float64)\n\nfor seg_id in tqdm(X_test.index):\n    segment = pd.read_csv('../input/test/'+seg_id+'.csv')\n    x = segment['acoustic_data'].values\n    X_test.loc[seg_id,'ave'] = x.mean()\n    X_test.loc[seg_id,'std'] = x.std()\n    X_test.loc[seg_id,'max'] = x.max()\n    X_test.loc[seg_id,'min'] = x.min()\n    X_test.loc[seg_id,'kurtosis'] = kurtosis(x)\n    X_test.loc[seg_id,'skew'] = skew(x)\n    X_test.loc[seg_id,'mad'] = mad(x)\nX_test","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3e968d0f3cba4bdd0ed87445b6e144291893fb2c"},"cell_type":"code","source":"X_test_scaled = scaler.transform(X_test)\nX_test_scaled","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dc18ce676aa49cf109a33654b755cb87e19b69ea"},"cell_type":"code","source":"# from sklearn.ensemble import RandomForestRegressor\nfrom sklearn.metrics.scorer import make_scorer\nfrom sklearn.model_selection import cross_val_score\nmodel = GradientBoostingRegressor(learning_rate=0.1,n_estimators=200,loss='ls')\n# model = RandomForestRegressor(criterion=\"mae\",n_estimators=100).fit(X_train_scaled,y_train.values.flatten())\n# y_predictions = model.predict(X_train_scaled)\n# y_predictions\nprint(np.mean(cross_val_score(model, X_train_scaled, y_train.values.flatten(), cv=10, scoring=make_scorer(mean_absolute_error))))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#mean_absolute_error(y_train.values.flatten(),y_predictions)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dd2943f4e06f93083b56b1ce70d99e029f329c56"},"cell_type":"code","source":"# y_test_predictions = model.predict(X_test_scaled)\n# submission_files['time_to_failure'] = y_test_predictions\n# submission_files.to_csv('submission1.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"530289e50f4b5be4e9c0feaa7e27288312dca0a0"},"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":4}