Задача #184
Автор:Carina Brebenaru
Сложность
Ваш лучший результат
Н/Д
В далекой вселенной Galactic Wars постоянно конфликтуют две одинаково сильные армии: Джедаи и Имперцы (Калмтруперы). Один из самых могущественных Джедаев, Анаклин Граундвокер, оказался втянут в миссию с многочисленными сражениями, и на этот раз он не уверен, что выберетcя живым. Палме, его подруга, просит тебя о помощи: она хочет предсказать, будет ли Анаклин победителем, основываясь на различных факторах сражений, таких как оружие, броня, сила, а также моральное состояние (уверенность в себе).
К твоему счастью, один из Калмтруперов (из лагеря Имперцев) обронил набор данных со своим снаряжением, и ты можешь построить модель, способную предсказать победу Анаклина.
Ты нашел два файла:
train.csv — данные о предыдущих боях, содержащие информацию о победителеtest.csv — данные о будущих битвах, без указания победителя| Название | Тип | Описание |
|---|---|---|
| FightID | int | Уникальный ID боя |
| weapon_jedai | object | Оружие Джедая |
| armour_jedai | object | Защита брони Джедая (%) |
| weapon_calmtrooper | object | Оружие Калмтрупера |
| armour_calmtrooper | object | Защита брони Калмтрупера (%) |
| injuries | object | Раненый боец |
| number_of_fights | float | Количество проведенных боев |
| force_level | float | Уровень силы оппонента |
| accuracy_calmtrooper | float | Точность стрельбы Калмтрупера |
| fight_planet | object | Планета, на которой происходит бой |
| weather_conditions | object | Погодные условия |
| surprise_attack | bool | Внезапные атаки |
| moral_jedai | float | Моральное состояние Джедая |
| moral_calmtrooper | float | Моральное состояние Калмтрупера |
| winner | int | Победитель боя |
Палме, известная своей требовательностью (и заметившая твои навыки), просит тебя решить 4 задачи.
Подзадачи 1 и 2 включают анализ и обработку наборов данных.
Подзадачи 3 и 4 оценивают производительность модели присвоения меток и модели классификации соответственно.
Чтобы хорошо подготовиться к бою, Анаклину нужно знать, как одеться.
Посчитай, сколько боев из test.csv происходят на планетах типа "Nabira" при погодных условиях (weather_conditions) типа снегопад Snow.
Ты обнаружил, что Калмтруперы расставили ловушку: на самом деле они больше не используют то оружие, о котором знал Анаклин.
Замени в наборе данных train.csv все вхождения оружия Experimental Weapon на Double Blaster и выведи количество значений, которые пришлось заменить.
(Для следующих подзадач в test.csv эта замена уже была произведена)
Анализируя предыдущие бои, Анаклин заметил, что их можно разделить на 3 стиля боя (0, 1, 2), используя навыки Джедая и оппонента (сила, мораль, броня, опыт и т.д.).
Для каждого боя из test.csv определи соответствующий стиль боя.
Метрика оценки
Для оценки распределения боев используется Adjusted Rand Index (ARI), который измеряет сходство между двумя разделениями, корректируя случайное совпадение.
Коэффициент ARI для двух разделений определяется как:
ARI = (RI - E[RI]) / (max(RI) - E[RI])
где:
Если полученное число близко к 1, это означает, что разделение на типы боев было выполнено умело и границы между характеристиками боев были определены верно. Жизнь Анаклина зависит от знания этих типов сражений, поэтому максимальный балл за эту подзадачу дается только в том случае, если значение метрики >= 0.95.
Имея в распоряжении набор данных, описывающий индивидуальные бои между Джедаем и Калмтрупером, построй модель классификации для предсказания результата боя для каждой строки из test.csv.
Целевая переменная: winner (0 — побеждает Калмтрупер / 1 — побеждает Джедай).
Оценка производится с использованием метрики F1 macro.
F1 macro рассчитывается следующим образом:
Эта метрика одинаково учитывает оба класса и штрафует модели, которые правильно предсказывают только мажоритарный класс.
Пороги оценки:
Финальный файл должен быть в формате CSV с названием submission.csv и содержать ровно 3 колонки:
subtaskID — номер подзадачи (1, 2, 3, 4)datapointID — ID каждого бояanswer — соответствующий ответ для данной подзадачи и datapointIDПримечание: Для подзадач 1 и 2, требующих одного ответа, выводится одна строка для каждой подзадачи с datapointID, равным 1 и 2 соответственно.