Перейти к основному содержимому

Обработка пропущенных значений

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

Если пропущенный признак присутствуют только в тестовых данных (но не в обучающих), то при проверке правила

признакпорог\text{признак} \le \text{порог}

можно направить объект в дочерний узел, содержащий больше объектов обучающей выборки.

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

Вместо того, чтобы направлять объекты с пропущенным признаком всегда влево или вправо можно его одновременно направить и влево (получив прогноз y^L\hat{y}_{L}), и вправо (получив прогноз y^R\hat{y}_{R}), а в качестве итогового прогноза выдать

y^=nLny^L+nRny^R\hat{y} = \frac{n_L}{n}\hat{y}_L + \frac{n_R}{n}\hat{y}_R

где nn - число обучающих объектов, попавший в узел, в котором проверяется значение пропущенного признака, а nLn_L и nRn_R - количества обучающих объектов, спускающихся в левую и правую дочернюю вершину соответственно.