{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","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":30746,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"Published on August 01, 2024. By Marília Prata, mpwolke","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn import feature_extraction, linear_model, model_selection, preprocessing\nimport plotly.graph_objs as go\nimport plotly.offline as py\nimport plotly.express as px\n\n#Ignore warnings\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2024-08-01T22:20:46.025241Z","iopub.execute_input":"2024-08-01T22:20:46.025662Z","iopub.status.idle":"2024-08-01T22:21:00.317243Z","shell.execute_reply.started":"2024-08-01T22:20:46.025626Z","shell.execute_reply":"2024-08-01T22:21:00.31576Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![](https://www.ariel-datachallenge.space/static/images/adc2024.png)https://www.ariel-datachallenge.space/","metadata":{}},{"cell_type":"markdown","source":"#Predicting Exoplanetary Features\n\nPredicting Exoplanetary Features with a Residual Model for Uniform and Gaussian Distributions\n\nAuthor: Andrew Sweet\n\n\"In order to help bridge the gap between machine learning and astrophysics domain experts, the 2023 Ariel Data Challenge was hosted to predict posterior distributions of 7 exoplanetary features. The procedure outlined in this paper leveraged a combination of two deep learning models to address this challenge: a Multivariate Gaussian model that generates the mean and covariance matrix of a multivariate Gaussian distribution, and a Uniform Quantile model that predicts quantiles for use as the upper and lower bounds of a uniform distribution.\"\n\n\"Training of the Multivariate Gaussian model was found to be unstable, while training of the Uniform Quantile model was stable.An ensemble of uniform distributions was found to have competitive results during testing (posterior score of 696.43), and when combined with a multivariate Gaussian distribution achieved a final rank of third in the 2023 Ariel Data Challenge (final score of 681.57).\"\n\nSpectral and Auxiliary data\n\n\"The Ariel Data Challenge at NeurIPS 2022 and ECML PPKD 2023 had three\nmain differences: the size of the provided data sets, the number of exoplanetary features being predicted, and the scoring metrics. The methods here will focus on the data for ECML PPKD 2023. There were five data files distributed for the challenge, which can broadly be separated into input and output data for machine learning purposes, and contain simulated data for 41,423 (denoted as N below) planets. For input data there were two files:\"\n\n– spectral data: which was composed of the wavelength grid, spectrum, uncertainty and bin width across 52 wavelength channels, of shape N × 4 × 52.\"\n\n– auxiliary data: containing 8 auxiliary features for each planetary system, of shape N × 8. These features were the planet’s mass, orbital period, radius, semi-major axis, and surface gravity, as well as it’s host star’s mass, radius, temperature, and distance from Earth.\"\n\n\"A few suggestions for future work include hyperparameter optimization, separate backbones, alternate feature engineering and feature selection, transfer learning with a pre-trained unsupervised learning scheme such as an encoder-decoder network, and combining the output distributions as part of the learning process such as with a Mixture-of-Experts (MoE).\n\nhttps://arxiv.org/abs/2406.10771\n\nhttps://astrobiology.com/tag/2023-ariel-data-challenge\n\nADC 2023 - Exoplanet Atmospheric Retrieval\n\nSimulation-based Inference for Exoplanet Atmospheric Retrieval: Insights from winning the Ariel Data Challenge 2023 using Normalizing Flows\n\nAuthors: Mayeul Aubin, Carolina Cuesta-Lazaro, Ethan Tregidga, Javier Viaña, Cecilia Garraffo, Iouli E. Gordon, Mercedes López-Morales, Robert J. Hargreaves, Vladimir Yu. Makhnev, Jeremy J. Drake, Douglas P. Finkbeiner, and Phillip Cargile\n\nRetrieving Exoplanet Atmospheric compositions - Transmission Spectroscopy\n\n\"The most commonly used method to study the atmospheric composition of an exoplanet is called transmission spectroscopy, which consists of measuring how light from the host star gets absorbed by the planetary atmosphere during a transit, i.e. when the planet crosses in front of the disk of its star.\"\n\n\"Retrieving the atmospheric properties of exoplanets from their transmission spectra is challenging. There have been many efforts in this direction. Due to the high dimensionality of the parameter space and the low-resolution spectra at hand, there are degeneracies, and a deterministic answer is not usually possible or informative. A number of codes, most based on Bayesian sampling algorithms but some on machine learning too, have been developed to do this.\"\n\n\"In their study, the authors utilized Neural Spline Flows to model the posterior distribution of atmospheric parameters given the observed spectra. Neural Spline Flows, employ monotonic rational-quadratic splines to model the invertible mapping, and neural networks to predict the necessary parameters of these transformations. To implement Neural Spline Flows, they utilized the Zuko python package.\"\n\nEnsembling the best models:\n\n\"Once the hyperparameters optimization was complete, the authors ensembled\nthe 10 best models to reduce model’s errors and increase robustness.\"\n\nThe Ariel Data Challenge 2023 Solution:\n\nhttps://github.com/AstroAI-CfA/Ariel_Data_Challenge_2023_solution\n\nMetric: Gaussian Log-Likelihood\n\n[theanets.losses.GaussianLogLikelihood](https://theanets.readthedocs.io/en/stable/api/generated/theanets.losses.GaussianLogLikelihood.html)\n\n[Why we consider log likelihood instead of Likelihood in Gaussian Distribution](https://math.stackexchange.com/questions/892832/why-we-consider-log-likelihood-instead-of-likelihood-in-gaussian-distribution)\n\n[Ariel Gaussian Log Likelihood](https://www.kaggle.com/code/metric/ariel-gaussian-log-likelihood/notebook) By Sohier Dane and Kaggle Competition Metrics (aka Kaggle Bot!)","metadata":{}},{"cell_type":"markdown","source":"#Competition citation\n\n@misc{ariel-data-challenge-2024,\n\n    author = {Kai Hou Yip, Lorenzo V. Mugnai, Rebecca L. Coates, Andrea Bocchieri, Andreas Papageorgiou, Orphée Faucoz, Tara Tahseen, Virginie Batista, Angèle Syty, Arun Nambiyath Govindan, Sohier Dane, Maggie Demkin, Enzo Pascale, Quentin Changeat, Billy Edwards, Paul Eccleston, Clare Jenner, Ryan King, Theresa Lueftinger, Nikolaos Nikolaou, Pascale Danto, Sudeshna Boro Saikia, Luís F. Simões, Giovanna Tinetti, Ingo P. Waldmann (2024)},\n    \n    title = {NeurIPS - Ariel Data Challenge 2024},\n    \n    publisher = {Kaggle},\n    year = {2024},\n    url = {https://kaggle.com/competitions/ariel-data-challenge-2024}\n}","metadata":{}},{"cell_type":"markdown","source":"#Ariel Challenge: Wavelengths, Light Curves, Star Spots\n\nUse ML to identify and correct the effects of stellar spots in noisy transiting light curves of exoplanests. \n\nHybrid Model outperforms the LSTM Model","metadata":{}},{"cell_type":"code","source":"wave = pd.read_csv('/kaggle/input/ariel-data-challenge-2024/wavelengths.csv', delimiter=',', encoding='utf-8')\n#pd.set_option('display.max_columns', None)\nwave.head()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T22:30:16.984745Z","iopub.execute_input":"2024-08-01T22:30:16.985182Z","iopub.status.idle":"2024-08-01T22:30:17.04611Z","shell.execute_reply.started":"2024-08-01T22:30:16.985151Z","shell.execute_reply":"2024-08-01T22:30:17.044919Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Metadata - Contains analog-to-digital (ADC)\n\n\"Contains analog-to-digital (ADC) conversion parameters (gain and offset) for restoring the original dynamic range of the data. Also includes a star column identifying which star was used for that planet's simulation.\"\n\nhttps://www.kaggle.com/competitions/ariel-data-challenge-2024/data","metadata":{}},{"cell_type":"code","source":"adc = pd.read_csv('/kaggle/input/ariel-data-challenge-2024/train_adc_info.csv', delimiter=',', encoding='utf-8')\n#pd.set_option('display.max_columns', None)\nadc.tail()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T22:38:55.950272Z","iopub.execute_input":"2024-08-01T22:38:55.950726Z","iopub.status.idle":"2024-08-01T22:38:55.974208Z","shell.execute_reply.started":"2024-08-01T22:38:55.95069Z","shell.execute_reply":"2024-08-01T22:38:55.972655Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#No missing values","metadata":{}},{"cell_type":"code","source":"adc.isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:31:26.404157Z","iopub.execute_input":"2024-08-02T00:31:26.404613Z","iopub.status.idle":"2024-08-02T00:31:26.415068Z","shell.execute_reply.started":"2024-08-02T00:31:26.404571Z","shell.execute_reply":"2024-08-02T00:31:26.413604Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#ADC pairplot","metadata":{}},{"cell_type":"code","source":"cols = ['planet_id','FGS1_adc_offset','FGS1_adc_gain','AIRS-CH0_adc_offset','AIRS-CH0_adc_gain', 'star']\nsns.pairplot(adc[cols],height=2,kind='scatter')\nplt.show();","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:28:05.768945Z","iopub.execute_input":"2024-08-02T00:28:05.769839Z","iopub.status.idle":"2024-08-02T00:28:17.869102Z","shell.execute_reply.started":"2024-08-02T00:28:05.769769Z","shell.execute_reply":"2024-08-02T00:28:17.867503Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Correlation Matrix","metadata":{}},{"cell_type":"code","source":"adc.corr()\nplt.figure(figsize=(10,4))\nsns.heatmap(adc.corr(),annot=True,cmap='summer')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:30:12.108964Z","iopub.execute_input":"2024-08-02T00:30:12.109445Z","iopub.status.idle":"2024-08-02T00:30:12.632767Z","shell.execute_reply.started":"2024-08-02T00:30:12.109392Z","shell.execute_reply":"2024-08-02T00:30:12.631246Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#AIRS-CH0\n\nAIRS-CH0 is the first channel (CH0) of the Ariel InfraRed Spectrometer (AIRS). It is an infrared spectrometer with a sensitivity between 1.95 and 3.90 µm, and has a resolving power of approximately R=100. \n\nhttps://www.kaggle.com/competitions/ariel-data-challenge-2024/data","metadata":{}},{"cell_type":"code","source":"test_adc = pd.read_csv('/kaggle/input/ariel-data-challenge-2024/test_adc_info.csv', delimiter=',', encoding='utf-8')\n#pd.set_option('display.max_columns', None)\ntest_adc.head()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T22:39:03.062469Z","iopub.execute_input":"2024-08-01T22:39:03.062881Z","iopub.status.idle":"2024-08-01T22:39:03.083784Z","shell.execute_reply.started":"2024-08-01T22:39:03.06285Z","shell.execute_reply":"2024-08-01T22:39:03.082521Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub = pd.read_csv('/kaggle/input/ariel-data-challenge-2024/sample_submission.csv', delimiter=',', encoding='utf-8')\n#pd.set_option('display.max_columns', None)\nsub.head()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T22:40:22.810315Z","iopub.execute_input":"2024-08-01T22:40:22.81075Z","iopub.status.idle":"2024-08-01T22:40:22.864893Z","shell.execute_reply.started":"2024-08-01T22:40:22.810717Z","shell.execute_reply":"2024-08-01T22:40:22.863795Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Calibration files\n\nDark, Dead, Flat, Linear_corr and read parquet files\n\nCalibration frames are essential for eye-catching images, although it can be time consuming to acquire them you will noteice a difference in your images when you do take the time. \n\nhttps://practicalastrophotography.com/a-brief-guide-to-calibration-frames/","metadata":{}},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\ndf = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/train/2633183716/AIRS-CH0_calibration/dead.parquet\")\ndf.tail()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T23:22:16.768192Z","iopub.execute_input":"2024-08-01T23:22:16.770279Z","iopub.status.idle":"2024-08-01T23:22:17.040175Z","shell.execute_reply.started":"2024-08-01T23:22:16.770095Z","shell.execute_reply":"2024-08-01T23:22:17.038864Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\ndar = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/test/499191466/AIRS-CH0_calibration/dark.parquet\")\ndar.tail(3)","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:07:59.98772Z","iopub.execute_input":"2024-08-02T00:07:59.988159Z","iopub.status.idle":"2024-08-02T00:08:00.046298Z","shell.execute_reply.started":"2024-08-02T00:07:59.988124Z","shell.execute_reply":"2024-08-02T00:08:00.044513Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\nfgs = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/train/1215971796/FGS1_signal.parquet\")\nfgs.tail(3)","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:08:14.139472Z","iopub.execute_input":"2024-08-02T00:08:14.140501Z","iopub.status.idle":"2024-08-02T00:08:14.732004Z","shell.execute_reply.started":"2024-08-02T00:08:14.140455Z","shell.execute_reply":"2024-08-02T00:08:14.73016Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\nair = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/train/1215971796/AIRS-CH0_signal.parquet\")\nair.tail(3)","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:08:30.136306Z","iopub.execute_input":"2024-08-02T00:08:30.136897Z","iopub.status.idle":"2024-08-02T00:08:31.376544Z","shell.execute_reply.started":"2024-08-02T00:08:30.136852Z","shell.execute_reply":"2024-08-02T00:08:31.375339Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\nfla = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/train/1215971796/AIRS-CH0_calibration/flat.parquet\")\nfla.tail(3)","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:08:40.334727Z","iopub.execute_input":"2024-08-02T00:08:40.335139Z","iopub.status.idle":"2024-08-02T00:08:40.387879Z","shell.execute_reply.started":"2024-08-02T00:08:40.33511Z","shell.execute_reply":"2024-08-02T00:08:40.386646Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Wow! Linear_corr file ","metadata":{}},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\nlin = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/train/1215971796/AIRS-CH0_calibration/linear_corr.parquet\")\nlin.tail()","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:02:24.493491Z","iopub.execute_input":"2024-08-02T00:02:24.49391Z","iopub.status.idle":"2024-08-02T00:02:24.578568Z","shell.execute_reply.started":"2024-08-02T00:02:24.493881Z","shell.execute_reply":"2024-08-02T00:02:24.577347Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#By Bachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql\n\nrea = pd.read_parquet(\"/kaggle/input/ariel-data-challenge-2024/train/1215971796/AIRS-CH0_calibration/read.parquet\")\nrea.tail(3)","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:09:58.033185Z","iopub.execute_input":"2024-08-02T00:09:58.03365Z","iopub.status.idle":"2024-08-02T00:09:58.085122Z","shell.execute_reply.started":"2024-08-02T00:09:58.033615Z","shell.execute_reply":"2024-08-02T00:09:58.083732Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Clueless about these parquet - TY Cyberia for matshow\n\nThanks to Cyberia I learned matshow.","metadata":{}},{"cell_type":"code","source":"#Cyberia https://www.kaggle.com/code/cyberia/eda-adc2024/notebook\n\ndark = dar.values.reshape(32, 356)  # Reshape to 2D array\nplt.matshow(dark)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T23:42:05.81021Z","iopub.execute_input":"2024-08-01T23:42:05.810645Z","iopub.status.idle":"2024-08-01T23:42:06.350247Z","shell.execute_reply.started":"2024-08-01T23:42:05.810613Z","shell.execute_reply":"2024-08-01T23:42:06.348922Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Linear_corr\n\nOnly 2 tiny spots on the left upper side","metadata":{}},{"cell_type":"code","source":"linear = lin.values  \nplt.matshow(linear)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:05:19.60214Z","iopub.execute_input":"2024-08-02T00:05:19.602582Z","iopub.status.idle":"2024-08-02T00:05:20.027271Z","shell.execute_reply.started":"2024-08-02T00:05:19.602546Z","shell.execute_reply":"2024-08-02T00:05:20.026127Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Read parquet file sample","metadata":{}},{"cell_type":"code","source":"read = rea.values  \nplt.matshow(read)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:10:58.737927Z","iopub.execute_input":"2024-08-02T00:10:58.738343Z","iopub.status.idle":"2024-08-02T00:10:59.067011Z","shell.execute_reply.started":"2024-08-02T00:10:58.738311Z","shell.execute_reply":"2024-08-02T00:10:59.065401Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"AIRS = air.values  \nplt.matshow(AIRS)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-02T00:04:13.217925Z","iopub.execute_input":"2024-08-02T00:04:13.218375Z","iopub.status.idle":"2024-08-02T00:04:16.585816Z","shell.execute_reply.started":"2024-08-02T00:04:13.218334Z","shell.execute_reply":"2024-08-02T00:04:16.584471Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Dead sample","metadata":{}},{"cell_type":"code","source":"dead = df.values  \nplt.matshow(dead)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T23:46:08.183397Z","iopub.execute_input":"2024-08-01T23:46:08.184245Z","iopub.status.idle":"2024-08-01T23:46:08.655263Z","shell.execute_reply.started":"2024-08-01T23:46:08.184206Z","shell.execute_reply":"2024-08-01T23:46:08.65381Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#FGS1 is different","metadata":{}},{"cell_type":"code","source":"fgs1 = fgs.values  \nplt.matshow(fgs1)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T23:51:33.246816Z","iopub.execute_input":"2024-08-01T23:51:33.247221Z","iopub.status.idle":"2024-08-01T23:51:36.470479Z","shell.execute_reply.started":"2024-08-01T23:51:33.247193Z","shell.execute_reply":"2024-08-01T23:51:36.469121Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Flat sample","metadata":{}},{"cell_type":"markdown","source":"![](https://y.yarn.co/b49cffdb-fb31-4767-b3c4-a2690fd83f59_text.gif)Yarn","metadata":{}},{"cell_type":"code","source":"flat = fla.values  \nplt.matshow(flat)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T23:58:19.822567Z","iopub.execute_input":"2024-08-01T23:58:19.823658Z","iopub.status.idle":"2024-08-01T23:58:20.263003Z","shell.execute_reply.started":"2024-08-01T23:58:19.823596Z","shell.execute_reply":"2024-08-01T23:58:20.261572Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#One hour fifty two minutes just to arrive here. More 2:12 reading papers","metadata":{}},{"cell_type":"markdown","source":"#Acknowledgements:\n\nCyberia https://www.kaggle.com/code/cyberia/eda-adc2024/notebook\n\nBachir https://www.kaggle.com/code/bachrr/gemma2b-finetuned-lora-text2sql","metadata":{}}]}