Признак для корня дерева выдач
Условие
В библиотечном каталоге собраны сведения о выдачах книг. Для каждой выдачи известны жанр книги, категория читателя, формат книги и результат: была ли книга выдана.
Требуется выбрать признак для корня решающего дерева. Рассматриваются три категориальных признака: genre, audience, format. Качество разбиения измеряется уменьшением неоднородности Джини.
Для набора строк D с долями классов p_0 и p_1 неоднородность Джини равна G(D) = 1 - p_0^2 - p_1^2. Для признака A набор разбивается на группы D_v по всем значениям v, которые встретились в данных. Уменьшение неоднородности равно Gain(A) = G(D) - sum(|D_v| / |D| * G(D_v)). Следует вывести имя признака с наибольшим значением Gain.
Значение - означает, что соответствующее поле каталога не заполнено. Оно считается обычным отдельным категориальным значением признака. Пустые группы не создаются и в формуле не участвуют.
Если наибольшее значение Gain достигается у нескольких признаков, выводится лексикографически меньшее имя признака.
Формат ввода
В первой строке дано целое число n — количество записей о выдачах.
В следующих n строках даны четыре значения через пробел: genre, audience, format, issued.
Значение issued равно 0, если книга не была выдана, и 1, если книга была выдана.
Формат вывода
Выведите одно имя признака: audience, format или genre.
Округление не применяется, так как выводится точное имя признака.
Ограничения
1 <= n <= 4000.
Каждое из полей genre, audience, format является строкой из строчных латинских букв или символа - длиной от 1 до 12.
Значение issued равно 0 или 1.
Во входе нет пропусков строк и дополнительных полей.
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Перечневые олимпиады: что это и что дают — весь перечень Минобрнауки: уровни, срок диплома, разрезы по предметам и классам
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать