{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom sklearn.preprocessing import LabelEncoder, StandardScaler\nfrom sklearn.metrics import roc_auc_score, log_loss\nimport matplotlib.pyplot as plt\n%matplotlib inline","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"ls ../input","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train = pd.read_csv('../input/cat-in-the-dat-ii/train.csv')\ndf_train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_test = pd.read_csv('../input/cat-in-the-dat-ii/test.csv')\ndf_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_test.day.unique()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_test.ord_3.unique()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for c in df_train.columns[1:-1]:\n    print(c)\n    le = LabelEncoder()\n    le.fit(list(df_train.loc[~df_train[c].isnull(),c])+list(df_test.loc[~df_test[c].isnull(),c]))\n    df_train.loc[~df_train[c].isnull(),c] = le.transform(df_train.loc[~df_train[c].isnull(),c])\n    df_test.loc[~df_test[c].isnull(),c] = le.transform(df_test.loc[~df_test[c].isnull(),c])\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train = df_train.set_index('id')\ndf_test = df_test.set_index('id')\ny_train = df_train.target\ndel df_train['target']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import category_encoders as ce\ncat_feat_to_encode = df_train.columns[:].tolist()\nsmoothing=0.20\n\noof = pd.DataFrame([])\nfrom sklearn.model_selection import StratifiedKFold\nfor tr_idx, oof_idx in StratifiedKFold(n_splits=5, random_state= 1032, shuffle=True).split(df_train, y_train):\n    ce_target_encoder = ce.TargetEncoder(cols = cat_feat_to_encode, smoothing=smoothing)\n    ce_target_encoder.fit(df_train.iloc[tr_idx, :], y_train.iloc[tr_idx])\n    oof = oof.append(ce_target_encoder.transform(df_train.iloc[oof_idx, :]), ignore_index=False)\nce_target_encoder = ce.TargetEncoder(cols = cat_feat_to_encode, smoothing=smoothing)\nce_target_encoder.fit(df_train, y_train)\nnew_train = oof.sort_index()\nnew_test = ce_target_encoder.transform(df_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i,c in enumerate(new_train.columns):\n    print(c, roc_auc_score(y_train,new_train[c]))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"new_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"new_test.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"new_train['target'] = y_train\nnew_test['target'] = -1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"alldata = pd.concat([df_train,df_test])\nnewalldata = pd.concat([new_train,new_test])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for c in alldata.columns:\n    newalldata.loc[alldata[c].isnull(),c] = np.nan ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"newalldata.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for c in newalldata.columns[:-1]:\n    newalldata.loc[~alldata[c].isnull(),c] -= newalldata.loc[~alldata[c].isnull(),c].mean()\n    newalldata.loc[~alldata[c].isnull(),c] /= newalldata.loc[~alldata[c].isnull(),c].std()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"newalldata.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"def Output(p):\n    return 1.0/(1.0+np.exp(-p))\n\ndef GPTEI(data):\n    return (0.006038*np.tanh(np.real(((np.cosh((np.cosh((((np.cosh((data[\"day\"]))) - (np.tanh((complex(0,1)*np.conjugate(data[\"day\"])))))))))) + (((complex(8.0)) - (complex(0,1)*np.conjugate(np.tanh((np.tanh((complex(0,1)*np.conjugate(((np.cosh((((np.tanh((complex(11.26747322082519531)))) - (np.tanh((data[\"ord_3\"]))))))) / 2.0))))))))))))))\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"x_tr = pd.DataFrame()\nx_tr['isTrain'] = np.ones(df_train.shape[0])\nx_te = pd.DataFrame()\nx_te['isTrain'] = np.zeros(df_test.shape[0])\nx_al = pd.concat([x_tr,x_te])\nx_al['gp'] = GPTEI(newalldata.astype(complex).fillna(complex(0,1)))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"colors = ['g','b']\nplt.figure(figsize=(15,15))\nplt.scatter(range(x_al.shape[0]),x_al.gp.values,s=1,color=[colors[int(c)] for c in x_al.isTrain.values])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.hist(x_al[:df_train.shape[0]].gp,bins=20,alpha=.5)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.hist(x_al[-df_test.shape[0]:].gp,bins=20,alpha=.5)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.7.3"}},"nbformat":4,"nbformat_minor":1}