{"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":1,"outputs":[{"output_type":"stream","text":"['test', 'train.csv', 'sample_submission.csv']\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import matplotlib.pyplot as plt\nfrom tqdm import tqdm\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.svm import NuSVR\nfrom sklearn.metrics import mean_absolute_error","execution_count":2,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/train.csv', dtype={'acoustic_data': np.int16, 'time_to_failure': np.float64})\n                    \n                    #nrows=6000000)","execution_count":3,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# pandas doesn't show us all the decimals\npd.options.display.precision = 15","execution_count":4,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.shape","execution_count":5,"outputs":[{"output_type":"execute_result","execution_count":5,"data":{"text/plain":"(629145480, 2)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.info(memory_usage='deep')","execution_count":6,"outputs":[{"output_type":"stream","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 629145480 entries, 0 to 629145479\nData columns (total 2 columns):\nacoustic_data      int16\ntime_to_failure    float64\ndtypes: float64(1), int16(1)\nmemory usage: 5.9 GB\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.rename({\"acoustic_data\": \"signal\", \"time_to_failure\": \"time\"}, axis=\"columns\", inplace=True)","execution_count":7,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.head()","execution_count":8,"outputs":[{"output_type":"execute_result","execution_count":8,"data":{"text/plain":"   signal          time\n0      12  1.4690999832\n1       6  1.4690999821\n2       8  1.4690999810\n3       5  1.4690999799\n4       8  1.4690999788","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>signal</th>\n      <th>time</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>12</td>\n      <td>1.4690999832</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>6</td>\n      <td>1.4690999821</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>8</td>\n      <td>1.4690999810</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>5</td>\n      <td>1.4690999799</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>8</td>\n      <td>1.4690999788</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Create a training file with simple derived features\n\nrows = 150_000\nsegments = int(np.floor(train.shape[0] / rows))\n\nX_train = pd.DataFrame(index=range(segments), dtype=np.float64,\n                       columns=['ave', 'std', 'max', 'min','kurt','skew','median','var','sum','q1','q19','iqr','diff'\\\n                                'q2','Q1','q3','q4','Q2','q6','q7','Q3','q8','q81','q82','q9','q10','abs_mean',\\\n                                'hmean','gmean','time_to_failure'])\ny_train = pd.DataFrame(index=range(segments), dtype=np.float64,\n                       columns=['time_to_failure'])\n\nfor segment in tqdm(range(segments)):\n    seg = train.iloc[segment*rows:segment*rows+rows]\n    x = seg['signal'].values\n    y = seg['time'].values[-1]\n    \n    y_train.loc[segment, 'time_to_failure'] = y\n    \n    X_train.loc[segment, 'ave'] = np.mean(x)\n    X_train.loc[segment, 'std'] = np.std(x)\n    X_train.loc[segment, 'max'] = np.max(x)\n    X_train.loc[segment, 'min'] = np.min(x)\n    X_train.loc[segment, 'time_to_failure'] = y\n    X_train.loc[segment, 'skew'] = ((x-x.mean())/x.std() ** 3).mean()\n    X_train.loc[segment,'kurt'] =  ((x-x.mean())/x.std() ** 4).mean()\n    X_train.loc[segment, 'sum'] = np.sum(x)\n    X_train.loc[segment, 'median'] = np.median(x)\n    X_train.loc[segment, 'var'] = np.var(x)\n    #X_train.loc[segment, 'exp'] = np(x)\n    #X_train.loc[segment, 'log'] = ln(x)\n    X_train.loc[segment, 'q1'] = np.quantile(x,.1)\n    X_train.loc[segment, 'q19'] = np.quantile(x,.19)\n    X_train.loc[segment, 'q2'] = np.quantile(x,.2)\n    X_train.loc[segment, 'Q1'] = np.quantile(x,.25)\n    X_train.loc[segment, 'q3'] = np.quantile(x,.3)\n    X_train.loc[segment, 'q4'] = np.quantile(x,.4)\n    X_train.loc[segment, 'Q2'] = np.quantile(x,.5)\n    X_train.loc[segment, 'q6'] = np.quantile(x,.6)\n    X_train.loc[segment, 'q7'] = np.quantile(x,.7)\n    X_train.loc[segment, 'Q3'] = np.quantile(x,.75)\n    X_train.loc[segment, 'q8'] = np.quantile(x,.8)\n    X_train.loc[segment, 'q81'] = np.quantile(x,.81)\n    X_train.loc[segment, 'q82'] = np.quantile(x,.82)\n    X_train.loc[segment, 'q9'] = np.quantile(x,.9)\n    X_train.loc[segment, 'q10'] = np.quantile(x,1) #81,82\n    X_train.loc[segment, 'iqr'] = np.quantile(x,.75) - np.quantile (x,.25)\n    #X_train.loc[segment, 'diff'] = np.max(x) - np.min (x)\n   #X_train.loc[segment, 'hmean'] = stats.hmean(x)\n    #X_train.loc[segment, 'gmean'] = stats.gmean(x)\n    #X_train.loc[segment, 'abs_std'] = np.abs(x).std()\n    #X_train.loc[segment, 'abs_min'] = np.abs(x).min()    \n    #X_train.loc[segment, 'trend'] = add_trend_feature(x)\n    #X_train.loc[segment, 'abs_trend'] = add_trend_feature(x, abs_values=True)","execution_count":9,"outputs":[{"output_type":"stream","text":"100%|██████████| 4194/4194 [02:44<00:00, 24.36it/s]\n","name":"stderr"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train.head()","execution_count":10,"outputs":[{"output_type":"execute_result","execution_count":10,"data":{"text/plain":"                 ave                std    max ...   gmean  time_to_failure   q2\n0  4.884113333333334  5.101089126891323  104.0 ...     NaN     1.4307971859  2.0\n1  4.725766666666667  6.588801819164257  181.0 ...     NaN     1.3914988931  2.0\n2  4.906393333333333  6.967373808828945  140.0 ...     NaN     1.3531960947  2.0\n3  4.902240000000000  6.922282112791032  197.0 ...     NaN     1.3137978019  2.0\n4  4.908720000000000  7.301085852684289  145.0 ...     NaN     1.2743995091  2.0\n\n[5 rows x 30 columns]","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>ave</th>\n      <th>std</th>\n      <th>max</th>\n      <th>min</th>\n      <th>kurt</th>\n      <th>skew</th>\n      <th>median</th>\n      <th>var</th>\n      <th>sum</th>\n      <th>q1</th>\n      <th>q19</th>\n      <th>iqr</th>\n      <th>diffq2</th>\n      <th>Q1</th>\n      <th>q3</th>\n      <th>q4</th>\n      <th>Q2</th>\n      <th>q6</th>\n      <th>q7</th>\n      <th>Q3</th>\n      <th>q8</th>\n      <th>q81</th>\n      <th>q82</th>\n      <th>q9</th>\n      <th>q10</th>\n      <th>abs_mean</th>\n      <th>hmean</th>\n      <th>gmean</th>\n      <th>time_to_failure</th>\n      <th>q2</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>4.884113333333334</td>\n      <td>5.101089126891323</td>\n      <td>104.0</td>\n      <td>-98.0</td>\n      <td>-2.562764815176403e-19</td>\n      <td>-1.184237892933500e-18</td>\n      <td>5.0</td>\n      <td>26.021110280488884</td>\n      <td>732617.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>4.0</td>\n      <td>NaN</td>\n      <td>3.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>104.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.4307971859</td>\n      <td>2.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>4.725766666666667</td>\n      <td>6.588801819164257</td>\n      <td>181.0</td>\n      <td>-154.0</td>\n      <td>-1.279532035880493e-19</td>\n      <td>-7.005507285384737e-19</td>\n      <td>5.0</td>\n      <td>43.412309412222221</td>\n      <td>708865.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>5.0</td>\n      <td>NaN</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>181.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.3914988931</td>\n      <td>2.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>4.906393333333333</td>\n      <td>6.967373808828945</td>\n      <td>140.0</td>\n      <td>-106.0</td>\n      <td>1.391479524196863e-19</td>\n      <td>1.113183619357490e-18</td>\n      <td>5.0</td>\n      <td>48.544297791955557</td>\n      <td>735959.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>5.0</td>\n      <td>NaN</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>140.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.3531960947</td>\n      <td>2.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4.902240000000000</td>\n      <td>6.922282112791032</td>\n      <td>197.0</td>\n      <td>-199.0</td>\n      <td>8.465450562766819e-20</td>\n      <td>4.884981308350689e-19</td>\n      <td>5.0</td>\n      <td>47.917989649066669</td>\n      <td>735336.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>5.0</td>\n      <td>NaN</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>197.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.3137978019</td>\n      <td>2.0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>4.908720000000000</td>\n      <td>7.301085852684289</td>\n      <td>145.0</td>\n      <td>-126.0</td>\n      <td>9.737581111816477e-20</td>\n      <td>7.286763784956444e-19</td>\n      <td>5.0</td>\n      <td>53.305854628266673</td>\n      <td>736308.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>5.0</td>\n      <td>NaN</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>145.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.2743995091</td>\n      <td>2.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from scipy import stats\n\n#1\npearson_coef, p_value = stats.pearsonr(X_train['ave'], X_train['time_to_failure'])\nprint(\"ave: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#2\npearson_coef, p_value = stats.pearsonr(X_train['std'], X_train['time_to_failure'])\nprint(\"std: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#3\n\npearson_coef, p_value = stats.pearsonr(X_train['kurt'], X_train['time_to_failure'])\nprint(\"kurt: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#4\npearson_coef, p_value = stats.pearsonr(X_train['max'], X_train['time_to_failure'])\nprint(\"max: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#5\npearson_coef, p_value = stats.pearsonr(X_train['min'], X_train['time_to_failure'])\nprint(\"min: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#6\npearson_coef, p_value = stats.pearsonr(X_train['skew'], X_train['time_to_failure'])\nprint(\"skew: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#7\npearson_coef, p_value = stats.pearsonr(X_train['sum'], X_train['time_to_failure'])\nprint(\"sum: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#8\npearson_coef, p_value = stats.pearsonr(X_train['median'], X_train['time_to_failure'])\nprint(\"median: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#9\npearson_coef, p_value = stats.pearsonr(X_train['var'], X_train['time_to_failure'])\nprint(\"var: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#9\npearson_coef, p_value = stats.pearsonr(X_train['gmean'], X_train['time_to_failure'])\nprint(\"gmean: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n","execution_count":13,"outputs":[{"output_type":"stream","text":"ave: The Pearson Correlation Coefficient is -0.03131485200929432  with a P-value of P = 0.042572800232409745\nstd: The Pearson Correlation Coefficient is -0.217068826179775  with a P-value of P = 6.564514537505289e-46\nkurt: The Pearson Correlation Coefficient is -0.03137478045305264  with a P-value of P = 0.04217798229575217\nmax: The Pearson Correlation Coefficient is -0.1896826701588192  with a P-value of P = 2.8493795430103317e-35\nmin: The Pearson Correlation Coefficient is 0.19408103734575255  with a P-value of P = 7.074292833901952e-37\nskew: The Pearson Correlation Coefficient is -0.024760831194503785  with a P-value of P = 0.10886701222756817\nsum: The Pearson Correlation Coefficient is -0.03131485200929434  with a P-value of P = 0.042572800232409745\nmedian: The Pearson Correlation Coefficient is -0.0044450029567653  with a P-value of P = 0.7735159958650007\nvar: The Pearson Correlation Coefficient is -0.10517513939091518  with a P-value of P = 8.600345532359949e-12\ngmean: The Pearson Correlation Coefficient is nan  with a P-value of P = 1.0\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#10\npearson_coef, p_value = stats.pearsonr(X_train['q1'], X_train['time_to_failure'])\nprint(\"q1: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#11\npearson_coef, p_value = stats.pearsonr(X_train['q19'], X_train['time_to_failure'])\nprint(\"q19: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#12\npearson_coef, p_value = stats.pearsonr(X_train['q2'], X_train['time_to_failure'])\nprint(\"q2: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#13\npearson_coef, p_value = stats.pearsonr(X_train['Q1'], X_train['time_to_failure'])\nprint(\"Q1: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#14\npearson_coef, p_value = stats.pearsonr(X_train['q3'], X_train['time_to_failure'])\nprint(\"q3: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#15\npearson_coef, p_value = stats.pearsonr(X_train['q4'], X_train['time_to_failure'])\nprint(\"q4: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#16\npearson_coef, p_value = stats.pearsonr(X_train['Q2'], X_train['time_to_failure'])\nprint(\"Q2: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#17\npearson_coef, p_value = stats.pearsonr(X_train['q6'], X_train['time_to_failure'])\nprint(\"q6: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#18\npearson_coef, p_value = stats.pearsonr(X_train['q7'], X_train['time_to_failure'])\nprint(\"q7: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#19\npearson_coef, p_value = stats.pearsonr(X_train['Q3'], X_train['time_to_failure'])\nprint(\"Q3: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#20\npearson_coef, p_value = stats.pearsonr(X_train['q8'], X_train['time_to_failure'])\nprint(\"q8: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#21\npearson_coef, p_value = stats.pearsonr(X_train['q81'], X_train['time_to_failure'])\nprint(\"q81: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#22\npearson_coef, p_value = stats.pearsonr(X_train['q82'], X_train['time_to_failure'])\nprint(\"q82: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#23\npearson_coef, p_value = stats.pearsonr(X_train['q9'], X_train['time_to_failure'])\nprint(\"q9: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#24\npearson_coef, p_value = stats.pearsonr(X_train['q10'], X_train['time_to_failure'])\nprint(\"q10: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)\n\n#25\npearson_coef, p_value = stats.pearsonr(X_train['iqr'], X_train['time_to_failure'])\nprint(\"iqr: The Pearson Correlation Coefficient is\", pearson_coef, \" with a P-value of P =\", p_value)","execution_count":14,"outputs":[{"output_type":"stream","text":"q1: The Pearson Correlation Coefficient is 0.45472936704789013  with a P-value of P = 3.656259962449344e-213\nq19: The Pearson Correlation Coefficient is 0.46569147449333415  with a P-value of P = 7.937636347791565e-225\nq2: The Pearson Correlation Coefficient is 0.45261129991855875  with a P-value of P = 5.858858295270717e-211\nQ1: The Pearson Correlation Coefficient is 0.3588626305135062  with a P-value of P = 1.0978135212546844e-127\nq3: The Pearson Correlation Coefficient is 0.2834822256248399  with a P-value of P = 2.3870961725134474e-78\nq4: The Pearson Correlation Coefficient is 0.13836657148635756  with a P-value of P = 2.2280069420992113e-19\nQ2: The Pearson Correlation Coefficient is -0.0044450029567653  with a P-value of P = 0.7735159958650007\nq6: The Pearson Correlation Coefficient is -0.1695744241759776  with a P-value of P = 1.9889094673043306e-28\nq7: The Pearson Correlation Coefficient is -0.3338120112434793  with a P-value of P = 1.055846088709528e-109\nQ3: The Pearson Correlation Coefficient is -0.3878462847221366  with a P-value of P = 1.2839639295600133e-150\nq8: The Pearson Correlation Coefficient is -0.47710133131107896  with a P-value of P = 1.990053982483615e-237\nq81: The Pearson Correlation Coefficient is -0.4938696013644259  with a P-value of P = 7.766151193084308e-257\nq82: The Pearson Correlation Coefficient is -0.4745900019893077  with a P-value of P = 1.298817489822563e-234\nq9: The Pearson Correlation Coefficient is -0.46803310339510945  with a P-value of P = 2.251829320649944e-227\nq10: The Pearson Correlation Coefficient is -0.1896826701588192  with a P-value of P = 2.8493795430103317e-35\niqr: The Pearson Correlation Coefficient is -0.5069941406902863  with a P-value of P = 8.417843540889508e-273\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#X_train['std'].unique","execution_count":15,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#X_train['time_to_failure'].unique\nX_train['time_to_failure'].describe()","execution_count":16,"outputs":[{"output_type":"execute_result","execution_count":16,"data":{"text/plain":"count    4194.000000000000000\nmean        5.682698488340905\nstd         3.673144820066522\nmin         0.006397657167800\n25%         2.634173052750000\n50%         5.354846515149999\n75%         8.175924278749999\nmax        16.103195567000000\nName: time_to_failure, dtype: float64"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#X_train=X_train[X_train['ave']<=5.20555]","execution_count":17,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Creating a cloumn featuring binary values on the basis of accident risks\nX_train['outcome'] =[1 if x<=5.682698488340905 else 0 for x in X_train['time_to_failure']]","execution_count":18,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train.head(2)","execution_count":19,"outputs":[{"output_type":"execute_result","execution_count":19,"data":{"text/plain":"                 ave                std   ...      q2  outcome\n0  4.884113333333334  5.101089126891323   ...     2.0        1\n1  4.725766666666667  6.588801819164257   ...     2.0        1\n\n[2 rows x 31 columns]","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>ave</th>\n      <th>std</th>\n      <th>max</th>\n      <th>min</th>\n      <th>kurt</th>\n      <th>skew</th>\n      <th>median</th>\n      <th>var</th>\n      <th>sum</th>\n      <th>q1</th>\n      <th>q19</th>\n      <th>iqr</th>\n      <th>diffq2</th>\n      <th>Q1</th>\n      <th>q3</th>\n      <th>q4</th>\n      <th>Q2</th>\n      <th>q6</th>\n      <th>q7</th>\n      <th>Q3</th>\n      <th>q8</th>\n      <th>q81</th>\n      <th>q82</th>\n      <th>q9</th>\n      <th>q10</th>\n      <th>abs_mean</th>\n      <th>hmean</th>\n      <th>gmean</th>\n      <th>time_to_failure</th>\n      <th>q2</th>\n      <th>outcome</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>4.884113333333334</td>\n      <td>5.101089126891323</td>\n      <td>104.0</td>\n      <td>-98.0</td>\n      <td>-2.562764815176403e-19</td>\n      <td>-1.184237892933500e-18</td>\n      <td>5.0</td>\n      <td>26.021110280488884</td>\n      <td>732617.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>4.0</td>\n      <td>NaN</td>\n      <td>3.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>104.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.4307971859</td>\n      <td>2.0</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>4.725766666666667</td>\n      <td>6.588801819164257</td>\n      <td>181.0</td>\n      <td>-154.0</td>\n      <td>-1.279532035880493e-19</td>\n      <td>-7.005507285384737e-19</td>\n      <td>5.0</td>\n      <td>43.412309412222221</td>\n      <td>708865.0</td>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>5.0</td>\n      <td>NaN</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>181.0</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>NaN</td>\n      <td>1.3914988931</td>\n      <td>2.0</td>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#x_train=X_train [['diff','ave', 'std', 'max', 'min','kurt','skew','median','var','sum','q1','q19','abs_mean',\\\n                               # 'q2','Q1','q3','q4','Q2','q6','q7','Q3','q8','q81','q82','q9','q10','iqr']]#=2.065\nx_train=X_train [['q1','q19','q2','Q1','q3','q4','Q2','q6','q7','Q3','q8','q81','q82','q9','q10','iqr']]#=2.062\n#x_train=X_train [['q1','q19','q2','q8','q81','q82','q9','min','max','std','iqr']]#=2.075\n#x_train=X_train [['q1','q19','q2','q8','q81','q82','q9','iqr']] # = 2.075\nx_train.head()","execution_count":20,"outputs":[{"output_type":"execute_result","execution_count":20,"data":{"text/plain":"    q1  q19   q2   Q1   q3   q4   Q2 ...    Q3   q8  q81  q82    q9    q10  iqr\n0  0.0  2.0  2.0  3.0  3.0  4.0  5.0 ...   7.0  8.0  8.0  8.0  10.0  104.0  4.0\n1  0.0  2.0  2.0  2.0  3.0  4.0  5.0 ...   7.0  8.0  8.0  8.0  10.0  181.0  5.0\n2  0.0  2.0  2.0  2.0  3.0  4.0  5.0 ...   7.0  8.0  8.0  8.0  10.0  140.0  5.0\n3  0.0  2.0  2.0  2.0  3.0  4.0  5.0 ...   7.0  8.0  8.0  8.0  10.0  197.0  5.0\n4  0.0  2.0  2.0  2.0  3.0  4.0  5.0 ...   7.0  8.0  8.0  8.0  10.0  145.0  5.0\n\n[5 rows x 16 columns]","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>q1</th>\n      <th>q19</th>\n      <th>q2</th>\n      <th>Q1</th>\n      <th>q3</th>\n      <th>q4</th>\n      <th>Q2</th>\n      <th>q6</th>\n      <th>q7</th>\n      <th>Q3</th>\n      <th>q8</th>\n      <th>q81</th>\n      <th>q82</th>\n      <th>q9</th>\n      <th>q10</th>\n      <th>iqr</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>104.0</td>\n      <td>4.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>181.0</td>\n      <td>5.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>140.0</td>\n      <td>5.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>197.0</td>\n      <td>5.0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>10.0</td>\n      <td>145.0</td>\n      <td>5.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"x_train.isnull().sum()","execution_count":21,"outputs":[{"output_type":"execute_result","execution_count":21,"data":{"text/plain":"q1     0\nq19    0\nq2     0\nQ1     0\nq3     0\nq4     0\nQ2     0\nq6     0\nq7     0\nQ3     0\nq8     0\nq81    0\nq82    0\nq9     0\nq10    0\niqr    0\ndtype: int64"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"x_train.shape","execution_count":22,"outputs":[{"output_type":"execute_result","execution_count":22,"data":{"text/plain":"(4194, 16)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#y_train.head()\ny_train=X_train[['outcome']]\ny_train.head()","execution_count":23,"outputs":[{"output_type":"execute_result","execution_count":23,"data":{"text/plain":"   outcome\n0        1\n1        1\n2        1\n3        1\n4        1","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>outcome</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_train.shape","execution_count":24,"outputs":[{"output_type":"execute_result","execution_count":24,"data":{"text/plain":"(4194, 1)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"scaler = StandardScaler()\nscaler.fit(x_train)\nX_train_scaled = scaler.transform(x_train)","execution_count":25,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"svm = NuSVR()\nsvm.fit(X_train_scaled, y_train.values.flatten())\ny_pred = svm.predict(X_train_scaled)","execution_count":26,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.figure(figsize=(6, 6))\nplt.scatter(y_train.values.flatten(), y_pred)\nplt.xlim(0, 20)\nplt.ylim(0, 20)\nplt.xlabel('actual', fontsize=12)\nplt.ylabel('predicted', fontsize=12)\nplt.plot([(0, 0), (20, 20)], [(0, 0), (20, 20)])\nplt.show()\n","execution_count":27,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x432 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"score = mean_absolute_error(y_train.values.flatten(), y_pred)\nprint(f'Score: {score:0.3f}')","execution_count":28,"outputs":[{"output_type":"stream","text":"Score: 0.208\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.read_csv('../input/sample_submission.csv', index_col='seg_id')","execution_count":29,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.head()","execution_count":30,"outputs":[{"output_type":"execute_result","execution_count":30,"data":{"text/plain":"            time_to_failure\nseg_id                     \nseg_00030f                0\nseg_0012b5                0\nseg_00184e                0\nseg_003339                0\nseg_0042cc                0","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>time_to_failure</th>\n    </tr>\n    <tr>\n      <th>seg_id</th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>seg_00030f</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>seg_0012b5</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>seg_00184e</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>seg_003339</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>seg_0042cc</th>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"#X_train=X_train.drop(['time_to_failure'], axis=1)","execution_count":31,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test = pd.DataFrame(columns=x_train.columns, dtype=np.float64, index=submission.index)","execution_count":32,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.shape","execution_count":33,"outputs":[{"output_type":"execute_result","execution_count":33,"data":{"text/plain":"(2624, 16)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"for seg_id in X_test.index:\n    seg = pd.read_csv('../input/test/' + seg_id + '.csv')\n    \n    x = seg['acoustic_data'].values\n    \n    #X_test.loc[seg_id, 'ave'] = x.mean()\n    #X_test.loc[seg_id, 'std'] = np.std(x)\n    #X_test.loc[seg_id, 'max'] = np.max(x)\n    #X_test.loc[seg_id, 'min'] = np.min(x)\n    #X_test.loc[seg_id, 'kurt'] = ((x-x.mean())/x.std() ** 4).mean()\n    #X_test.loc[seg_id, 'skew'] = ((x-x.mean())/x.std() ** 3).mean()\n    #X_test.loc[seg_id, 'sum'] = x.sum()\n    X_test.loc[seg_id, 'q1'] = np.quantile(x,.1)\n    X_test.loc[seg_id, 'q19'] = np.quantile(x,.19)\n    X_test.loc[seg_id, 'q2'] = np.quantile(x,.2)\n    X_test.loc[seg_id, 'Q1'] = np.quantile(x,.25)\n    X_test.loc[seg_id, 'q3'] = np.quantile(x,.3)\n    X_test.loc[seg_id, 'q4'] = np.quantile(x,.4)\n    X_test.loc[seg_id, 'Q2'] = np.quantile(x,.5)\n    X_test.loc[seg_id, 'q6'] = np.quantile(x,.6)\n    X_test.loc[seg_id, 'q7'] = np.quantile(x,.7)\n    X_test.loc[seg_id, 'Q3'] = np.quantile(x,.75)\n    X_test.loc[seg_id, 'q8'] = np.quantile(x,.8)\n    X_test.loc[seg_id, 'q81'] = np.quantile(x,.81)\n    X_test.loc[seg_id, 'q82'] = np.quantile(x,.82)\n    X_test.loc[seg_id, 'q9'] = np.quantile(x,.9)\n    X_test.loc[seg_id, 'q10'] = np.quantile(x,1)\n    X_test.loc[seg_id, 'iqr'] = np.quantile(x,.75) - np.quantile (x,.25)","execution_count":34,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.shape","execution_count":35,"outputs":[{"output_type":"execute_result","execution_count":35,"data":{"text/plain":"(2624, 16)"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.head()","execution_count":36,"outputs":[{"output_type":"execute_result","execution_count":36,"data":{"text/plain":"             q1  q19   q2   Q1   q3   q4 ...    q8  q81  q82   q9    q10  iqr\nseg_id                                   ...                                 \nseg_00030f  0.0  1.0  1.0  2.0  3.0  4.0 ...   7.0  8.0  8.0  9.0  115.0  5.0\nseg_0012b5 -1.0  1.0  1.0  2.0  2.0  3.0 ...   7.0  7.0  7.0  9.0  152.0  5.0\nseg_00184e  0.0  2.0  2.0  2.0  3.0  4.0 ...   7.0  8.0  8.0  9.0  248.0  5.0\nseg_003339  1.0  2.0  2.0  3.0  3.0  4.0 ...   7.0  7.0  7.0  8.0   85.0  4.0\nseg_0042cc  0.0  1.0  1.0  2.0  2.0  3.0 ...   7.0  7.0  7.0  9.0  177.0  4.0\n\n[5 rows x 16 columns]","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>q1</th>\n      <th>q19</th>\n      <th>q2</th>\n      <th>Q1</th>\n      <th>q3</th>\n      <th>q4</th>\n      <th>Q2</th>\n      <th>q6</th>\n      <th>q7</th>\n      <th>Q3</th>\n      <th>q8</th>\n      <th>q81</th>\n      <th>q82</th>\n      <th>q9</th>\n      <th>q10</th>\n      <th>iqr</th>\n    </tr>\n    <tr>\n      <th>seg_id</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>seg_00030f</th>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>9.0</td>\n      <td>115.0</td>\n      <td>5.0</td>\n    </tr>\n    <tr>\n      <th>seg_0012b5</th>\n      <td>-1.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>9.0</td>\n      <td>152.0</td>\n      <td>5.0</td>\n    </tr>\n    <tr>\n      <th>seg_00184e</th>\n      <td>0.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>8.0</td>\n      <td>9.0</td>\n      <td>248.0</td>\n      <td>5.0</td>\n    </tr>\n    <tr>\n      <th>seg_003339</th>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>8.0</td>\n      <td>85.0</td>\n      <td>4.0</td>\n    </tr>\n    <tr>\n      <th>seg_0042cc</th>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>2.0</td>\n      <td>3.0</td>\n      <td>4.0</td>\n      <td>5.0</td>\n      <td>6.0</td>\n      <td>6.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>7.0</td>\n      <td>9.0</td>\n      <td>177.0</td>\n      <td>4.0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.isnull().sum()","execution_count":37,"outputs":[{"output_type":"execute_result","execution_count":37,"data":{"text/plain":"q1     0\nq19    0\nq2     0\nQ1     0\nq3     0\nq4     0\nQ2     0\nq6     0\nq7     0\nQ3     0\nq8     0\nq81    0\nq82    0\nq9     0\nq10    0\niqr    0\ndtype: int64"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test_scaled = scaler.transform(X_test)\nsubmission['time_to_failure'] = svm.predict(X_test_scaled)\nsubmission.to_csv('submission.csv')","execution_count":38,"outputs":[]},{"metadata":{"trusted":true},"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.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}