{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":96164,"databundleVersionId":12993472,"isSourceIdPinned":false,"sourceType":"competition"},{"sourceId":12462463,"sourceType":"datasetVersion","datasetId":7861436},{"sourceId":12503273,"sourceType":"datasetVersion","datasetId":7870836}],"dockerImageVersionId":31089,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport numpy as np\n\npath_to_ds = \"/kaggle/input/15-juli-2025-drw/\"\nfile_short_names = ['0.89178', '0.90038', '0.95002', '0.83975', '0.86767', '0.88377']\n\nparams = [0.1, 0.15, 0.4, 0.05, 0.1, 0.2]\n\ndef iBlend(path_to_ds, file_short_names, sls):\n    subms = []\n    \n    for name in file_short_names:\n        filename = f\"submission {name}.csv\"\n        df = pd.read_csv(path_to_ds + filename)\n        df.columns = ['row_id', name]\n        subms.append(df)\n\n    df_subms = subms[0]\n    for i in range(1, len(subms)):\n        df_subms = df_subms.merge(subms[i], on=\"row_id\")\n\n    print(\"Submissions Scores:\")\n    for i, name in enumerate(file_short_names):\n        print(f\"{name}: weight = {sls[i]}\")\n\n    corr_matrix = df_subms.drop(columns=\"row_id\").corr()\n    plt.figure(figsize=(10, 6))\n    sns.heatmap(corr_matrix, annot=True, cmap=\"coolwarm\")\n    plt.title(\"Correlation Matrix between Submission Files\")\n    plt.show()\n\n    df_subms[\"target\"] = 0\n    for i, name in enumerate(file_short_names):\n        df_subms[\"target\"] += sls[i] * df_subms[name]\n\n    final = df_subms[[\"row_id\", \"target\"]].copy()\n    return final\n\nsubmission = iBlend(path_to_ds, file_short_names, params)\n\nsubmission.to_csv(\"iBlend_submission.csv\", index=False)\nprint(\"✅ Submission saved as iBlend_submission.csv\")\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-07-20T01:53:48.735384Z","iopub.execute_input":"2025-07-20T01:53:48.735681Z","iopub.status.idle":"2025-07-20T01:53:51.203796Z","shell.execute_reply.started":"2025-07-20T01:53:48.735661Z","shell.execute_reply":"2025-07-20T01:53:51.203018Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nfile_names = [\n    \"submission 0.89178.csv\",\n    \"submission 0.90038.csv\",\n    \"submission 0.95002.csv\",\n    \"submission 0.83975.csv\",\n    \"submission 0.86767.csv\",\n    \"submission 0.88377.csv\"\n]\n\nweights = [0.1, 0.15, 0.4, 0.05, 0.1, 0.2]\n\nscores = [float(f.split()[1].replace(\".csv\", \"\")) for f in file_names]\nnames = [f.split()[1].replace(\".csv\", \"\") for f in file_names]\n\ndf = pd.DataFrame({\n    \"File Name\": file_names,\n    \"Score\": scores,\n    \"Weight\": weights\n})\ndf[\"Score × Weight\"] = df[\"Score\"] * df[\"Weight\"]\nweighted_score = df[\"Score × Weight\"].sum()\n\ndf.to_csv(\"submission_score_weights.csv\", index=False)\n\nplt.figure(figsize=(10, 5))\nbars = plt.bar(names, scores, color='skyblue')\nplt.xlabel(\"Submission Score\")\nplt.ylabel(\"RMSE\")\nplt.title(\"Individual Submission Scores\")\n\nplt.axhline(weighted_score, color='red', linestyle='--', label=f'Blend Score = {weighted_score:.5f}')\n\nfor bar, score in zip(bars, scores):\n    yval = bar.get_height()\n    plt.text(bar.get_x() + bar.get_width()/2, yval + 0.001, f'{score:.5f}', ha='center', va='bottom', fontsize=9)\n\nplt.legend()\nplt.tight_layout()\n\nplt.savefig(\"submission_score_plot.png\")\nplt.show()\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-07-20T02:05:15.856118Z","iopub.execute_input":"2025-07-20T02:05:15.856456Z","iopub.status.idle":"2025-07-20T02:05:16.183959Z","shell.execute_reply.started":"2025-07-20T02:05:15.856435Z","shell.execute_reply":"2025-07-20T02:05:16.183142Z"}},"outputs":[],"execution_count":null}]}