{"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\n\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"# Importing the suitable library\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.preprocessing import StandardScaler\nfrom catboost import CatBoostRegressor,Pool\nimport os\nimport warnings\nwarnings.filterwarnings(\"ignore\")\nimport lightgbm as lgb","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2f7e5fcb7ebb51586be8badd654baf45668558d1"},"cell_type":"code","source":"sc=StandardScaler()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bddef48abe5ba0f971b92ef1d8d2aa32f0945521"},"cell_type":"code","source":"#loaing the datasets\ntrain_data=pd.read_csv(\"../input/train.csv\",nrows=20000000,dtype={\"acoustic_data\":np.int16,\"time_to_failure\":np.float64},low_memory=True)\ntest_data=os.listdir(\"../input/test\")\n#sample_submission_data=pd.read_csv(\"../input/sample_submission.csv\",low_memory=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"68fd0307c30c28dbd5a1277316f4789fabf05d6d"},"cell_type":"code","source":"sample_submission_data=pd.read_csv(\"../input/sample_submission.csv\",low_memory=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6e1bd8ce82fba9da5dc2d026a92921376ecdcf34"},"cell_type":"code","source":"sample_submission_data[:5]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"abcd3d34d4e36cd70d6fb5244d5dbded09fecc54"},"cell_type":"code","source":"test_data[0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"248d99770b5112b82ccffa5c214b83d4de7f5c87"},"cell_type":"code","source":"test_data[1]\npd.read_csv(\"../input/test/\"+test_data[1])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f5a06c0f59e5125bf7c2dbefa538389a804011c2"},"cell_type":"code","source":"print(train_data.shape)\n#print(sample_submission_data.shape)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2064f6686436b1495b11b94578232ad0685d2c6a"},"cell_type":"code","source":"train_data.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6f35a992407c7d3c5ad1c76b70314050755ae053"},"cell_type":"code","source":"plt.figure(figsize=(25,5))\nplt.subplot(1,2,1)\nprint(train_data[\"time_to_failure\"].plot(color=\"b\"))\nplt.subplot(1,2,2)\nprint(train_data[\"acoustic_data\"].plot(color=\"r\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"33f222379a28e4546ac0cf1fdf5ccae87e4929d1"},"cell_type":"code","source":"train_data.head()\ny_train=train_data[\"time_to_failure\"]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c5f2fba47349990c264336a4b40843a35580b69b"},"cell_type":"code","source":"features = ['mean','max','variance','min', 'stdev','skew','kurtosis','Quantile-20%','Quantile-50%','Quantile-75%','max-min-diff','max-mean-diff','mean-change-abs','abs-min','abs-max','std-first-50000','std-last-50000','mean-first-50000','mean-last-50000','max-first-50000','max-last-50000','min-first-50000','min-last-50000']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d6d728820769d60f7281129e741c616a33487c37"},"cell_type":"code","source":"rows = 150000\nsegments = int(np.floor(train_data.shape[0] / rows))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1f3009e4a9ee3653a554fbd93a6c68171c028e73"},"cell_type":"code","source":"X = pd.DataFrame(index=range(segments), dtype=np.float64,\n                       columns=features)\nY = pd.DataFrame(index=range(segments), dtype=np.float64,\n                       columns=['time_to_failure'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"61fcef66603a80937ba5a1d73018c8b7cfa44f69"},"cell_type":"code","source":"for segment in range(segments):\n    seg = train_data.iloc[segment*rows:segment*rows+rows]\n    x = seg['acoustic_data'].values\n    y = seg['time_to_failure'].values[-1]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d7d7b6283acb464dedb9bb711522c21aab21b82f"},"cell_type":"code","source":"x","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9b9c69cc85b414e5a45108801f1ef92cf4dd79d5"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0067ec572397d1a6134acec8e9b7bfc1bcbac1df"},"cell_type":"code","source":"for segment in range(segments):\n    seg = train_data.iloc[segment*rows:segment*rows+rows]\n    x = seg['acoustic_data'].values\n    y = seg['time_to_failure'].values[-1]\n    \n    Y.loc[segment, 'time_to_failure'] = y\n    X.loc[segment, 'mean'] = x.mean()\n    X.loc[segment, 'stdev'] = x.std()\n    X.loc[segment,'variance'] = np.var(x)\n    X.loc[segment, 'max'] = x.max()\n    X.loc[segment, 'min'] = x.min()\n    X.loc[segment,\"skew\"]= pd.Series(x).skew()\n    X.loc[segment,\"kurtosis\"]= pd.Series(x).kurtosis()\n    X.loc[segment,\"Quantile-20%\"]= pd.Series(x).quantile(0.25)\n    X.loc[segment,\"Quantile-50%\"]= pd.Series(x).quantile(0.50)\n    X.loc[segment,\"Quantile-75%\"]= pd.Series(x).quantile(0.75)\n    X.loc[segment, 'max-min-diff'] = x.max()-x.min()\n    X.loc[segment, 'max-mean-diff'] = x.max()-x.mean()\n    X.loc[segment, 'mean-change-abs'] = np.mean(np.diff(x))\n    X.loc[segment, 'abs-min'] = np.abs(x).min()\n    X.loc[segment, 'abs-max'] = np.abs(x).max()\n    X.loc[segment, 'std-first-50000'] = x[:50000].std()\n    X.loc[segment, 'std-last-50000'] = x[-50000:].std()\n    X.loc[segment, 'mean-first-50000'] = x[:50000].min()\n    X.loc[segment, 'mean-last-50000'] = x[-50000:].mean()\n    X.loc[segment, 'max-first-50000'] = x[:50000].max()\n    X.loc[segment, 'max-last-50000'] = x[-50000:].max()\n    X.loc[segment, 'min-first-50000'] = x[:50000].min()\n    X.loc[segment, 'min-last-50000'] = x[-50000:].min()\n    ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2d5ea7225f4fb37c8b59bdf679ce7a4d35c84b3e"},"cell_type":"code","source":"sns.distplot(Y)\nyy=np.log(Y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"49bdf2fe522e7a95960216175c44046fe546836d"},"cell_type":"code","source":"yy","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ea13c878502465f56086bdb696282d2f35c585a3"},"cell_type":"code","source":"x_train=sc.fit_transform(X)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a40a1b8fba971d158965ce3af0ca1210e128eb79"},"cell_type":"code","source":"sns.distplot(Y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"81d0015e4f7ab7e95266f545bd59b24586a75081"},"cell_type":"code","source":"m=CatBoostRegressor(iterations=500,loss_function=\"MAE\",boosting_type=\"Ordered\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fd02129d969d5eb161eb7076459b3e487e3848a5"},"cell_type":"code","source":"m.fit(x_train,yy,silent=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b2dbe6d5f2cc61abbd14543d3e06cab2b4c1cfe7"},"cell_type":"code","source":"m.best_score_","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6e6ae50cd6beeeb2d3147c5a95152cc02e44838d"},"cell_type":"code","source":"X_test = pd.DataFrame(columns=features,index=sample_submission_data.index)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"970533230c3b6bce4e194b4d9185e96f2f8363d4"},"cell_type":"code","source":"for i in range(len(sample_submission_data)):\n    file=os.listdir(\"../input/test/\")[i]\n    data1=pd.read_csv(\"../input/test/\"+file,low_memory=True,dtype={\"acoustic_data\":np.int16})\n    m1=data1[\"acoustic_data\"].values\n    x=m1\n    X_test.loc[i, 'mean'] = x.mean()\n    X_test.loc[i, 'stdev'] = x.std()\n    X_test.loc[i,'variance'] = np.var(x)\n    X_test.loc[i, 'max'] = x.max()\n    X_test.loc[i, 'min'] = x.min()\n    X_test.loc[i,\"skew\"]= pd.Series(x).skew()\n    X_test.loc[i,\"kurtosis\"]= pd.Series(x).kurtosis()\n    X_test.loc[i,\"Quantile-20%\"]= pd.Series(x).quantile(0.25)\n    X_test.loc[i,\"Quantile-50%\"]= pd.Series(x).quantile(0.50)\n    X_test.loc[i,\"Quantile-75%\"]= pd.Series(x).quantile(0.75)\n    X_test.loc[i, 'max-min-diff'] = x.max()-x.min()\n    X_test.loc[i, 'max-mean-diff'] = x.max()-x.mean()\n    X_test.loc[i, 'mean-change-abs'] = np.mean(np.diff(x))\n    X_test.loc[i, 'abs-min'] = np.abs(x).min()\n    X_test.loc[i, 'abs-max'] = np.abs(x).max()\n    X_test.loc[i, 'std-first-50000'] = x[:50000].std()\n    X_test.loc[i, 'std-last-50000'] = x[-50000:].std()\n    X_test.loc[i, 'mean-first-50000'] = x[:50000].min()\n    X_test.loc[i, 'mean-last-50000'] = x[-50000:].mean()\n    X_test.loc[i, 'max-first-50000'] = x[:50000].max()\n    X_test.loc[i, 'max-last-50000'] = x[-50000:].max()\n    X_test.loc[i, 'min-first-50000'] = x[:50000].min()\n    X_test.loc[i, 'min-last-50000'] = x[-50000:].min()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"cec1f13369c32fa94097190569ad56591f201e6f"},"cell_type":"code","source":"X_test","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2c1a34ff0587d7c3579e7c286a45ae5aae0dce47"},"cell_type":"code","source":"test1_data= sc.fit_transform(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5f81eea58b2f3617cb152ad50afce67a5377642b"},"cell_type":"code","source":"y_pred=m.predict(test1_data)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"769537d3dcc4c2f3a930a233ff2d4362c208ac3c"},"cell_type":"code","source":"y_pred","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2fdf8c051ad283813a1632672554eeeda58531e5"},"cell_type":"code","source":"sample_submission_data['time_to_failure'] = np.exp(y_pred)\nsample_submission_data.to_csv('submission.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b53e715d9b7bc393660fc0fa331c314f7b61dd6c"},"cell_type":"code","source":"params = {'num_leaves': 51,\n         'min_data_in_leaf': 10, \n         'objective':'regression',\n         'max_depth': -1,\n         'learning_rate': 0.001,\n         \"boosting\": \"gbdt\",\n         \"feature_fraction\": 0.91,\n         \"bagging_freq\": 1,\n         \"bagging_fraction\": 0.91,\n         \"bagging_seed\": 42,\n         \"metric\": 'mae',\n         \"lambda_l1\": 0.1,\n         \"verbosity\": -1,\n         \"nthread\": -1,\n         \"random_state\": 42}","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"db10c1c2f397d0e430afbedf608756633dbadea3"},"cell_type":"code","source":"# model = lgb.LGBMRegressor(**params, n_estimators = 20000, n_jobs = -1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c3c69696f6f08e7b6d8b364165bf4fb6e366d128"},"cell_type":"code","source":"#model.fit((x_train,Y,eval_set=[(X_tr, y_teval_metric='mae',verbose=1000, early_stopping_rounds=200)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d0797fc11690f246250072a281071ee7f2725667"},"cell_type":"code","source":"#from IPython.display import YouTubeVideo\n#YouTubeVideo(\"TffGdSsWKlA\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"81e91eeecd9c00fb06c979a8a412edd3a3a81cf2"},"cell_type":"code","source":"from sklearn.ensemble import GradientBoostingRegressor","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d5af7dc8b77e5337e92083b966f6af546c6ed5c5"},"cell_type":"code","source":"GBoost = GradientBoostingRegressor(n_estimators=900, learning_rate=0.05,\n                                   max_depth=4, max_features='sqrt',\n                                   min_samples_leaf=15, min_samples_split=10, \n                                   loss='huber', random_state =5)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"31fa26c0d298a3721cda7900c95f9c4915394cf4"},"cell_type":"code","source":"GBoost.fit(x_train,Y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3183bf2983d18947b4af81fde9ebc2155411c0ad"},"cell_type":"code","source":"GBoost.score(x_train,Y)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b1bdfb18a8701e94db73fbab5cdd6e79acdd6722"},"cell_type":"code","source":"y_pred=GBoost.predict(test1_data)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"41656747f64c1f2c3287e8a439728539c50bab5f"},"cell_type":"code","source":"y_pred","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"450bafc1dc92b0c3f4818be2d3371f07d5dc1283"},"cell_type":"code","source":"sample_submission_data['time_to_failure'] = y_pred\nsample_submission_data.to_csv('submission111.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e70f4897006049aeaf520610007f06079811b392"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"64633b2a67fc09035e018dddf5b68e8cf9ae9455"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"80da0ff71276ffd8f84fb1261eefa61849152d83"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fa808313ba468b7994938658a479104a0eb6fb49"},"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":1}