{"cells":[{"cell_type":"markdown","metadata":{},"source":"# Ariel Data Challenge 2025 - Guaranteed Submission\nSimple robust submission that always creates submission.csv"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"import pandas as pd\nimport numpy as np\nimport warnings\nwarnings.filterwarnings('ignore')\n\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.model_selection import train_test_split\n\nprint('Libraries loaded successfully!')"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"# Load data\nprint('Loading data...')\ntrain_df = pd.read_csv('/kaggle/input/ariel-data-challenge-2025/train.csv')\nsample_submission = pd.read_csv('/kaggle/input/ariel-data-challenge-2025/sample_submission.csv')\n\nprint(f'Training data: {train_df.shape}')\nprint(f'Sample submission: {sample_submission.shape}')"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"# Simple model training\nprint('Training simple model...')\n\nfeature_cols = [col for col in train_df.columns if col.startswith('wl_')]\nX = train_df[feature_cols].values\ny = train_df[feature_cols[0]].values\n\nprint(f'Features: {X.shape}, Target: {y.shape}')\n\n# Simple Random Forest\nmodel = RandomForestRegressor(n_estimators=50, max_depth=8, random_state=42)\nmodel.fit(X[:500], y[:500])  # Use subset for speed\n\n# Get prediction statistics\nsample_pred = model.predict(X[:1])[0]\nprint(f'Sample prediction: {sample_pred:.6f}')\n\nprint('Model training completed!')"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"# Generate submission\nprint('Generating submission...')\n\nsubmission = sample_submission.copy()\n\nwl_cols = [col for col in submission.columns if col.startswith('wl_')]\nsigma_cols = [col for col in submission.columns if col.startswith('sigma_')]\n\nprint(f'Columns: {len(wl_cols)} wl, {len(sigma_cols)} sigma')\n\n# Set seed for reproducibility\nnp.random.seed(42)\n\n# Wavelength predictions\nfor col in wl_cols:\n    if col in train_df.columns:\n        base_mean = train_df[col].mean()\n        base_std = train_df[col].std()\n        submission[col] = base_mean + np.random.normal(0, base_std * 0.002)\n    else:\n        submission[col] = 0.015\n\n# Uncertainty predictions\nfor col in sigma_cols:\n    submission[col] = np.maximum(0.002 + np.random.normal(0, 0.0002), 0.001)\n\nprint('Predictions generated!')"},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":"# SAVE SUBMISSION FILE\nsubmission.to_csv('submission.csv', index=False)\n\nprint('submission.csv saved!')\nprint(f'Shape: {submission.shape}')\n\n# Verify file\ntest_df = pd.read_csv('submission.csv')\nprint(f'Verification - Shape: {test_df.shape}')\nprint(f'Columns: {test_df.shape[1]}')\nprint(f'Planet ID: {test_df.iloc[0, 0]}')\n\nprint('SUCCESS: submission.csv is ready!')"}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.7.12"}},"nbformat":4,"nbformat_minor":4}