Как алгоритмы обучения дерева решений справляются с отсутствующими значениями (под капотом)

21

Какие методы используют алгоритмы обучения дерева решений для обработки пропущенных значений.

Они просто заполняют слот при использовании значения, называемого отсутствующим?

Благодарю.

user1172468
источник

Ответы:

24

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

Реальные подходы к обработке пропущенных данных не используют точку данных с пропущенными значениями при оценке разбиения. Однако когда дочерние узлы создаются и обучаются, эти экземпляры как-то распределяются.

Я знаю о следующих подходах к распространению экземпляров отсутствующих значений на дочерние узлы:

  • все идет к узлу, который уже имеет наибольшее количество экземпляров (CART, это не основное правило)
  • распределить по всем дочерним элементам, но с уменьшенными весами, пропорциональными количеству экземпляров каждого дочернего узла (C45 и другие)
  • распределить случайным образом только по одному дочернему узлу, в конечном итоге в соответствии с категориальным распределением (я видел это в различных реализациях C45 и CART для более быстрого выполнения)
  • создавать, сортировать и использовать суррогаты для распределения экземпляров на дочерний узел, где суррогаты являются входными функциями, которые лучше всего напоминают то, как тестовая функция отправляет экземпляры данных на левый или правый дочерний узел (CART, если это не удается, используется правило большинства)
rapaio
источник