{"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 packages\nimport numpy as np\nimport pandas as pd","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-08-14T17:47:39.340623Z","iopub.execute_input":"2022-08-14T17:47:39.341373Z","iopub.status.idle":"2022-08-14T17:47:39.346471Z","shell.execute_reply.started":"2022-08-14T17:47:39.341331Z","shell.execute_reply":"2022-08-14T17:47:39.345420Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import lightgbm as lgb","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:42:22.567627Z","iopub.execute_input":"2022-08-14T17:42:22.568383Z","iopub.status.idle":"2022-08-14T17:42:25.311986Z","shell.execute_reply.started":"2022-08-14T17:42:22.568340Z","shell.execute_reply":"2022-08-14T17:42:25.310949Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch\nmodel=torch.load('../input/lgbm-amex-model/model.pt')","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:52:19.938493Z","iopub.execute_input":"2022-08-14T17:52:19.938977Z","iopub.status.idle":"2022-08-14T17:52:23.272919Z","shell.execute_reply.started":"2022-08-14T17:52:19.938931Z","shell.execute_reply":"2022-08-14T17:52:23.271840Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Make a list of columns that we want to load for test data. Remove one-hot encoded names and target (since these columns not in the test data)\ncolumns_to_keep=['P_2',\n 'D_39',\n 'R_1',\n 'D_41',\n 'B_3',\n 'D_44',\n 'B_5',\n 'R_2',\n 'B_6',\n 'B_8',\n 'B_9',\n 'B_10',\n 'S_5',\n 'S_6',\n 'S_8',\n 'D_55',\n 'R_5',\n 'D_60',\n 'D_65',\n 'B_16',\n 'B_18',\n 'B_19',\n 'B_20',\n 'D_68',\n 'R_6',\n 'S_13',\n 'B_21',\n 'D_69',\n 'D_70',\n 'D_71',\n 'D_72',\n 'P_4',\n 'B_24',\n 'R_7',\n 'B_26',\n 'D_78',\n 'D_79',\n 'R_8',\n 'S_16',\n 'R_10',\n 'D_81',\n 'D_83',\n 'R_14',\n 'D_84',\n 'R_16',\n 'B_30',\n 'R_20',\n 'D_92',\n 'S_23',\n 'S_26',\n 'D_102',\n 'D_107',\n 'R_27',\n 'B_38',\n 'D_112',\n 'B_40',\n 'D_114',\n 'D_115',\n 'D_117',\n 'D_120',\n 'D_125',\n 'D_126',\n 'D_127',\n 'D_128',\n 'D_129',\n 'B_41',\n 'D_130',\n 'D_131',\n 'D_63_CL',\n 'D_63_CO',\n 'D_63_CR',\n 'D_64_O',\n 'D_64_R',\n 'D_64_U']\ncolumns_to_load=list(columns_to_keep)\ncolumns_to_load=columns_to_load+['D_63','D_64','customer_ID','S_2']\ncolumns_to_load.remove('D_63_CO')\ncolumns_to_load.remove('D_63_CR')\ncolumns_to_load.remove('D_63_CL')\ncolumns_to_load.remove('D_64_O')\ncolumns_to_load.remove('D_64_R')\ncolumns_to_load.remove('D_64_U')","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:53:32.213581Z","iopub.execute_input":"2022-08-14T17:53:32.213980Z","iopub.status.idle":"2022-08-14T17:53:32.224107Z","shell.execute_reply.started":"2022-08-14T17:53:32.213947Z","shell.execute_reply":"2022-08-14T17:53:32.222990Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Read in the test_data\ntest_data = pd.read_parquet('../input/amex-parquet/test_data.parquet',columns=columns_to_load)","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:47:54.543323Z","iopub.execute_input":"2022-08-14T17:47:54.544298Z","iopub.status.idle":"2022-08-14T17:48:30.387811Z","shell.execute_reply.started":"2022-08-14T17:47:54.544250Z","shell.execute_reply":"2022-08-14T17:48:30.386566Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# There are multiple transactions. Lets take only the latest transaction from each customer.\ntest=test_data.groupby('customer_ID').tail(1)\ntest=test.set_index(['customer_ID'])\n\n#Drop date column since it is no longer relevant\ntest.drop(['S_2'],axis=1,inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:52:36.204339Z","iopub.execute_input":"2022-08-14T17:52:36.204790Z","iopub.status.idle":"2022-08-14T17:52:37.643040Z","shell.execute_reply.started":"2022-08-14T17:52:36.204748Z","shell.execute_reply":"2022-08-14T17:52:37.641869Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Perform one-hot encoding for D_63 and D_64\n#Drop columns D_63 and D_64 subsequently\ntest_D63 = pd.get_dummies(test[['D_63']])\ntest = pd.concat([test, test_D63], axis=1)\ntest = test.drop(['D_63'], axis=1)\n\ntest_D64 = pd.get_dummies(test[['D_64']])\ntest = pd.concat([test, test_D64], axis=1)\ntest = test.drop(['D_64'], axis=1)","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:52:37.645315Z","iopub.execute_input":"2022-08-14T17:52:37.646101Z","iopub.status.idle":"2022-08-14T17:52:38.815832Z","shell.execute_reply.started":"2022-08-14T17:52:37.646040Z","shell.execute_reply":"2022-08-14T17:52:38.814752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Keep columns that we want.\ntest_final=test[columns_to_keep]","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:53:39.110774Z","iopub.execute_input":"2022-08-14T17:53:39.111390Z","iopub.status.idle":"2022-08-14T17:53:39.200249Z","shell.execute_reply.started":"2022-08-14T17:53:39.111337Z","shell.execute_reply":"2022-08-14T17:53:39.199232Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Predict probabilities of default\ny_test_predict=model.predict(test_final)\n# #Retrieve the probability of default\n# y_predict_final=y_test_predict[:,1]","metadata":{"execution":{"iopub.status.busy":"2022-08-14T17:53:53.246243Z","iopub.execute_input":"2022-08-14T17:53:53.246635Z","iopub.status.idle":"2022-08-14T18:01:51.530648Z","shell.execute_reply.started":"2022-08-14T17:53:53.246604Z","shell.execute_reply":"2022-08-14T18:01:51.529517Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_test_predict","metadata":{"execution":{"iopub.status.busy":"2022-08-14T18:01:51.532723Z","iopub.execute_input":"2022-08-14T18:01:51.533137Z","iopub.status.idle":"2022-08-14T18:01:51.543087Z","shell.execute_reply.started":"2022-08-14T18:01:51.533097Z","shell.execute_reply":"2022-08-14T18:01:51.541949Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Merge the prediction and customer_ID into submission dataframe\nsubmission = pd.DataFrame({\"customer_ID\":test_final.index,\"prediction\":y_test_predict})\n\nsubmission.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2022-08-14T18:02:35.691635Z","iopub.execute_input":"2022-08-14T18:02:35.692235Z","iopub.status.idle":"2022-08-14T18:02:39.191524Z","shell.execute_reply.started":"2022-08-14T18:02:35.692178Z","shell.execute_reply":"2022-08-14T18:02:39.190498Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.display import FileLink\nFileLink('submission.csv')","metadata":{"execution":{"iopub.status.busy":"2022-08-14T18:02:40.412118Z","iopub.execute_input":"2022-08-14T18:02:40.412850Z","iopub.status.idle":"2022-08-14T18:02:40.419315Z","shell.execute_reply.started":"2022-08-14T18:02:40.412812Z","shell.execute_reply":"2022-08-14T18:02:40.418311Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}