Замена отсутствующих данных делает модели машинного обучения менее понятными. Вот как…

Введение

Ввод пропущенных значений - важный шаг при работе с реальными данными. Есть несколько общих подходов к решению этой проблемы. Некоторые из популярных методов включают удаление экземпляра с отсутствующими значениями, создание отдельной категории для отсутствующих элементов или использование средних значений. Они не обязательно эффективны, и существуют другие алгоритмы, такие как KNN, MICE, MissForest или GANs, которые могут более точно вменять недостающие значения.

Во время моей исследовательской стажировки я заметил, что классификаторы, обученные на наборах данных, которые были вычислены с помощью KNN, MICE и MissForest, достигают более высокой точности, обычно на 3-4%. Это довольно существенный прирост точности, и существует несколько существующих библиотек Python, реализующих эти алгоритмы. Звучит неплохо, правда?

К сожалению, существует компромисс между получением более высокой точности и объяснимыми результатами. В этой статье мы рассмотрим, как вменение отсутствующих данных влияет на объяснимость моделей машинного обучения. Часть моей статьи будет основана на этой исследовательской статье [1]. Давайте начнем!

Что мне нравится в Towards Data Science, так это то, что она привлекает множество единомышленников, увлеченных искусственным интеллектом и наукой о данных. Поэтому было бы здорово связаться с вами в Linkedin!

Отсутствующие данные, которые не следует вменять

Хранение информации об отсутствии иногда может быть полезно для модели машинного обучения. Это также может сделать модель более объяснимой.

Представьте себе набор данных с информацией о пациентах больницы, которые были проверены на наличие определенного заболевания.

Пациент 3 не был диагностирован как больной. Вот почему врач решил не проводить дальнейшие лабораторные тесты на Симптом_A и Симптом_B. Отсутствие здесь имеет значение: Пациент не болен, поэтому другие измерения отсутствуют. Вводить значения, как на рисунке ниже, для Пациента 3 неправильно и не имеет смысла.

Чтобы сохранить информацию о недостающих значениях, было бы неплохо сразу закодировать данные и добавить новые функции, чтобы указать на наличие пропущенных значений, как показано ниже. (нам, вероятно, следует удалить Symptom_A_No и Symptom_B_No, чтобы избежать ловушки фиктивной переменной, но давайте оставим ее здесь для простоты)

Мы должны быть осторожны и подумать, прежде чем имплантировать наборы данных в первую очередь. Имеет ли смысл вменение? Произойдет ли значительная потеря информации, если мы это сделаем? Если да, то в этом случае будет сложнее объяснить результаты модели машинного обучения, обученной на этих вмененных данных.

Важно отметить, что точность моделей машинного обучения, вопреки нашей интуиции, может получить более низкую оценку точности, если мы сохраним информацию об отсутствии в качестве другой функции. Это зависит от характера алгоритма оценки и от того, как они обрабатывают данные на этапах обучения и тестирования. Это также компромисс между объяснимостью и точностью, о котором я упоминал в начале статьи.

Распределение недостающих данных может быть разным

Данные могут отсутствовать 3 разными способами: MCAR (отсутствует случайно), MAR (отсутствует случайно) и NMAR (не отсутствует случайно). Подробное объяснение их всех выходит за рамки данной статьи (посмотрите эту статью, если хотите узнать больше). Вместо этого я сосредоточусь на NMAR, который обычно оказывает наиболее негативное влияние на объяснимость.

NMAR - это тип отсутствия данных, при котором недостающие данные зависят от самой функции. Например, представьте себе исследование доходов населения США:

Некоторые участники опроса не раскрывают свою зарплату. Однако мы каким-то образом получили эти данные из конфиденциального источника. Полный (истинный) набор данных без пропущенных значений выглядит следующим образом.

Теперь мы знаем, почему не указали зарплату! Они просто зарабатывают больше, чем большинство людей, и, вероятно, не хотели делиться этой информацией с другими людьми. Это именно, что такое NMAR. Отсутствие данных связано с самой функцией. В этом случае люди, чей доход превышает определенный порог, не раскрывали информацию о их доход в опросе.

В случае с NMAR расчет данных может быть действительно неправильным. Проблема в том, что алгоритмы вменения не знают, как распределяются эти пропущенные значения. Они будут считать, что это похоже на распределение всего набора данных, что явно неверно!

Давайте посмотрим, как простое вменение среднего значения обрабатывает этот случай:

В случае NMAR, объяснимость этих условных расчетов пострадает, и точность модели может снизиться. Как говорят специалисты по данным: «Мусор на входе, мусор на выходе».

Резюме

Вменение данных - очень важный шаг в конвейере машинного обучения, поскольку он влияет на качество данных. Существуют разные способы вменения данных, которые могут сделать модели машинного обучения менее объяснимыми. Иногда информацию об отсутствующих значениях следует сохранить, создав дополнительную функцию, указывающую, когда значения отсутствуют. NMAR, тип отсутствия данных, может сделать вменение менее объяснимым и неправильным. Также хорошо помнить, что более сложные алгоритмы вменения, как правило, вменяют данные менее объяснимым образом, что влияет на объяснимость модели машинного обучения.

использованная литература

[1] https://arxiv.org/pdf/1907.12669.pdf

[2] Центр ИТ-инноваций