{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":94147,"databundleVersionId":11390004,"sourceType":"competition"}],"dockerImageVersionId":30918,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import h5py\nimport numpy as np\nimport pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import  RANSACRegressor\nimport numpy as np\nimport torch\nimport torch.nn as nn\nimport torch.optim as optim\n\n# Load training data\nwith h5py.File(\"/kaggle/input/el-hackathon-2025/elucidata_ai_challenge_data.h5\", \"r\") as f:\n    train_spots = f[\"spots/Train\"]\n    train_spot_tables = {slide_name: pd.DataFrame(np.array(train_spots[slide_name])) for slide_name in train_spots.keys()}\n\n# Combine all training slides\ntrain_df = pd.concat(train_spot_tables.values(), ignore_index=True)\n\n# Extract features and target labels\nX = train_df[['x', 'y']]  # Use spatial coordinates\ny = train_df.iloc[:, 2:]  # All other columns are cell-type labels\n\n# Train-test split\nX_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.10, random_state=42)\n\n\n\n\n# # Define models\nmodels = {\n    \"RANSACRegressor\": RANSACRegressor(),\n    \n}\n\n\n# Train all models\npreds_valid = {}\nfor name, model in models.items():\n    print(f\"Training {name}...\")\n    model.fit(X_train, y_train)\n    preds_valid[name] = model.predict(X_valid)\n\n# Load test data\nwith h5py.File(\"/kaggle/input/el-hackathon-2025/elucidata_ai_challenge_data.h5\", \"r\") as f:\n    test_spots = f[\"spots/Test\"]\n    test_spot_table = pd.DataFrame(np.array(test_spots['S_7']))  # Example slide S_7\n\nX_test = test_spot_table[['x', 'y']]\n\n# Get predictions from all models\ntest_preds = np.zeros((X_test.shape[0], y.shape[1]))\nfor name, model in models.items():\n    print(f\"Predicting with {name}...\")\n    test_preds += model.predict(X_test)\n\n# Averaging predictions (simple ensemble)\ntest_preds /= len(models)\n\n# Prepare submission file\nsubmission_df = pd.DataFrame(test_preds, columns=y.columns)\nsubmission_df.insert(0, 'ID', test_spot_table.index)\nsubmission_df.to_csv(\"/kaggle/working/submission.csv\", index=False)\nprint(\"Submission file 'submission.csv' created!\")\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-04-07T03:16:47.152963Z","iopub.execute_input":"2025-04-07T03:16:47.153285Z","iopub.status.idle":"2025-04-07T03:16:52.150556Z","shell.execute_reply.started":"2025-04-07T03:16:47.153258Z","shell.execute_reply":"2025-04-07T03:16:52.149657Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}