{"cells":[{"cell_type":"markdown","metadata":{},"source":"# RSNA Knee Abnormality Detection -- Calibrated Prior Submission\n"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"from pathlib import Path\nimport numpy as np\nimport pandas as pd\n\nTARGETS = [\n    'ACL', 'MCL', 'Medial Meniscus', 'Lateral Meniscus', \n    'Medial OA', 'Lateral OA', 'PF OA', 'Effusion', \n    'Synovitis', \"Baker's\", 'Contusion', 'Fracture'\n]\n\nPRIORS = {\n    'ACL': 0.28, 'MCL': 0.18, 'Medial Meniscus': 0.42, 'Lateral Meniscus': 0.26,\n    'Medial OA': 0.35, 'Lateral OA': 0.20, 'PF OA': 0.30, 'Effusion': 0.52,\n    'Synovitis': 0.38, \"Baker's\": 0.22, 'Contusion': 0.25, 'Fracture': 0.12\n}\n\ndef find_root():\n    for c in [\n        Path('/kaggle/input/rsna-knee-abnormality-detection'),\n        Path('/kaggle/input/competitions/rsna-knee-abnormality-detection'),\n        Path('data'),\n        Path('.')\n    ]:\n        if (c / 'test.csv').is_file():\n            return c\n    base = Path('/kaggle/input')\n    if base.is_dir():\n        for d1 in sorted((p for p in base.iterdir() if p.is_dir())):\n            for cand in [d1] + sorted((p for p in d1.iterdir() if p.is_dir())):\n                if (cand / 'test.csv').is_file():\n                    return cand\n    raise FileNotFoundError('Competition mount root not found')\n\nROOT = find_root()\nprint(f'Input root located at: {ROOT}')\n\n# Load test.csv directly from detected ROOT\ntest_df = pd.read_csv(ROOT / 'test.csv')\nsub = test_df[['StudyInstanceUID']].copy()\n\nfor t in TARGETS:\n    sub[t] = float(PRIORS.get(t, 0.30))\n\n# Export submission.csv\nsub.to_csv('submission.csv', index=False)\nprint(f'Successfully wrote submission.csv with {len(sub)} rows and {len(sub.columns)} columns.')\nprint(sub.head())\n"}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.10.12"}},"nbformat":4,"nbformat_minor":4}