{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport tensorflow as tf\nimport keras \nfrom keras.models import Sequential\nfrom keras import layers\nfrom tensorflow.keras.utils import to_categorical\nfrom keras import models\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn import preprocessing\nfrom tensorflow.keras import regularizers","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-08-11T15:49:53.186232Z","iopub.execute_input":"2022-08-11T15:49:53.187190Z","iopub.status.idle":"2022-08-11T15:49:59.891302Z","shell.execute_reply.started":"2022-08-11T15:49:53.187066Z","shell.execute_reply":"2022-08-11T15:49:59.890066Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"EDA done in my other [notebook](https://www.kaggle.com/code/robertturro/tps-august-eda-feature-selection)","metadata":{}},{"cell_type":"code","source":"train = pd.read_csv(\"../input/tps-august-eda-feature-selection/train.csv\")\ntest = pd.read_csv(\"../input/tps-august-eda-feature-selection/test.csv\")\nsample_sub = pd.read_csv(\"../input/tabular-playground-series-aug-2022/sample_submission.csv\")","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:50:56.725450Z","iopub.execute_input":"2022-08-11T15:50:56.726383Z","iopub.status.idle":"2022-08-11T15:50:56.966051Z","shell.execute_reply.started":"2022-08-11T15:50:56.726324Z","shell.execute_reply":"2022-08-11T15:50:56.965061Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = train.set_index(\"id\")\ntest = test.set_index(\"id\")\n\ny_train = train['failure']\ntrain = train.drop('failure',axis=1)","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:52:50.932417Z","iopub.execute_input":"2022-08-11T15:52:50.932841Z","iopub.status.idle":"2022-08-11T15:52:50.962740Z","shell.execute_reply.started":"2022-08-11T15:52:50.932808Z","shell.execute_reply":"2022-08-11T15:52:50.961608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def data_preprocessing(df):\n    df = pd.get_dummies(df)\n    cols = df.columns\n    for i in range(len(cols)):\n        if df[cols[i]].isna().sum() > 0:\n            df[cols[i]]. fillna(value=df[cols[i]]. mean(), inplace=True)\n            \n    return df","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:56:54.142874Z","iopub.execute_input":"2022-08-11T15:56:54.143262Z","iopub.status.idle":"2022-08-11T15:56:54.149941Z","shell.execute_reply.started":"2022-08-11T15:56:54.143232Z","shell.execute_reply":"2022-08-11T15:56:54.148785Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = data_preprocessing(test)\ntrain = data_preprocessing(train)","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:57:08.347249Z","iopub.execute_input":"2022-08-11T15:57:08.347678Z","iopub.status.idle":"2022-08-11T15:57:08.393232Z","shell.execute_reply.started":"2022-08-11T15:57:08.347645Z","shell.execute_reply":"2022-08-11T15:57:08.392348Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:57:10.866932Z","iopub.execute_input":"2022-08-11T15:57:10.867417Z","iopub.status.idle":"2022-08-11T15:57:10.893694Z","shell.execute_reply.started":"2022-08-11T15:57:10.867373Z","shell.execute_reply":"2022-08-11T15:57:10.892868Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_cols = train.columns\ntest_cols = test.columns\n\ntrain_norm = preprocessing.normalize(train)\ntest_norm = preprocessing.normalize(test)\n\nscaled_train = pd.DataFrame(train_norm, columns=train_cols)\nscaled_test = pd.DataFrame(test_norm, columns=test_cols)","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:57:14.152132Z","iopub.execute_input":"2022-08-11T15:57:14.152554Z","iopub.status.idle":"2022-08-11T15:57:14.184850Z","shell.execute_reply.started":"2022-08-11T15:57:14.152519Z","shell.execute_reply":"2022-08-11T15:57:14.183795Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"scaled_train.head()","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:57:33.883806Z","iopub.execute_input":"2022-08-11T15:57:33.884210Z","iopub.status.idle":"2022-08-11T15:57:33.912322Z","shell.execute_reply.started":"2022-08-11T15:57:33.884177Z","shell.execute_reply":"2022-08-11T15:57:33.911109Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.shape","metadata":{"execution":{"iopub.status.busy":"2022-08-11T15:58:07.503169Z","iopub.execute_input":"2022-08-11T15:58:07.503570Z","iopub.status.idle":"2022-08-11T15:58:07.510752Z","shell.execute_reply.started":"2022-08-11T15:58:07.503530Z","shell.execute_reply":"2022-08-11T15:58:07.509627Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = models.Sequential()\nmodel.add(layers.Dense(750, kernel_regularizer=regularizers.L1L2(l1=1e-5, l2=1e-4), activation=\"relu\",input_shape=(27,)))\nmodel.add(layers.BatchNormalization())\nmodel.add(layers.Dense(512, kernel_regularizer=regularizers.L1L2(l1=1e-5, l2=1e-4), activation=\"relu\"))\nmodel.add(layers.Dropout(0.1))\nmodel.add(layers.Dense(200,kernel_regularizer=regularizers.L1L2(l1=1e-5, l2=1e-4), activation=\"relu\"))\nmodel.add(layers.Dropout(0.2))\nmodel.add(layers.Dense(60,kernel_regularizer=regularizers.L1L2(l1=1e-5, l2=1e-4), activation=\"relu\"))\nmodel.add(layers.Dropout(0.3))\nmodel.add(layers.Dense(16,kernel_regularizer=regularizers.L1L2(l1=1e-5, l2=1e-4), activation=\"relu\"))\nmodel.add(layers.Dense(1,activation='sigmoid'))\n\nmodel.summary()","metadata":{"execution":{"iopub.status.busy":"2022-08-11T16:01:55.033457Z","iopub.execute_input":"2022-08-11T16:01:55.034369Z","iopub.status.idle":"2022-08-11T16:01:55.123806Z","shell.execute_reply.started":"2022-08-11T16:01:55.034312Z","shell.execute_reply":"2022-08-11T16:01:55.122782Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['AUC'])","metadata":{"execution":{"iopub.status.busy":"2022-08-11T16:01:57.774512Z","iopub.execute_input":"2022-08-11T16:01:57.775176Z","iopub.status.idle":"2022-08-11T16:01:57.785751Z","shell.execute_reply.started":"2022-08-11T16:01:57.775141Z","shell.execute_reply":"2022-08-11T16:01:57.784540Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=5)\nmodel.fit(train, y_train, validation_split=0.3, shuffle=True, epochs=200,batch_size=2000,callbacks=[callback])","metadata":{"execution":{"iopub.status.busy":"2022-08-11T16:01:59.214748Z","iopub.execute_input":"2022-08-11T16:01:59.217548Z","iopub.status.idle":"2022-08-11T16:02:54.517838Z","shell.execute_reply.started":"2022-08-11T16:01:59.217496Z","shell.execute_reply":"2022-08-11T16:02:54.516202Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds = model.predict(test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_sub['failure'] = preds","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_sub.to_csv('submission.csv', index=False)","metadata":{},"execution_count":null,"outputs":[]}]}