{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":70367,"databundleVersionId":9188054,"sourceType":"competition"}],"dockerImageVersionId":30761,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# Import necessary libraries\nimport numpy as np\nimport pandas as pd\nimport os\n\n# Set the data directory\ndata_dir = '/kaggle/input/ariel-data-challenge-2024'  # Update if the directory name is different\n\n# Load metadata and sample submission\ntrain_labels = pd.read_csv(os.path.join(data_dir, 'train_labels.csv'))\nsample_submission = pd.read_csv(os.path.join(data_dir, 'sample_submission.csv'))\n\n# Get the list of spectral and uncertainty column names from the sample submission\nspectral_cols = [col for col in sample_submission.columns if col.startswith('wavelength_')]\nuncertainty_cols = [col for col in sample_submission.columns if col.startswith('uncertainty_wavelength_')]\n\nprint(\"Number of spectral columns in sample_submission:\", len(spectral_cols))\nprint(\"Number of uncertainty columns in sample_submission:\", len(uncertainty_cols))\n\n# Extract the same spectral columns from train_labels (if available)\nspectral_columns_in_train = [col for col in train_labels.columns if col in spectral_cols]\nprint(\"Number of spectral columns in train_labels:\", len(spectral_columns_in_train))\n\n# Compute the mean spectrum from training labels (only for matching columns)\nmean_spectrum = train_labels[spectral_columns_in_train].mean().values  # Shape: (num_spectral_columns,)\n\n# Set a fixed uncertainty\nfixed_uncertainty = 100  # Adjust this value if needed\nuncertainty_spectrum = np.full(len(spectral_cols), fixed_uncertainty)\n\n# Prepare the submission DataFrame\nsubmission_df = pd.DataFrame()\nsubmission_df['planet_id'] = sample_submission['planet_id']\n\n# Number of test samples\nnum_test_samples = submission_df.shape[0]\nprint(\"Number of test samples:\", num_test_samples)\n\n# Repeat the mean_spectrum and uncertainty_spectrum for each test sample\npredictions = np.tile(mean_spectrum, (num_test_samples, 1))  # Shape: (num_test_samples, num_spectral_columns)\nuncertainties = np.tile(uncertainty_spectrum, (num_test_samples, 1))  # Shape: (num_test_samples, num_spectral_columns)\n\n# Verify that the number of columns matches\nprint(\"Predictions shape:\", predictions.shape)\nprint(\"Uncertainties shape:\", uncertainties.shape)\n\n# Add predictions to the submission DataFrame\nsubmission_df[spectral_cols] = predictions\nsubmission_df[uncertainty_cols] = uncertainties\n\n# Verify the submission format\nprint(\"Submission DataFrame shape:\", submission_df.shape)\nprint(\"First few rows:\")\nprint(submission_df.head())\n\n# Save the submission file\nsubmission_df.to_csv('submission.csv', index=False)\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-09-19T11:03:40.810311Z","iopub.execute_input":"2024-09-19T11:03:40.811062Z","iopub.status.idle":"2024-09-19T11:03:40.896613Z","shell.execute_reply.started":"2024-09-19T11:03:40.811014Z","shell.execute_reply":"2024-09-19T11:03:40.895669Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}