{"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":"markdown","source":"### Thanks for the insights [Martin Kovacevic Buvinic](https://www.kaggle.com/ragnar123)\n","metadata":{"papermill":{"duration":0.00454,"end_time":"2022-07-31T01:33:17.378458","exception":false,"start_time":"2022-07-31T01:33:17.373918","status":"completed"},"tags":[]}},{"cell_type":"code","source":"import numpy as np \nimport pandas as pd \nimport glob\nfrom scipy.stats import rankdata","metadata":{"_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","papermill":{"duration":0.919584,"end_time":"2022-07-31T01:33:18.30172","exception":false,"start_time":"2022-07-31T01:33:17.382136","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:28:49.811896Z","iopub.execute_input":"2022-08-01T08:28:49.812337Z","iopub.status.idle":"2022-08-01T08:28:50.555687Z","shell.execute_reply.started":"2022-08-01T08:28:49.812249Z","shell.execute_reply":"2022-08-01T08:28:50.554496Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"paths = [x for x in glob.glob('../input/*/*.csv') if 'amex-default-prediction' not in x]\ndfs = [pd.read_csv(x) for x in paths]\ndfs = [x.sort_values(by='customer_ID') for x in dfs]","metadata":{"papermill":{"duration":12.664362,"end_time":"2022-07-31T01:33:30.969768","exception":false,"start_time":"2022-07-31T01:33:18.305406","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:28:50.557655Z","iopub.execute_input":"2022-08-01T08:28:50.557971Z","iopub.status.idle":"2022-08-01T08:29:09.107417Z","shell.execute_reply.started":"2022-08-01T08:28:50.557942Z","shell.execute_reply":"2022-08-01T08:29:09.106507Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"paths = [x for x in glob.glob('../input/*/*.csv') if 'amex-default-prediction' not in x]\npaths","metadata":{"papermill":{"duration":0.021087,"end_time":"2022-07-31T01:33:30.994578","exception":false,"start_time":"2022-07-31T01:33:30.973491","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:09.109062Z","iopub.execute_input":"2022-08-01T08:29:09.110256Z","iopub.status.idle":"2022-08-01T08:29:09.123182Z","shell.execute_reply.started":"2022-08-01T08:29:09.110211Z","shell.execute_reply":"2022-08-01T08:29:09.12218Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for df in dfs:\n    df['prediction'] = np.clip(df['prediction'], 0, 1)","metadata":{"papermill":{"duration":0.070554,"end_time":"2022-07-31T01:33:31.068942","exception":false,"start_time":"2022-07-31T01:33:30.998388","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:09.125963Z","iopub.execute_input":"2022-08-01T08:29:09.126993Z","iopub.status.idle":"2022-08-01T08:29:09.2033Z","shell.execute_reply.started":"2022-08-01T08:29:09.126955Z","shell.execute_reply":"2022-08-01T08:29:09.20239Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# submit = pd.read_csv('../input/amex-default-prediction/sample_submission.csv')\n# submit['prediction'] = 0\n# submit['prediction_'] = 0\n\n\n# for df in dfs:\n#     submit['prediction'] += df['prediction']\n#     submit['prediction_'] += df['prediction']\n    \n# submit['prediction'] /= 4\n# submit['prediction_'] /= len(paths)\n# submit.head()","metadata":{"execution":{"iopub.status.busy":"2022-08-01T08:29:09.20476Z","iopub.execute_input":"2022-08-01T08:29:09.2051Z","iopub.status.idle":"2022-08-01T08:29:09.209744Z","shell.execute_reply.started":"2022-08-01T08:29:09.205068Z","shell.execute_reply":"2022-08-01T08:29:09.208495Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# submit = pd.read_csv('../input/amex-default-prediction/sample_submission.csv')\n# submit['prediction'] = 0\n\n# for df in dfs:\n#     submit['prediction'] += df['prediction']\n\n# submit['prediction_'] = submit['prediction']/len(paths)\n# submit['prediction'] /= 4\n\n# submit[['customer_ID', 'prediction_']].to_csv('mean_submission_.csv', index=None)\n# submit[['customer_ID', 'prediction']].to_csv('mean_submission.csv', index=None)\n","metadata":{"papermill":{"duration":7.256032,"end_time":"2022-07-31T01:33:38.329185","exception":false,"start_time":"2022-07-31T01:33:31.073153","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:09.210943Z","iopub.execute_input":"2022-08-01T08:29:09.211642Z","iopub.status.idle":"2022-08-01T08:29:17.177905Z","shell.execute_reply.started":"2022-08-01T08:29:09.211601Z","shell.execute_reply":"2022-08-01T08:29:17.176871Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submit = pd.read_csv('../input/amex-default-prediction/sample_submission.csv')\nsubmit['prediction'] = 0\n\nfor df in dfs:\n    submit['prediction'] += rankdata(df['prediction'])/df.shape[0]\n\nsubmit['prediction_'] = submit['prediction']/len(paths)    \nsubmit['prediction'] /= 4\n\nsubmit[['customer_ID', 'prediction_']].to_csv('rank_submission_.csv', index=None)\nsubmit[['customer_ID', 'prediction']].to_csv('rank_submission.csv', index=None)\n# submit.to_csv('rank_submission.csv', index=None)","metadata":{"papermill":{"duration":7.145959,"end_time":"2022-07-31T01:33:45.479407","exception":false,"start_time":"2022-07-31T01:33:38.333448","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:17.17973Z","iopub.execute_input":"2022-08-01T08:29:17.180171Z","iopub.status.idle":"2022-08-01T08:29:25.704384Z","shell.execute_reply.started":"2022-08-01T08:29:17.180125Z","shell.execute_reply":"2022-08-01T08:29:25.703432Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submit.head()","metadata":{"execution":{"iopub.status.busy":"2022-08-01T08:29:25.705401Z","iopub.execute_input":"2022-08-01T08:29:25.706619Z","iopub.status.idle":"2022-08-01T08:29:25.721767Z","shell.execute_reply.started":"2022-08-01T08:29:25.706574Z","shell.execute_reply":"2022-08-01T08:29:25.720506Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"weights = [0.52, 0.87, 0.95, 0.57, .1, 0.8]","metadata":{"papermill":{"duration":0.012648,"end_time":"2022-07-31T01:33:45.495892","exception":false,"start_time":"2022-07-31T01:33:45.483244","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:25.723303Z","iopub.execute_input":"2022-08-01T08:29:25.723671Z","iopub.status.idle":"2022-08-01T08:29:25.728798Z","shell.execute_reply.started":"2022-08-01T08:29:25.723639Z","shell.execute_reply":"2022-08-01T08:29:25.727529Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# submit = pd.read_csv('../input/amex-default-prediction/sample_submission.csv')\n# submit['prediction'] = 0\n\n# # assert len(dfs) == len(weights)\n\n# for df, weight in zip(dfs, weights):\n#     print(weight)\n#     submit['prediction'] += (df['prediction'] * weight) \n    \n# submit['prediction'] /= np.sum(weights)\n\n# submit.to_csv('mean_submission.csv', index=None)","metadata":{"papermill":{"duration":6.713396,"end_time":"2022-07-31T01:33:52.21301","exception":false,"start_time":"2022-07-31T01:33:45.499614","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:25.730438Z","iopub.execute_input":"2022-08-01T08:29:25.73111Z","iopub.status.idle":"2022-08-01T08:29:29.995415Z","shell.execute_reply.started":"2022-08-01T08:29:25.731076Z","shell.execute_reply":"2022-08-01T08:29:29.993965Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submit = pd.read_csv('../input/amex-default-prediction/sample_submission.csv')\nsubmit['prediction'] = 0\n\nfor df, weight in zip(dfs, weights):\n    submit['prediction'] += (rankdata(df['prediction'])/df.shape[0]) * weight\n    \nsubmit['prediction'] /= 4\n\nsubmit.to_csv('submission.csv', index=None)\n\n","metadata":{"papermill":{"duration":7.043074,"end_time":"2022-07-31T01:33:59.260014","exception":false,"start_time":"2022-07-31T01:33:52.21694","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2022-08-01T08:29:29.998639Z","iopub.execute_input":"2022-08-01T08:29:29.998981Z","iopub.status.idle":"2022-08-01T08:29:35.187921Z","shell.execute_reply.started":"2022-08-01T08:29:29.998948Z","shell.execute_reply":"2022-08-01T08:29:35.186731Z"},"trusted":true},"execution_count":null,"outputs":[]}]}