{"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":"gpu","dataSources":[{"sourceId":101849,"databundleVersionId":13093295,"isSourceIdPinned":false,"sourceType":"competition"},{"sourceId":13133519,"sourceType":"datasetVersion","datasetId":7873586},{"sourceId":13171248,"sourceType":"datasetVersion","datasetId":8346354}],"dockerImageVersionId":31090,"isInternetEnabled":false,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"!pip install --no-index --find-links=/kaggle/input/ariel25-batman-minuit/packages  batman-package iminuit pqdm","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-09-25T16:11:03.527547Z","iopub.execute_input":"2025-09-25T16:11:03.527819Z","iopub.status.idle":"2025-09-25T16:11:08.49676Z","shell.execute_reply.started":"2025-09-25T16:11:03.52779Z","shell.execute_reply":"2025-09-25T16:11:08.495672Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!cp -r  /kaggle/input/ariel25-0-577-code/* /kaggle/working","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-25T16:11:46.263047Z","iopub.execute_input":"2025-09-25T16:11:46.263378Z","iopub.status.idle":"2025-09-25T16:11:46.429083Z","shell.execute_reply.started":"2025-09-25T16:11:46.263352Z","shell.execute_reply":"2025-09-25T16:11:46.428082Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\n\nos.environ['DATASET']='test'\nos.environ['RPATH']= '/kaggle/input/ariel-data-challenge-2025/'","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-25T16:11:49.395957Z","iopub.execute_input":"2025-09-25T16:11:49.39628Z","iopub.status.idle":"2025-09-25T16:11:49.401163Z","shell.execute_reply.started":"2025-09-25T16:11:49.396227Z","shell.execute_reply":"2025-09-25T16:11:49.40016Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import pandas as pd\nimport os\nimport glob\nimport numpy as np\nfrom sklearn.decomposition import PCA\nimport matplotlib.pyplot as plt\n\npath = os.environ['RPATH']\ndataset = os.environ['DATASET']\n\ntrain_labels= pd.read_csv(f'{path}train.csv')\n\ndtest = glob.glob(f'{path}{dataset}/*/AIRS-CH0_signal_*')\ndt = [d.split('/') for d in dtest]\nnpa = path.count('/')\ndt = [(d[npa+1],d[npa+2][16]) for d in dt]\ndf_t = pd.DataFrame(dt)\ndf_t.columns = ['planet_id','rep']\ndf_t['planet_id'] = df_t.planet_id.astype('int64')\n\n   \nif dataset == 'train':\n    df_labels = pd.merge(df_t,train_labels,how = 'left')\n    y_true=df_labels.iloc[:,2:].values\n\n\n    \n\nncomp = 7\ntl = train_labels.iloc[:,1:]\n\ntls = (tl.T/tl.mean(axis=1)).T-1\npca = PCA(n_components=ncomp,random_state = 42)\npca.fit(tls)\nfor i in range(0,ncomp):\n    plt.plot(pca.components_[i])\n\nnp.save('components',pca.components_)\n\npca.components_.shape","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-25T16:11:50.216247Z","iopub.execute_input":"2025-09-25T16:11:50.21655Z","iopub.status.idle":"2025-09-25T16:11:52.120117Z","shell.execute_reply.started":"2025-09-25T16:11:50.216527Z","shell.execute_reply":"2025-09-25T16:11:52.119095Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"!python process_all.py","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-19T09:13:32.493014Z","iopub.execute_input":"2025-09-19T09:13:32.493746Z","iopub.status.idle":"2025-09-19T09:14:03.878997Z","shell.execute_reply.started":"2025-09-19T09:13:32.493712Z","shell.execute_reply":"2025-09-19T09:14:03.878244Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"from model import evaluate_model\nbeta = .73\npreds,sigmas = evaluate_model(beta,'model2.json')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-19T09:14:21.445616Z","iopub.execute_input":"2025-09-19T09:14:21.446394Z","iopub.status.idle":"2025-09-19T09:14:22.216028Z","shell.execute_reply.started":"2025-09-19T09:14:21.446361Z","shell.execute_reply":"2025-09-19T09:14:22.215206Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"plt.plot(preds[:2].T);\nplt.show()\n\nplt.plot(sigmas[:2].T);","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-19T09:14:58.332205Z","iopub.execute_input":"2025-09-19T09:14:58.332902Z","iopub.status.idle":"2025-09-19T09:14:58.60357Z","shell.execute_reply.started":"2025-09-19T09:14:58.332878Z","shell.execute_reply":"2025-09-19T09:14:58.602748Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"ssub = pd.read_csv(path + 'sample_submission.csv')\n\n\nnwl = ['wl_' + str(i+1) for i in range(283)]\nnsig = ['sigma_' + str(i+1) for i in range(283)]\nsubmission = pd.DataFrame(np.concatenate([preds,sigmas], axis=1), columns=ssub.columns[1:])\nsubmission['planet_id'] = df_t.planet_id\n\n\n\np_preds = submission.groupby('planet_id')[nwl].mean()\np_sigmas = submission.groupby('planet_id')[nsig].mean()\n\np_count = submission.groupby('planet_id')['wl_1'].count().reset_index()\np_count1 = submission.groupby('planet_id')['wl_1'].count().values\n \n\nsigmas = sigmas * 1.2\n\npreds1 = p_preds.to_numpy()\nsigmas1 = p_sigmas.to_numpy()\n\nmask = p_count1>1\n\n\nsigmas1[~mask] = sigmas1[~mask]  \nsigmas1[mask] = sigmas1[mask]*.77\n\nif dataset == 'train':\n    p_true = df_labels.groupby('planet_id')[nwl].mean()\n    true1 = p_true.to_numpy()\n\n    gll_score2 = competition_score(true1,\n                                      preds1,sigmas1,#,*np.sqrt(zi),\n                                      naive_mean=true1.mean(),\n                                      naive_sigma=true1.std(),\n                                      fsg_sigma_true = 1e-6,\n                                      airs_sigma_true = 1e-5,\n                                      fgs_weight = 57.846,)\n    print(gll_score2)\n\n\nsubmission = pd.DataFrame(np.concatenate([preds1,sigmas1], axis=1), columns=ssub.columns[1:])\nsubmission['planet_id'] = p_count.planet_id.values\nsubmission = submission[['planet_id'] + nwl + nsig]\n\n\nif np.sum(submission.isna()).sum()>0:\n    exit(0)\nif (np.sum(submission.isna()).sum()==0) & (np.sum(submission<0).sum()==0):\n    submission.to_csv('submission.csv', index=False, float_format='%.5f')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-19T09:18:37.528799Z","iopub.execute_input":"2025-09-19T09:18:37.529055Z","iopub.status.idle":"2025-09-19T09:18:37.559727Z","shell.execute_reply.started":"2025-09-19T09:18:37.529028Z","shell.execute_reply":"2025-09-19T09:18:37.559062Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-09-19T09:18:58.163178Z","iopub.execute_input":"2025-09-19T09:18:58.163446Z","iopub.status.idle":"2025-09-19T09:18:58.191313Z","shell.execute_reply.started":"2025-09-19T09:18:58.163427Z","shell.execute_reply":"2025-09-19T09:18:58.190645Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}