{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.11","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"nvidiaTeslaT4","dataSources":[{"sourceId":105399,"databundleVersionId":12733338,"sourceType":"competition"}],"dockerImageVersionId":31041,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"<div style=\"background-color: #d3d3d3; padding: 10px; border: 5px solid #FF845E; border-radius: 10px; text-align: center;\">\n    <span style=\"color: blue; font-size: 24px; font-weight: bold; font-family: Arial, sans-serif;\">✔️ Welcome</span>\n</div>","metadata":{}},{"cell_type":"markdown","source":"## More information about metric: [Metric](https://www.kaggle.com/competitions/aeroclub-recsys-2025/discussion/585621)\n\n## More information, if you have pd.read_parquet problem: [Problem](https://www.kaggle.com/competitions/aeroclub-recsys-2025/discussion/585622)","metadata":{}},{"cell_type":"code","source":"!pip install xgboost > /dev/null","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:39:34.718188Z","iopub.execute_input":"2025-06-21T23:39:34.718477Z","iopub.status.idle":"2025-06-21T23:39:38.506705Z","shell.execute_reply.started":"2025-06-21T23:39:34.718457Z","shell.execute_reply":"2025-06-21T23:39:38.505620Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"import os\nimport warnings\nimport numpy as np\nimport pandas as pd\nimport polars as pl # read train -> pd\nimport xgboost as xgb\n\nfrom sklearn.metrics import ndcg_score\nfrom ydata_profiling import ProfileReport # Exploratory Data Analysis(EDA)\nfrom sklearn.model_selection import train_test_split\nwarnings.filterwarnings(\"ignore\")","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:39:38.508839Z","iopub.execute_input":"2025-06-21T23:39:38.509113Z","iopub.status.idle":"2025-06-21T23:39:44.062106Z","shell.execute_reply.started":"2025-06-21T23:39:38.509087Z","shell.execute_reply":"2025-06-21T23:39:44.061420Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"Submission example","metadata":{}},{"cell_type":"code","source":"pd.read_parquet('/kaggle/input/aeroclub-recsys-2025/sample_submission.parquet').head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T22:21:42.013915Z","iopub.execute_input":"2025-06-21T22:21:42.014513Z","iopub.status.idle":"2025-06-21T22:21:43.577170Z","shell.execute_reply.started":"2025-06-21T22:21:42.014486Z","shell.execute_reply":"2025-06-21T22:21:43.576503Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train = pl.read_parquet('/kaggle/input/aeroclub-recsys-2025/train.parquet')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:39:44.062861Z","iopub.execute_input":"2025-06-21T23:39:44.063509Z","iopub.status.idle":"2025-06-21T23:39:56.331666Z","shell.execute_reply.started":"2025-06-21T23:39:44.063489Z","shell.execute_reply":"2025-06-21T23:39:56.330885Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:21:23.809436Z","iopub.execute_input":"2025-06-21T23:21:23.809663Z","iopub.status.idle":"2025-06-21T23:21:23.838895Z","shell.execute_reply.started":"2025-06-21T23:21:23.809646Z","shell.execute_reply":"2025-06-21T23:21:23.838344Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train = train.select(['ranker_id', 'taxes', 'totalPrice', 'selected'])\ntrain = train.to_pandas()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:39:56.333365Z","iopub.execute_input":"2025-06-21T23:39:56.333596Z","iopub.status.idle":"2025-06-21T23:40:01.241452Z","shell.execute_reply.started":"2025-06-21T23:39:56.333578Z","shell.execute_reply":"2025-06-21T23:40:01.240808Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"ProfileReport(train, title=\"EDA\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T22:37:27.246116Z","iopub.execute_input":"2025-06-21T22:37:27.246410Z","iopub.status.idle":"2025-06-21T22:39:19.382227Z","shell.execute_reply.started":"2025-06-21T22:37:27.246389Z","shell.execute_reply":"2025-06-21T22:39:19.381119Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test = pd.read_parquet('/kaggle/input/aeroclub-recsys-2025/test.parquet')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:40:01.242119Z","iopub.execute_input":"2025-06-21T23:40:01.242326Z","iopub.status.idle":"2025-06-21T23:40:15.185955Z","shell.execute_reply.started":"2025-06-21T23:40:01.242300Z","shell.execute_reply":"2025-06-21T23:40:15.185260Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"test.head()","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"code","source":"train['selected'].unique()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:02:53.185382Z","iopub.execute_input":"2025-06-21T23:02:53.185607Z","iopub.status.idle":"2025-06-21T23:02:53.296334Z","shell.execute_reply.started":"2025-06-21T23:02:53.185589Z","shell.execute_reply":"2025-06-21T23:02:53.295790Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# set(train['Id']) & set(test['Id']) # return set() =(","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T22:22:51.542096Z","iopub.execute_input":"2025-06-21T22:22:51.542614Z","iopub.status.idle":"2025-06-21T22:22:51.546270Z","shell.execute_reply.started":"2025-06-21T22:22:51.542590Z","shell.execute_reply":"2025-06-21T22:22:51.545331Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Preparing for coding","metadata":{}},{"cell_type":"code","source":"train['ranker_id'] = train['ranker_id'].astype('category')\n\nX = train[['ranker_id', 'taxes', 'totalPrice']]\ny = train['selected']\n\ntrain_categories = X['ranker_id'].cat.categories","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:40:15.186680Z","iopub.execute_input":"2025-06-21T23:40:15.186886Z","iopub.status.idle":"2025-06-21T23:40:17.052870Z","shell.execute_reply.started":"2025-06-21T23:40:15.186869Z","shell.execute_reply":"2025-06-21T23:40:17.052329Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### Creating an array of group sizes for a training dataset","metadata":{}},{"cell_type":"code","source":"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n\nX_train['ranker_id'] = X_train['ranker_id'].cat.codes\nX_test['ranker_id'] = X_test['ranker_id'].cat.set_categories(train_categories, ordered=True)\nX_test['ranker_id'] = X_test['ranker_id'].cat.codes\n\ntrain_group_sizes = X_train['ranker_id'].value_counts().sort_index().tolist()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:40:17.053655Z","iopub.execute_input":"2025-06-21T23:40:17.053916Z","iopub.status.idle":"2025-06-21T23:40:19.364568Z","shell.execute_reply.started":"2025-06-21T23:40:17.053893Z","shell.execute_reply":"2025-06-21T23:40:19.363966Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### XGBoost Training","metadata":{}},{"cell_type":"code","source":"model = xgb.XGBRanker(\n    objective='rank:pairwise',\n    n_estimators=333,  # Number of trees\n    tree_method='gpu_hist',\n    predictor='gpu_predictor',\n    gpu_id=0,\n    max_depth=8,       # Max depth\n    learning_rate=0.01,\n    reg_alpha=0.3,     # L1 regularization\n    reg_lambda=0.2,    # L2 regularization\n)\n\nmodel.fit(X_train, y_train, group=train_group_sizes)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:45:50.799640Z","iopub.execute_input":"2025-06-21T23:45:50.800322Z","iopub.status.idle":"2025-06-21T23:46:55.718699Z","shell.execute_reply.started":"2025-06-21T23:45:50.800294Z","shell.execute_reply":"2025-06-21T23:46:55.717896Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"###  prediction and evaluation","metadata":{}},{"cell_type":"code","source":"y_scores = model.predict(X_test)\ny_ranks = y_scores.argsort().argsort() + 1\n\ny_ranks[:5]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:47:02.071075Z","iopub.execute_input":"2025-06-21T23:47:02.071374Z","iopub.status.idle":"2025-06-21T23:47:03.362064Z","shell.execute_reply.started":"2025-06-21T23:47:02.071351Z","shell.execute_reply":"2025-06-21T23:47:03.361152Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"true_ranks = y_test.values.reshape(1, -1)\npredicted_ranks = y_ranks.reshape(1, -1)\n\nndcg = ndcg_score(true_ranks, predicted_ranks)\nprint(f\"NDCG Score: {ndcg:.2f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:47:03.363403Z","iopub.execute_input":"2025-06-21T23:47:03.364033Z","iopub.status.idle":"2025-06-21T23:47:04.974554Z","shell.execute_reply.started":"2025-06-21T23:47:03.364014Z","shell.execute_reply":"2025-06-21T23:47:04.973805Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"# del train","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"### test predictions and save submission","metadata":{}},{"cell_type":"code","source":"submission = pd.DataFrame({\n    'Id': test['Id'],\n    'ranker_id': test['ranker_id']\n})\n\ntest['ranker_id'] = test['ranker_id'].astype('category')\ntest['ranker_id'] = test['ranker_id'].cat.set_categories(train_categories, ordered=True)\ntest['ranker_id'] = test['ranker_id'].cat.codes\n\ntest_scores = model.predict(test[['ranker_id', 'taxes', 'totalPrice']])\ntest_ranks = test_scores.argsort().argsort() + 1","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:41:14.994139Z","iopub.execute_input":"2025-06-21T23:41:14.994786Z","iopub.status.idle":"2025-06-21T23:41:17.681078Z","shell.execute_reply.started":"2025-06-21T23:41:14.994761Z","shell.execute_reply":"2025-06-21T23:41:17.680407Z"}},"outputs":[],"execution_count":null},{"cell_type":"code","source":"submission['selected'] = test_ranks\nsubmission.to_parquet('submission.parquet', index=False)\nsubmission.head()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:51:19.726623Z","iopub.execute_input":"2025-06-21T23:51:19.726932Z","iopub.status.idle":"2025-06-21T23:51:21.160471Z","shell.execute_reply.started":"2025-06-21T23:51:19.726911Z","shell.execute_reply":"2025-06-21T23:51:21.159791Z"}},"outputs":[],"execution_count":null},{"cell_type":"markdown","source":"0 score: ![image.png](attachment:75e5b0a6-43df-482e-9d28-7953a71bc06c.png)","metadata":{},"attachments":{"75e5b0a6-43df-482e-9d28-7953a71bc06c.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAdcAAABqCAYAAADupxveAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAB8KSURBVHhe7Z1Njx1FloZj5gfUzrVpkAbKLSGVJT68Km+6Z5gysMdttSz1AsYbhFgiq+Rd0+4SS4R6Q8MCyerG5T0NHmaaBVUr8yFRUktUDQvoTXlF/QFPnBMRmedERkTmzRs36178PlIIfONmZnycOCci8la8//JvT5x/aAAAAABQjX/1/wUAAABAJRBcAQAAgMoguAIAAACVQXAFAAAAKoPgCgAAAFQGwRU4XvnQfPN/fzO7/p8AAM312/fN9/du+X9Nx+6978z3PWPzrMoWcGV06d7b/sMlgcr2ze1X/b+mA8H15wwHzNboOX39obnuswEAoAY3tn9pnnhy1+yf+g+q8Kq5/fXyBeuhILj+nPngd+bpJ63Rv3VgTs2x+Yj+/5nfmfd8NgBg+XGB60Vzw/8brAYIro8ycmV7c8us+Y8BWHne/htvkya3K+MdHbGbQ9+/d1vk53Z6wj1EPm/NhuvkNi59135vV+QP2qaU5UyUQz5vZ6vS6KV2C8+0SZUzarfhK8pb5p64Lq677KPQbq5uN8wlW63zL4e8++b2K+6aWe55dcN/ODEIro8qNFBubppv36JZcVjdAvAzYuOKufiVt++7x+b8ZR+gwo6OTx892DK/EYHi/FYYF7tm3+g8Ro6dsBNkg9LO+ifNPZ+4a8xV+Q50bcu8ZP7k8uxYM1tX+n/fEMppyx5DwWdn89Dc8s+7dVBj9L5qbl8+Z/aDT7Dp6Wvv+zwbzG6um4/95088uWfMy0N+o0Fbuy+Yk+aeu+bbzdeaIElB8Oq5g6YeYYX+3rWL/F3aZj66G/Iummsf0FUD7mn2fJ7t327zTQKC6yPK9ec3zdrxJ95YAfgZcnpg7rzp///NF8UrEb3qoZXN+i/alc/pwZ/8uHjf/PBA51HA/p6DTHD0jt1n7U0oL9z3Zfvvc4+J1eax+TgEKg6a82zzvmp+vblmjj6t/YqH6rtmLt1MrKzffs6cNxvmatNuV+y/z5nHm5Vkhld+ZS6suXu662g1umbWn6LMW+bixqnZf2fGegy55192+KtnCYIrAOCRYveeDQzHI1c29rpbB+fM1cQ2bbvC8mkFf9/g3u/+0rxrXnOBS66+RZu5pCcYWewkp12ZurQdJj1jWcQ9K4Pg+ojy3j/tlHzjOb+tQ1s+eOcKHgVeNY+fs775xEfUVz40L834To62LGkreUcEnuOTU3N+0DZpDdyK+vyz/vm0JV3rnauHt2XpVVFYff/jxJzalfnMv9z94EdzsrZlXk++Y94x94/tCvS3uT8hSuwcEMV7HpuT0zVz4XmXR9vneOcK6hN+gMCB02/phBn3my/aGXvY5qH3F3vmiC8C4OfM++bap8dmbeuGW5ndXDffjnhfeWN71+yfo21gF1A54DbjyaVBP1oqEX5cRFvMNpjs0P/78Xtj247XsA19+cTcSryXnR29Xf49vVcOW7a0lU3vrZsfF9nUrN7dn8zEP0BygXjHbPM7Zt/enNpJSNuO3Tzixl/kteEHTaV72v59p82j9+B13kfPDiTnAAAAgMpg5QoAAABUBitXAAA4A/jPaXLvSunHQ9tn/4tXMB4EVwAAAKAy2BYGAAAAKoPgCgAAAFQGwRUAAACoDIIrAAAAUBkEVwByKIWQqU7fWRB8oMiUdaADCaSKiaSUN5YR95y6f8OhLpxq1x8sGz3BtT2xo3PslTJMm5QKfjixI39KSZBLSh2nlc2Tz2xOB4lOFQmpKY/On/vUlEBTlnhQtnV3KRpE2esCvryJs0tLeaHNOPm6q8+a1JZH50/gXJTN6HbRslOi72M768tXdpin2zaxs7Nt/bJUCKGD1ku2Fve7T6KvVB0HlrMl1fc9tpYlUQ9RnrxdjH3eAGQ/Jm1/VnRZu+M+1b996HaL76narVMHW543tsxJR+GF0GV1th23tU9V2mYMeZvp8zOlcS/rGbdn1icQpXE/0ifUJh9ceZaVOxaPDNM48W1OdITVC77RqBNumPVPnVxQElv5nc0H5iiVn8njDpTPbA7F3jHbTTlcooO43dmh1HFXzPrBrs8jaaIb3aA9I1yWzJFj12+/Zi4chufZdPdBc3Zm6TqHK685TuXn88gIpfxU+Ps4J9vkP6PEsnIPzA80qKmdtx607UkSWYscuGRP0pm9dWgu3Gwddzgw3JVFyIORmkn4nBPZ46k5+QdfFuXTkXDBDgegDiKPDiF/5TGzHtqqoWRr75trz+g8PnbtwY/OTm17tzJY7ui64XaY63v9zFsHpnBOa8ypkhZr/qayaBfzPC9PfmyPR41DPiqvlSRjkv1boseXsN8SEnCHm+rsYWM2zPqasNsG5y+lz3AH0PfY05mQtpminymO+3KsyPqEYvyxzOMTKpIPriyLlFM9oMORN1q9wrevmEtrwVCdA8orFFDD2MZ+Z8+c+E9acnkksWRsBw2YXdrOfGkjyDuRQQupJ2uwfz887R4EPSNsTBkHQAfirzUD2Q7IyxvNIeGl6whyCJce7Jntr/wHgnweSSwdm48GOKTd324Zc7DHbXj9F+fMqf9/5s0vzdHaum2x+dEzTj+QnlrXEncffG6+PU1LVlHZck7k+u0XzPmcVF7CYaqyDJk8hK07eR6zTckdD2VrMbfMb2xzN9JXNOCbQwHowHJ9ILme/etdhJJdSDbW19oD6YlQF0oDhRlmsYvO82j8NnUgSTJJLq88tnW7xP2Qfx6NtUaLlG3NS5L19a9sM0qNzZR8iRvnrQSck4RzwhihjFQ+IZPW+M7nWKGn1U3NEdmTqjslbTNnifQz5XHfFytatE8oxZ+ImSdR9Rj5ztXNqj4y4uDogfqEJPe03uglarJ5rN/3wJjnxUDLLPVVx/pOuNisEMhA18za+gJlEsiJ8uyMykmzMik4XMAO6tdpxZA6laWUR4Pz9MQ8LoLIkEDAk4DNXzXBhoPWEH3GHiiYpcSPnapGUOGx8IAIGoxE6yx45ZSqa8fBOJoAah3myd3WDskxv3TSrghoNaGUNKT+ZrCnIFDNs287afHXpvpQ25qmOAmw9SDNyW8/8/ekVU9OaLvU94QIBtTu74Zy0udFMXyph9lu1fXaRe553H92dd1se8odr0Jez9jWqyI76W5ExkvPi+BnHJv75MT7+jfk+9QKqZd8iVyVUrlo3FN5qN3Cbgf9W6z8fH+SDuzpyWON7ee22rv2pHdRSAbvpdS4r0raZhSRn+kf9yVyPqE//uR8wpSMDK60RdKqvbP80pCZk98aSwabUh6zYS4EJX/eBkhsq8UdS53wzoFZb5QcnjMnB6fRbLsyth6sJkGDyA5genYy2Clse75B16SMoJTnWdsy61+FgUYOKNoCs3QCgZ0EuH5zbfO6ObSDf94ZXkH82Dqtd0kH0z/v+2dPzP6p3CYTzoKCS8KecgGr3T7aM8a2t7MLt3po1E9soqPmwsQqdtq0TdvfT4KOrUnSkwAHjR09icwLbQ/oexEMeCvSr7TKYvixYzbWafr27rOLzPPcJE+Ik0tKeUxhbNN4Cu3Cqz8f6HvvGbAOeiYH2zp0Sq2Q+gBf8hRNPOhV2mzaomtb6+a+b1N+jfRGvMOSsifng0M5pW0vhoLNCDp+pnfcl8j5BFf3UvxJ+4RpGRdc/UwwzCRYNkjN6lLYBrksnYiQJ/r6v83/ZvOCoemg2dX5I0eUWEmomeiL5of1NXPyz1wAnx+eiQbHSc++e6xWAkn8bK6ZFQqJqXv/U8gL7a2cjNMzVDNDmrgkAoF8p/H0Z7Y97Qp4gdMOHdC2f7Sz/Uwwf3PP2lO0irbB7PVswArsmDvW4bV2Eb0j4uemrnfbtMPJ2JrHiXGnAhs5Bfd+LZ5EJoW2S3aRGGvvXftk1Nb+e58dqlXtULsY+7wuubFtA52tc9s2hdVpEgqUbnU7NNgVhdSzvsSNuUsvr5uPw6u0GbYj1TY8rfSiNk3ZE78qMO0O0dSyarHNMBk/M3jcl5A+Yab4E/uE6Ri5ciWk86NtEf+/WeIX9NQg3qk885/m37N51snwPr3eklHbagQ7otxKwkHbhLSV1T/bnQ85g+R3BX2oF/A20Q+evNL+9n8U8qge/E5s0/w69IXcAmPcpEYN4A5+dt+8MxpLn/hxgIIMrd4yZeK+1AOQZsT5lVjAbdU5h0dO2palswpIwKvQyJ5KlGzN36s7CSBHnw6sWaHtkl0kbJhX9j4QziKG79r2y0RflO1CPs8FhWCHrn+bd6ClvNLY5gDVrnLcFrWndE/C9sM3MwZWus9QIXXtS9z7VyPaMN+mmhtf6cm323EQ12Xsid53t+8gnd1PSbd+Q/xMz7gv0fEJQ+OP9AnTUgiu5AxoxuyM1gng+n12XpE9aGfU9jv0KzpnxNSA9JlbfYZtufmW5fGWDA2a6KfsmY6VP4jg91oDfvjTS9iqopWE7Vje8vAr7Fj8l98VhGcWrhvPjtmWfcFb0mILLBsIQv9Smn0rK0de/DjYBaX4XbQsi03xO5RswKJZvbguqgeXxbRbnJSCHaofynCb5X68F1N2IrlJQAgMcps6tA3N7EcJbXMAaa9R9k3bu1kxfN3evL3WrOgLdlF6Hm//0VYh5UW/AC3llca2ve5jmqx5295ZPxx4T98P9r9pce8ctiwFIfWSL+E+DO8AbdJtWiDahudfHIvrcvZEIuKnzU6f7acDPyFYGCWbsWT9TGncl2JFwScU40/ZJ0wJVHEAAACAysyxLQwAAACAFAiuAAAAQGUQXAEAAIDKILgCAAAAlUFwBQAAACqD4AoAAABUBsEVAAAAqAyCKwA51Lm2iROUVgk+AGLKOtAhAJnD3Yt5Yxlxz6n7Vx3CUbv+YNnoCa7tKRmdE5aUYdqkVGraUzlyJ82E005SJzdl8+Qz1Wkr0Wke0UBRJ3Zk1HRmpilLPCjliSSUokGUvS7g65I8TSafp04cEnVUn9uk+mPqwa5sRj9Pn6oi+j62s778gf0bt0u3/ratO2LasZ35xM+M+90n0Vfz2WGq73tsLUuiHlmbkXY69nkDkP2YtP1Z0WXt+qFU//ah2y2+p2q3Th1seVZaLL3F2XG373M+KBDylV8vjd+Cvwgk7xkI/m3msVaHfHDlgsXHpgXIMJdFLJ06W0pP0SHWrfwSXRfUEyjREWWDjpYrwGXJiJ4rkWZKZyiWTn34uvycFXOEZJeSJNPi5dUhe8qKJtNRhf5zSrZ9IJYuyfW9fibE0lvUOHzLFhRi6VVw/vS4ExOyPiiQ9OuFONLjL5hMrHA4/3ZynMychHxwpfMbV0QsXR98Lg9qjqWa6FBw069S0wOrPGQcwFKJpX/wozlZ22o0TOVB6/z/4sxSPjDcOoCystEw9CrU9wvE0oXDgVh6mwex9JURS7dt47SFv/QfBAo+iLFlTfr1Qhzp9Re5ezqCNvidVOZEjHzn6mZVyyKWzkGL9f4oTxzULJ0tDxqbd/egI+lUFXKiSyOWThMdN8Omz+Vh49Ix8qzT5tEqbF5pJroXxNLp2YVJADsjr/xC0Ayc+sY/C2Lp0dgO7WKvg1i6/yDaRVm8WLqdQPC2dsLPF30Qjc+czy/EkR5/UYojNJ60bZ4NI4MrbZF4ZQTbsSmx2iRUaXtNMtiU8pi8oLLaVvJqCZ19/Ztea3GQSO8c8LO8UztzsXQ30N2Wk2szvXrb4H7kAJRz3jPhggbE0tOTAAeNHe0YIJYOsfRlF0sP2+zZeuV8UNGvuzok40jJXxTvafuPYkFhh3AqxgXXmcRqA7YhL0snUkss3TnRozB4rHOgdxPnn7WzX9oWtQP3qpwR0XZD0KBcAEsllu4dkJvB0SzRBhGvgUlb6Wt2FdCurJ2W5SJ1D1VAg1i6/8wBsfTU2CZHCbH0lD3xq4LJxNL9Kr2ZqIot7rDLkPRBJZ9v/XpPHEn7i/I9/8w7Le12P0063Hcr/vhuICNXroR0fmcvli63M1lImHFO8/Tw8+ZdCL8Dbf69GJZKLF0OVB7wDudQxffYkUuR9TFALD3cqzsJIEcPsfROHsTSV0AsXe90uEmOn7hSYMz6oJLPDzY1JI5If1G+53+pHSk/6eDJUu73Q4ujEFzJGVD0d0brRId99OcVWU6slhqCPksJ4I4l3pKhQRMay63ITsT2H7/zE7Oh8M6RypRybjMTtqpoJRFmSX6FHYuFn6lYOq/ixdYKb4/5duM+DO+pbeJt9aFbZ3ni+rc/tAh2QSl+Fx1szaf4HX42YNGsXlwXbclxWSCWbvPiX/3r9uZtuWZFL/OiLc7S83gbLyNeXsorjW17HcTS0/Y0vVh6iYIPKsE+qC+OUIr9xWoAsXQAAACgMnNsCwMAAAAgBYIrAAAAUBkEVwAAAKAyCK4AAABAZRBcAQAAgMoguAIAAACVQXAFIIc6ei9xyMMqwX+jOmUd6O9lc6filPLGMuKeU/ev+jvh6U8MAtPSE1zbPyjvHAKhDNMmcdi2/APg3B/Dhz/ITh0ukc2Tz1R/EC7/8J2SHijNH3/PfWCDoClLPCjlHz9TigZR9rqAr0uyrPk8dSiC6Av1uU26Pwr9uwiUzeh20YdBiPLEdtaXr+wwT9wuXWdn20ZKXvGhFrGd+cTPjPvdJ9FXqo4Dy9mS6vseW8uSqEfWZqSdjn3eAGQ/VhmnuqxdP5Tq3z50u8X3VO3WqYMtz6rruaqxlvGxPrVtk6hHXIds37fXJvsvXGOT9l/6md1rpyEfXHmWFZ/sEiDDzOjwcaW7J6YobGNOpedKDo1OU6l59iaXJaPLGg64DmVZWj3XYv8uAHqedGbQc51hQpPre/1M6Lm2qHEIPdcKaJ/Pp3+F+pX8jKc9H9om0b/5vi/FET8emnuSYEc70evt+4nIB1c6mip7HmNBh887oObItA7USTkdvlzeWD1X77SHHEM2A3ygdMYBrIqea7l/50OvQn2/QM9V2CH0XNs86Lmuhp4r+fW2j+hMZKfcZCn5mSKlvi/EEYo3RggFUBvatr3wvHt+tu8nZuQ7VzerWno917OAnOgK6LkuCgpmfLYzzygpebvo0WeUzgJ6rtBzDfDYDu2iVkSl50VIMYu+/g35PkHPNQ2XuxFA6fcz8oznZrXf0/c55OSbJ182/nxkV/VJyT3Z9xMzMrjSstwfTm07dun1XKfE1mN19FxrAz1XR3oS4KCxoyeR0HOFnuuy67lKyN92J1Y5PxNtb9MrH7GFW+z7Hvh1mA/k6VXyrH1fl3HB1c8Gcjp8aawxZHX4FqTnegasip7rWaACGvRc/WcO9U6KEs38S3aRGGvQc40hp+9Wt0ODneu79l089Fw1FFj53bJcmc7iZ+g1g/9fR67v8zg5xStuV8qP5/Qritn6vjYjV66EdH7Lqud6NsgZ5LLquS4G6LmGe3UnAe3sPg6s0HOFnmuw0eXUc3XwSjEOrIGBfsbZzKH5O43jAX49CQdo8b14/I7q+wVAknPpdOfhdw9jfnr4xe99/t6R/8zx0/4f/XV/fPjFT/5DwXd74b4hue91P8/k/X7fPr1FXxeV9af9h3/weX/YTxTm6I64dkSK6s40z4zrf/Twr4OuE4m+l/o8l6fuK/rIprj+bbv19O/olKu//nxo/3Hivk+X7a+qSePvxGVpn6vbJXFvfqbouya5e7b2rhOXJ2FfSTsU99f1yNw/7vtoTMTPbe9J9aM2Ds+L2ltdJ/Oidul5nqzjd3vUTu31pbzS2FbtcrQ/+J5xezKdtkv0rxpLRw+/sM8IfaH6MNHHuqxxPrVr1J4+qesi2+e8xLN0m9n77tsvpr5XK8V970mPJ9mH0RhMju2W7HWeJj+uv2jX3r6fKEHPFQAAAKjMHNvCAAAAAEiB4AoAAABUBsEVAAAAqAyCKwAAAFAZBFcAAACgMgiuAAAAQGUQXAEAAIDKILgCkEOda7to1ZEFw6fWTFkHOpEqp/dayhvLiHtO3b/cB+F5tesPlo2e4EoG64yhc5apMkyblJoBHUfmPs8dhs6H7afua8nmyWeqA+jbcrokB0pbFkozHc5eoilLPCj18zqDKHtdwNdF1S+Qzwttxkn0hfrcJlX/qZ2Lep5uFyUNZ1PT9+qaAfkDVDWIuF26zs62NcTSbcqPpaoBQvZj0vZnpW/cp/q3D91u8T1Vu3XqYMuz0mLp+b7vjiWdn59UJOqYse+k3+6zmfDcmcdaHfLBlQu2+mLpixDO5bKsulh61IdK/HgRkD1BLN3nUTmvJCeWaXJ9r58JsfSW3nE/w8H6DtcHj65Yer7vtcKUTSznF9rWthsrO4nrovO+00Lq5TjSbzP2+pub5uQ4FWSmIR9cWQFi9cXSqeNbrcY6wrlsTBkHsDJi6dxPbXsq8eM50atQ3y8QSxeKPBBLb/PKY1u3S9wP+edlx31f/8o2o9TYzKMulq7p9n2L1jmmoNzGEVZgGqSkVIojZZshgjb4nW6QmYyR71zdLGblxNKnEM4lJ7qCYula/Hg8FMwglk7PLkwCbD0glu4ZMrZDu9jrIJbuP/DBJ5RzErH0bN8L7HfyE05bj1j1x5IUUi/RYzO8S5Qr34SMDK60RWIbeKXE0q3RR853Idh6rJpYOrVfHWN0QQNi6elJgIPGjp5EQiwdYukrIZae63tBacJJfaknztHWN70OUkLqJXI2Y/uPYkFhh3AqxgVXPxMMjbT8Yuk0YNwsdxajH8OqiaVTYM1qNFZGBTSIpfvPHBBLT41tcpQQS0/ZE78qOAOx9ECy72mBlJtw0iSJF0CFSU5HSL1E2mbcTku73U+TDhdXhgbteoxcuRLS+S2xWDpvZUwTWAOrIpbe/BCqWmCFWHq4V3cSQI4eYumdvNLYZnuFWPqyiKVLVN8ztg/o9yWJMd3uLJZ3D9w9vZB6iYLN6B0pP+ngyVLu90OLo6Dn6mZ9ymB5JeALyTOR1vJOD4LTIEN3K08JBUpt5O579E6ya/yJPBoswkHo+0VlJQfkAwa/A4wHiMgfRVR3prlnXH96r+ONqnidgL5H77FTZUzlqfuKPrLwylQMvKbdovYMdPtpVnL1158P7T+Gy0rbo90BovtX1z1li+G5ul3i6yz8TFqJxA7B3TMVJAkuD70uiVbIcT84WtuI7bQdT4K47+M+JCcintvek+r3iVm/+Zy5z8+L2ltdJ/Oidul5nqzj0d1dc3L5NWPecdeX8uL7SttQ7XJ8YPbPbQ66Z9yejLSrXP+qsXRs9g/O8fYj9YXqw6juhC5rnE/tSlvGoj096rrI9jkvYU+6zWw/HTwwl9a/7H6vFj1979otFUAjW/M4+zZ6fKq6d8cukfNfOb/FfUa/Z1hUuxSAWDoAAABQmTm2hQEAAACQAsEVAAAAqAyCKwAAAFAZBFcAAACgMgiuAAAAQGUQXAEAAIDKILgCAAAAlUFwBSAH/WG8P0ZtatWR6tAf3U9aBzo8IHfkXClvLCPuOXX/ch+E501/HB+Ylp7gSgbrjKFzlqkyTJukKgGfruE+zx2GTidnJO9ryebJZ6pDo9tyuiQGSrGcc9DcNx6Ubd1digZR9rqAr0viUOxSXmgzTqKO6nOb2v7oKeciUH2hn0cn0bR5ou/j/uvLH9i/cbt062/bGmLpNkk7XaDNyH5M2v6s6LJ2/VCqf/vQ7RbfU7Vbpw62PCstlt7i7Ljt++5Y0vmyLp1+KPiE4nXFvHnHWh3ywZVnWasvlq7PZyX1kxnEtDNwWTKi50qkmdLSiqXrs55rCV9nIXuCWLrPo3JCLD1QGttjUePwLVtQiKVXgfrqqjlWMSE+z9fJ+YW2LcSDok8oxZFyjHFlbMc2SaOmAvCiyQdXVoDonoPpWB2xdMXMAyoNG1PGAayOWLqmJH48K3oV6vsFYunifFOIpbd55bGt2yXuh/zzaKw1ZzNDLL0Otm2ctvCX/oM0WnauEA+KPqEUR0p53Xa6aI23V5lsAYx85+pmVasilt44WDugFq7nSk50VcTShSOpJS5MbU33alfLvr0hli6IVJ1o1QOxdF8Wm+KxHdrFXgexdP+BDzChnIsXS7cTCN7W7vGf1j5KYumKXp8wAjnBZlu18eCu7esq0oizMTK40haJV2uwHbvsYulpMe0FYeuxMmLpwpHkxI9nwwUNiKWnJwEOGjsQS9dALH3ZxdLDNntfvUoTzg69PmEO2A97fd0a9xvBuOC6cmLpgVhMuz6rJpYeqCd8nUcFNIil+88cJJmlykk7DCW7SIw1iKXHUKB0q9uhwc71nXhfJysuJhaPlli6X6U3E1WxxS12GXiBNHTV6hnsE4ZCr8Js612Vu6m0/Zyx4UUycuVKSOe3xGLpCmckyfexFVkVsXQJrwrnNkCIpYd7dScB7S5CHFghlg6x9GCjyymWrnc63CTHT1ybyartg4xY+jB6fMJg3ET59PDz5v03l6v593Q8YmLpovzzENWdaZ4Z178VxC5fJ6DvSVFsSSpP3VfXkZxAI/Bsadotas+U+PM4cvXXnw/tP4bLStuj3b4r929clva5ul0SdsHPhFi6apee58k6Qiw9zqd2XWGxdEWiLtxuKbH07hgkXB+XfMLw6wLt9To/OZYmAGLpAAAAQGXm2BYGAAAAQAoEVwAAAKAyCK4AAABAZRBcAQAAgMoguAIAAACVQXAFAAAAqmLM/wOINLU9hoqlhQAAAABJRU5ErkJggg=="}}},{"cell_type":"code","source":"sum(submission['selected'] < 10)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2025-06-21T23:51:34.841051Z","iopub.execute_input":"2025-06-21T23:51:34.841376Z","iopub.status.idle":"2025-06-21T23:51:35.286899Z","shell.execute_reply.started":"2025-06-21T23:51:34.841352Z","shell.execute_reply":"2025-06-21T23:51:35.286330Z"}},"outputs":[],"execution_count":null}]}