{"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":"# United","metadata":{}},{"cell_type":"code","source":"import pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\ndef show_heatmap(df, title):\n    # make heatmap\n    heatmap = []\n\n    for idx, row in df.iterrows():\n        _, _, species, sec = row.row_id.split(\"_\")\n        if sec == \"5\":\n            sec = \"05\"\n        true_or_false = row.target\n        heatmap.append([species,sec,true_or_false])\n    \n    heatmap = pd.DataFrame(heatmap, columns=[\"species\", \"sec\", \"True_or_False\"])\n\n    # show heamap\n    fig,ax = plt.subplots(figsize=(10,5))\n    cmap = sns.color_palette(\"Blues\")\n    heatmap = heatmap.pivot(\"species\", \"sec\", \"True_or_False\")\n    sns.heatmap(heatmap,ax=ax,linecolor='k',lw=1,cmap=cmap)\n    plt.title(title)\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2022-04-23T08:12:13.368212Z","iopub.execute_input":"2022-04-23T08:12:13.368543Z","iopub.status.idle":"2022-04-23T08:12:13.377899Z","shell.execute_reply.started":"2022-04-23T08:12:13.368510Z","shell.execute_reply":"2022-04-23T08:12:13.376841Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Load json file\n\nimport json \n\nsubmissions_json = \"../input/bc2022-united/submissions.json\"\nwith open(submissions_json) as json_file:\n    submissions = json.load(json_file)\n\n# print(json.dumps(submissions, indent=2))\n\nsubmissions[\"submission_id\"]\n\nsubmission_list = list(submissions[\"submission_id\"])\nfile_list = []\nprob_list = []\nscore_list = []\nmodel_list = []\n\ndir_path = '../input/bc2022-united/'\n\nfor s in submission_list:\n  file_list.append(dir_path + submissions['submission_id'][s]['submission_file'])\n  prob_list.append(dir_path + submissions['submission_id'][s]['prob_file'])\n  score_list.append(submissions['submission_id'][s]['public_score'])\n  model_list.append(submissions['submission_id'][s]['model'])\n\nprint(submission_list)\nprint(file_list)\nprint(prob_list)\nprint(score_list)\nprint(model_list)","metadata":{"execution":{"iopub.status.busy":"2022-04-23T07:57:26.837878Z","iopub.execute_input":"2022-04-23T07:57:26.838246Z","iopub.status.idle":"2022-04-23T07:57:26.879154Z","shell.execute_reply.started":"2022-04-23T07:57:26.838162Z","shell.execute_reply":"2022-04-23T07:57:26.878084Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Ensemble","metadata":{}},{"cell_type":"code","source":"# Merge dataframe\n\nfor idx, file in enumerate( file_list ):\n    if idx == 0:\n        ensemble_df = pd.read_csv(file)\n        ensemble_df = ensemble_df.rename(columns={\"target\": \"target_\"+str(idx)})\n    else:\n        df = pd.read_csv(file)\n        df = df.rename(columns={\"target\": \"target_\"+str(idx)})\n        ensemble_df = ensemble_df.merge(df, on='row_id') \n\n\n# Sum\ncolumn_list = list(ensemble_df.columns)\ncolumn_list.remove(\"row_id\")\nensemble_df[\"sum\"] = ensemble_df[column_list].sum(axis=1)\n\n# New target\nensemble_df['target'] = ensemble_df['sum'] > 1\n\nensemble_df","metadata":{"execution":{"iopub.status.busy":"2022-04-23T08:04:57.557248Z","iopub.execute_input":"2022-04-23T08:04:57.557614Z","iopub.status.idle":"2022-04-23T08:04:57.601614Z","shell.execute_reply.started":"2022-04-23T08:04:57.557574Z","shell.execute_reply":"2022-04-23T08:04:57.600870Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Heatmap\nshow_heatmap(ensemble_df, 'ensemble_df')","metadata":{"execution":{"iopub.status.busy":"2022-04-23T08:12:27.280456Z","iopub.execute_input":"2022-04-23T08:12:27.281577Z","iopub.status.idle":"2022-04-23T08:12:27.656588Z","shell.execute_reply.started":"2022-04-23T08:12:27.281520Z","shell.execute_reply":"2022-04-23T08:12:27.655481Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Save submission.csv\n\nsubmission_df = ensemble_df[['row_id', 'target']]\nsubmission_df.to_csv(\"submission.csv\", index=False)\n\nprint(len(submission_df))\nsubmission_df.head()","metadata":{"execution":{"iopub.status.busy":"2022-04-23T08:09:28.354918Z","iopub.execute_input":"2022-04-23T08:09:28.355570Z","iopub.status.idle":"2022-04-23T08:09:28.375173Z","shell.execute_reply.started":"2022-04-23T08:09:28.355531Z","shell.execute_reply":"2022-04-23T08:09:28.374166Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Visualization","metadata":{}},{"cell_type":"code","source":"# Heatmap\nfor idx, data in enumerate (file_list) :\n    df = pd.read_csv(file_list[idx])\n    id = submission_list[idx]\n    score = score_list[idx]\n    show_heatmap(df, str(id) + '_' + str(score))","metadata":{"execution":{"iopub.status.busy":"2022-04-23T08:17:25.085671Z","iopub.execute_input":"2022-04-23T08:17:25.085976Z","iopub.status.idle":"2022-04-23T08:17:26.314408Z","shell.execute_reply.started":"2022-04-23T08:17:25.085942Z","shell.execute_reply":"2022-04-23T08:17:26.313162Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}