{"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":83,"outputs":[{"output_type":"stream","text":"['test', 'train.csv', 'sample_submission.csv']\n","name":"stdout"}]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"PATH=\"../input/\"\nos.listdir(PATH)","execution_count":84,"outputs":[{"output_type":"execute_result","execution_count":84,"data":{"text/plain":"['test', 'train.csv', 'sample_submission.csv']"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"there are {} number of files in Test folder\".format(len(os.listdir(os.path.join(PATH,'test')))))","execution_count":85,"outputs":[{"output_type":"stream","text":"there are 2624 number of files in Test folder\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"%%time\ntrain_df = pd.read_csv(os.path.join(PATH,'train.csv'),nrows = 6000000,dtype={\n    'acoustic_data': np.int16, 'time_to_failure': np.float32})","execution_count":86,"outputs":[{"output_type":"stream","text":"CPU times: user 1.26 s, sys: 56 ms, total: 1.31 s\nWall time: 1.31 s\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df.head()","execution_count":87,"outputs":[{"output_type":"execute_result","execution_count":87,"data":{"text/plain":"   acoustic_data  time_to_failure\n0             12           1.4691\n1              6           1.4691\n2              8           1.4691\n3              5           1.4691\n4              8           1.4691","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>acoustic_data</th>\n      <th>time_to_failure</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>12</td>\n      <td>1.4691</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>6</td>\n      <td>1.4691</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>8</td>\n      <td>1.4691</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>5</td>\n      <td>1.4691</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>8</td>\n      <td>1.4691</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_df.head(10)\nfrom matplotlib import pyplot as plt","execution_count":88,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"x = train_df['acoustic_data'].values[::100]\ny = train_df['time_to_failure'].values[::100]","execution_count":89,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"fig,ax1 = plt.subplots(figsize=(12, 8))\nplt.plot(x,color = 'r')\nax1.set_ylabel('Accoustic_data', color = 'r')\nax1.legend(['Accoustic_data'],loc = (0,0.9))\nax2 = ax1.twinx()\nplt.plot(y,color = 'b')\nplt.grid(True)","execution_count":90,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 864x576 with 2 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAvcAAAHVCAYAAAB189QbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XmcFNW5//HvA4jAiCyyiKgBE1xxR2M07hiNMe5rvEaNP7ckLvfeGMmmxsSYROMSjeYSTVwSiYpxiTFBRVFxBTdEcAFBBdkRWYZtmOf3x+myq2e6Z3qa6a6ems/79apXVZ0+VXWqu7r7qVOnTpm7CwAAAEDb1yHpAgAAAABoHQT3AAAAQEoQ3AMAAAApQXAPAAAApATBPQAAAJASBPcAAABAShDcAwAAAClBcA8AAACkBME9AAAAkBKdki5Akjp06OBdu3ZNuhgAAABIsdraWnf3ilSqt+vgvmvXrlqxYkXSxQAAAECKmdnKZl7/s6QjJM1396GZtGskfVPSGknTJZ3p7kua2xbNcgAAAIBk3SHpsAZpT0ga6u47SXpP0o+KWRHBPQAAAJAgd39W0uIGaY+7e11m9iVJmxezrnbdLKd3794aN25c0sUAAABAunUys4mx+ZHuPrIFy39H0r3FZDR3b1HJ0qSmpsZpcw8AAIByMrNad69pJs8gSY9Gbe5j6T+RNEzSsV5E4N6ua+4BAACAamVmZyjcaHtwMYG9RHAPAAAAVB0zO0zSDyXt7+61xS7HDbUAAABAgsxslKQXJW1jZrPM7CxJN0vqLukJM3vDzP5Y1Lpoc0+bewAAAJRPMW3uWws19wAAAEBKENwDAAAAKUFwDwAAAKQEwT0AAACQEgT3AAAAQEoQ3AMAAAApQXAPAAAApATBPQAAAJASBPcAAAAoC3eptjaMURmdki4AAABoR158Udp7b2nCBGnYsKRLgzIbMUL67W+lDTeUBgyQ+vSR+vWTNt1U6ts3pPXrF6ajtL59pQ5UP5eM4B4AAFTOo4+G8ZgxBPftwMyZYXzBBdK8eWGYM0d67TVp0SJp7drGy5iFk4D+/cPQp084Cejbt/GJQd++UteuFd2lqkdwDwAAgLLZdlvpmmsap9fXS0uWSHPnSgsXhqB/wQJp/vyQtmBBGM+cGU4Kli/Pv/6NNgoBf58+YdyvX/YkIDoxiNJ69kz/VQGCewAAAFRchw5S795hKEZtbTgJ+OST3JOA+InB9OnS88+HqwL19Y3XceKJ0r33tu5+VBuCewAAAFS9bt2kLbcMQ3PWrQvBfnQSMGdOOAn44hfLX86kEdwDAAAgVTp2DM1yNt006ZJUXrsO7jt06KAZM2Zo1apVSRcFLdClSxdtvvnm2mCDDZIuCgAAQFVp18F9nz591L17dw0aNEhmlnRxUAR316JFizRr1iwNHjw46eIAAABUlZTfL9y0zp07a5NNNiGwb0PMTJtssglXWwAAAPJo18G9JAL7NojPDAAAIL92H9wDAAAAaUFwXwUeeughmZneeeedRMswZcqUz+cvu+wyPfnkk+u1zgMOOEATJ05sMs8NN9yg2tra9doOAAAAAoL7KjBq1Ch99atf1ahRoxIrQ8Pg/sorr9Tw4cPLvl2CewAAgNZDcB+5+GLpgANad7j44mY3u3z5co0fP1633367/v73v3+e/pvf/EY77rijdt55Z40YMUKSNG3aNA0fPlw777yzdtttN02fPl3urksuuURDhw7VjjvuqHszj10bN26cjjjiiM/X9/3vf1933HGHJGnEiBHafvvttdNOO+kHP/iBXnjhBT3yyCO65JJLtMsuu2j69Ok644wzNHr0aEnShAkTtPfee2vnnXfWnnvuqWXLluXdl5UrV+rkk0/Wdtttp2OOOUYrV678/LXzzz9fw4YN0w477KDLL79ckvT73/9en3zyiQ488EAdeOCBBfMBAFJk6dIwHjs22XIAKZV4V5hm9mdJR0ia7+5DM2m9Jd0raZCkmZJOdPdPLdxJeaOkwyXVSjrD3V/LLHO6pJ9mVvtLd7+zkvtRqocffliHHXaYtt56a22yySZ69dVXNX/+fD388MN6+eWX1a1bNy1evFiSdOqpp2rEiBE65phjtGrVKtXX1+sf//iH3njjDb355ptauHCh9thjD+23334Ft7do0SI9+OCDeuedd2RmWrJkiXr27KkjjzxSRxxxhI4//vic/GvWrNFJJ52ke++9V3vssYeWLl2qrl275l33rbfeqm7dumnq1KmaNGmSdtttt89fu+qqq9S7d2+tW7dOBx98sCZNmqQLL7xQ1113nZ5++mn16dOnYL6ddtppfd9mAEC1eOONMH766WTLAaRU4sG9pDsk3SzprljaCElj3f3XZjYiM3+ppK9LGpIZvizpVklfzpwMXC5pmCSX9KqZPeLunxZdihtuWP89KcGoUaN00UUXSZJOPvlkjRo1Su6uM888U926dZMk9e7dW8uWLdPs2bN1zDHHSAoPcpKk8ePH65RTTlHHjh3Vv39/7b///powYYI23njjvNvr0aOHunTporPOOktHHHFETu1+Pu+++64GDBigPfbYQ5IKrleSnn32WV144YWSpJ122iknKL/vvvs0cuRI1dXVac6cOZoyZUreoL3YfAAAAGgs8eDe3Z81s0ENko+SdEBm+k5J4xSC+6Mk3eXuLuklM+tpZgMyeZ9w98WSZGZPSDpMUnKN2IuwePFiPfXUU3rrrbdkZlq3bp3MTCeccMJ6r7tTp06qr6//fD7qF75Tp0565ZVXNHbsWI0ePVo333yznnrqqfXeXlNmzJiha6+9VhMmTFCvXr10xhln5O2nvth8AAAAyK9a29z3d/c5mem5kvpnpgdK+jiWb1YmrVB6VRs9erROO+00ffjhh5o5c6Y+/vhjDR48WD169NBf/vKXz280Xbx4sbp3767NN99cDz30kCRp9erVqq2t1b777qt7771X69at04IFC/Tss89qzz331Be+8AVNmTJFq1ev1pIlSzQ207Zx+fLl+uyzz3T44Yfr+uuv15tvvilJ6t69e9629Ntss43mzJmjCRMmSJKWLVumurq6vPuz33776Z577pEkTZ48WZMmTZIkLV26VDU1NerRo4fmzZunf//7358vE99uU/kAAADQvMRr7pvj7m5m3lrrM7NzJJ0jSUOGDGmt1ZZk1KhRuvTSS3PSjjvuOE2dOlVHHnmkhg0bps6dO+vwww/Xr371K919990699xzddlll2mDDTbQ/fffr2OOOUYvvviidt55Z5mZfvvb32rTTTeVJJ144okaOnSoBg8erF133VVSCM6POuoorVq1Su6u6667TlJoEnT22Wfr97///ec30krhKb733nuvLrjgAq1cuVJdu3bVk08+qY022qjR/px//vk688wztd1222m77bbT7rvvLknaeeedteuuu2rbbbfVFltsoX322efzZc455xwddthh2myzzfT0008XzAcAAIDmWWjhknAhQrOcR2M31L4r6QB3n5NpdjPO3bcxs//LTI+K54sGdz83k56Tr5BtttnG33333fLsFMpq6tSp2m677ZIu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7r5W0j8k7V3KigjuAeRasUK66SapQwfpo4+SLg3SZPfdpauuSroUAFCNPpK0l5l1MzOTdLCkqaWsqF23uU+Nmhpp662l119PuiRIgy22kD79NExPnSptuWWy5QGa8/DD4Zg944ykSwIAJXH3l81stKTXJNVJel3SyKaXyo+a+zSorZXeeCPpUiAtosBeomkO2oajj5bOPDPpUqAtOfts+mdE1XH3y919W3cf6u6nufvqUtZDcI/kvfyydMMNSZcC+RDcA0ij225LugRA2dAsB8nba68wvvjiZMsBAADQxlFzD7Q3r74qnXiitG5d0iUB0N797GeN0z75RPrwQ64cAiUiuEfT3EMHtUiPE0+U7r9fmjmz+bz8uaKazZsnjRqVdClKN3269O67SZciWb/8pbR0aW7awIHSoEE0nQFKRHCPpt16q7TddtL48flfd5d+/vPwJ4vyMZMuuqh110ng3jIrV0o//nEYY/201rH3zW9K3/pWdr5afofmzy+u97IvfUnadtvctDVrpK22kh55pDxlK9bMmaEslTB/fv70f/6zMttH9ZoxQ3rvvaRL0eYQ3KNpL70Uxh98kP/1F16QrriCLugq4fe/b531RD1EENy3zA03SFdfXd03f69bJ61dm3QpKufjj3Pnf/GLZMrR0C67SLvtVtqy8+aFgOZ732vdMrXE0qXS4MHSeedVZntDhlRmO2h7ttpK2mabpEvR5hDco7D6eunuu8N0hwKHSl1dGNfWVqZMbcUjj0jXXZebVi1B1/TpYRyduDWlXCcAr7wiLV9ennWXS3SMR8d8cz76KHyHKmm//aTOnSu7zXxliH43CmkYlLeWaunacM6c5vMU+91asSJUoFTy9yM61h97rHLbjLz4YnaaCgigJAT3KCwemHTsWP7tLV4c/pwffLD822ptRx2V7fUnmv/f/83Ov/VWCLoeeCCb9vjj0hNPVK6MDU0t4sF3Z58tzZ7dutv93e+kL39ZOvnk4vIvWhQCnHJ47bX8z4h4/31pZINnh0Tfh0InunEzZkhf+EJostbaxo8P35MZMxq/9sILrb+9lnruOenb3246z3e/W55tF/PZlMvataG2vtjvdHO9g0WB7RVXhOPozjvXq3hFe++9bDOZSp+cSuH4iUTvwaBBlbuKAKQAwX174t6ympB4LVgl/jSjIOt3v2vZcq+8Up4gqiUe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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"def gen_features(X):\n    strain = []\n    #strain.append(X.mean())\n    strain.append(X.std())\n    strain.append(X.min())\n    strain.append(X.max())\n    #strain.append(X.kurtosis())\n    #strain.append(X.skew())\n    #strain.append(np.quantile(X,0.01))\n    #strain.append(np.quantile(X,0.05))\n    #strain.append(np.quantile(X,0.95))\n    #strain.append(np.quantile(X,0.99))\n    strain.append(np.abs(X).max())\n    #strain.append(np.abs(X).mean())\n    strain.append(np.abs(X).std())\n    return pd.Series(strain)","execution_count":91,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv(os.path.join(PATH,'train.csv'), iterator=True, chunksize=150_000, dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})\n\nX_train = pd.DataFrame()\ny_train = pd.Series()\nfor df in train:\n    ch = gen_features(df['acoustic_data'])\n    X_train = X_train.append(ch, ignore_index=True)\n    y_train = y_train.append(pd.Series(df['time_to_failure'].values[-1]))","execution_count":92,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#machine learning\nfrom catboost import CatBoostRegressor, Pool\n#data scaling\nfrom sklearn.preprocessing import StandardScaler\n#hyperparameter optimization\nfrom sklearn.model_selection import GridSearchCV\n#support vector machine model\nfrom sklearn.svm import NuSVR, SVR\n#kernel ridge model\nfrom sklearn.kernel_ridge import KernelRidge","execution_count":93,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_pool = Pool(X_train,y_train)\nm= CatBoostRegressor(iterations=10000,loss_function='MAE',boosting_type='Ordered')\nm.fit(X_train,y_train,silent = True)\nm.best_score_","execution_count":102,"outputs":[{"output_type":"execute_result","execution_count":102,"data":{"text/plain":"{'learn': {'MAE': 1.9978407397801612}}"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.svm import NuSVR, SVR\n\n\nscaler = StandardScaler()\nscaler.fit(X_train)\nX_train_scaled = scaler.transform(X_train)\n\n#parameters = [{'gamma': [0.001, 0.005, 0.01, 0.02, 0.05, 0.1],\n#               'C': [0.1, 0.2, 0.25, 0.5, 1, 1.5, 2]}]\n               #'nu': [0.75, 0.8, 0.85, 0.9, 0.95, 0.97]}]\n\n#reg1 = GridSearchCV(SVR(kernel='rbf', tol=0.01), parameters, cv=5, scoring='neg_mean_absolute_error')\n#reg1.fit(X_train_scaled, y_train.values.flatten())\n#y_pred1 = reg1.predict(X_train_scaled)\n\n#print(\"Best CV score: {:.4f}\".format(reg1.best_score_))\n#print(reg1.best_params_)","execution_count":95,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"m2 = SVR(kernel = 'rbf', tol = 0.01, C= 2, gamma=0.02)\nm2.fit(X_train_scaled, y_train.values.flatten()) ","execution_count":96,"outputs":[{"output_type":"execute_result","execution_count":96,"data":{"text/plain":"SVR(C=2, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma=0.02,\n  kernel='rbf', max_iter=-1, shrinking=True, tol=0.01, verbose=False)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"PATH1 = os.path.join(PATH,'test')","execution_count":97,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test = pd.DataFrame()\ny_test = pd.Series()\nfor file in os.listdir(os.path.join(PATH,'test')):\n    data = pd.read_csv(os.path.join(PATH1,file), dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})\n    data_fet = gen_features(data['acoustic_data'])\n    X_test = X_test.append(data_fet,ignore_index = True)\n    y_test = y_test.append(pd.Series(os.path.splitext(file)[0]))","execution_count":98,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test_scaled = scaler.transform(X_test)\ny_pred_svr = m2.predict(X_test_scaled)","execution_count":99,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sub = pd.DataFrame(columns=['seg_id','time_to_failure'])\nsub['seg_id'] = y_test\nsub['time_to_failure'] = y_pred_svr","execution_count":100,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"filename = 'submission1.csv'\nsub.to_csv(filename,index=False)\nprint('Saved file: ' + filename)","execution_count":101,"outputs":[{"output_type":"stream","text":"Saved file: submission1.csv\n","name":"stdout"}]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}