{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# IceCube - Нейтрино в глубоком льду","metadata":{}},{"cell_type":"markdown","source":"## Введение","metadata":{}},{"cell_type":"markdown","source":"Целью данной работы является предсказание направления движения нейтринной частицы. Необходимо разработать модель на основе данных детектора «IceCube», который наблюдает за космосом из глубины льда Южного полюса.\n\nЭта работа может помочь ученым лучше понять взрывающиеся звезды, гамма-всплески и катаклизмы, связанные с черными дырами, нейтронными звездами и фундаментальными свойствами самого нейтрино.","metadata":{}},{"cell_type":"markdown","source":"## Предварительная обработка данных","metadata":{}},{"cell_type":"markdown","source":"Импортируем необходимые библиотеки","metadata":{}},{"cell_type":"code","source":"import pandas as pd","metadata":{"execution":{"iopub.status.busy":"2023-02-01T16:45:48.593527Z","iopub.execute_input":"2023-02-01T16:45:48.594085Z","iopub.status.idle":"2023-02-01T16:45:48.601824Z","shell.execute_reply.started":"2023-02-01T16:45:48.594039Z","shell.execute_reply":"2023-02-01T16:45:48.599484Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Чтение данных","metadata":{}},{"cell_type":"code","source":"train_dir = '/kaggle/input/icecube-neutrinos-in-deep-ice/train/'\ndf = pd.read_parquet(f'{train_dir}batch_1.parquet')","metadata":{"execution":{"iopub.status.busy":"2023-02-01T16:45:48.605008Z","iopub.execute_input":"2023-02-01T16:45:48.605736Z","iopub.status.idle":"2023-02-01T16:45:50.043563Z","shell.execute_reply.started":"2023-02-01T16:45:48.605681Z","shell.execute_reply":"2023-02-01T16:45:50.042612Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Обзор данных","metadata":{}},{"cell_type":"code","source":"display(df.sample(15))\nprint()\ndisplay(df.info())\nprint()\nprint('Количество дубликатов в данных:', df.duplicated().sum())","metadata":{"execution":{"iopub.status.busy":"2023-02-01T16:45:50.044995Z","iopub.execute_input":"2023-02-01T16:45:50.045388Z","iopub.status.idle":"2023-02-01T16:46:04.616804Z","shell.execute_reply.started":"2023-02-01T16:45:50.045345Z","shell.execute_reply":"2023-02-01T16:46:04.615373Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"raw","source":"Рассмотрим подробнее данные тренировочного датасета (исследовательские данные), выгрузим отчёт в формате `html`","metadata":{}},{"cell_type":"code","source":"import pandas_profiling\nprofile = df.profile_report(title='Pandas batch_1 Report', progress_bar=True)\nprofile","metadata":{"execution":{"iopub.status.busy":"2023-02-01T17:12:23.206351Z","iopub.execute_input":"2023-02-01T17:12:23.207507Z","iopub.status.idle":"2023-02-01T17:20:17.127757Z","shell.execute_reply.started":"2023-02-01T17:12:23.207413Z","shell.execute_reply":"2023-02-01T17:20:17.126423Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# сохраним данные в файл для более удобного доступа к ним\nprofile.to_file('batch_1.html')","metadata":{"execution":{"iopub.status.busy":"2023-02-01T17:22:08.134821Z","iopub.execute_input":"2023-02-01T17:22:08.135351Z","iopub.status.idle":"2023-02-01T17:22:08.193820Z","shell.execute_reply.started":"2023-02-01T17:22:08.135309Z","shell.execute_reply":"2023-02-01T17:22:08.192207Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Предварительные выводы","metadata":{}},{"cell_type":"markdown","source":"В данных отстутствуют пропуски.\nЕсть явные дубликаты данных.\nСудя по описанию, если в колонке `auxiliary` значение `True`, то такой импульс не был полностью оцифрован и мог возникнуть, в результате шума.\nУдалим явные дубликаты и данные со значением`True` в столбце `auxiliary`, также удалим и сам столбец `auxiliary` во всех файлах тренировочных данных.","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Выполнять такую обработку не стал, так как не уверен в её \"правильности\" и нет понимания как это делать лучше - обработать каждый такой файл или объединить их в единый датафрейм и обработать. Всякую \"красоту\" в виде расположения датчиков, прохождения нейтрино и т.п. можно скопипастить с других ноутбуков.\nПока так...","metadata":{}},{"cell_type":"code","source":"df_sample = pd.read_parquet(f'/kaggle/input/icecube-neutrinos-in-deep-ice/sample_submission.parquet')","metadata":{"execution":{"iopub.status.busy":"2023-02-01T17:32:48.096260Z","iopub.execute_input":"2023-02-01T17:32:48.096726Z","iopub.status.idle":"2023-02-01T17:32:48.126640Z","shell.execute_reply.started":"2023-02-01T17:32:48.096692Z","shell.execute_reply":"2023-02-01T17:32:48.125443Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_sample","metadata":{"execution":{"iopub.status.busy":"2023-02-01T17:33:18.560015Z","iopub.execute_input":"2023-02-01T17:33:18.560509Z","iopub.status.idle":"2023-02-01T17:33:18.574310Z","shell.execute_reply.started":"2023-02-01T17:33:18.560474Z","shell.execute_reply":"2023-02-01T17:33:18.572449Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_meta = pd.read_parquet(f'/kaggle/input/icecube-neutrinos-in-deep-ice/train_meta.parquet')","metadata":{"execution":{"iopub.status.busy":"2023-02-01T17:34:09.157671Z","iopub.execute_input":"2023-02-01T17:34:09.158236Z","iopub.status.idle":"2023-02-01T17:34:58.665599Z","shell.execute_reply.started":"2023-02-01T17:34:09.158194Z","shell.execute_reply":"2023-02-01T17:34:58.664426Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_meta","metadata":{"execution":{"iopub.status.busy":"2023-02-01T17:35:04.009789Z","iopub.execute_input":"2023-02-01T17:35:04.010247Z","iopub.status.idle":"2023-02-01T17:35:04.033935Z","shell.execute_reply.started":"2023-02-01T17:35:04.010212Z","shell.execute_reply":"2023-02-01T17:35:04.032111Z"},"trusted":true},"execution_count":null,"outputs":[]}]}