Openstack DevOps and IBM/Informix Certified DBA . Phd in Math (Duality of spaces of... · 16 февр 2022
Как Xgboost узнает, каковы входные данные для пропущенных значений?
==========================
Предположим, что вы находитесь в своем узле с 50 наблюдениями и, для простоты, возможна только одна точка разделения.
Например, у вас есть только один бинарный признак x, и ваши данные можно разделить на три группы:
Группа B: 20 наблюдений, таких что x=B,
Группа C: 20 наблюдений, таких что x=C,
Группа M: 10 наблюдений, таких что x=?
Алгоритм разделится на основе x, но не знает, куда отправить группу M. Он попробует оба назначения, (В,М),С и В,(С,М),
вычислить значение, которое будет присвоено прогнозу в каждом узле, используя все данные, и выбрать назначение, которое минимизирует потери. Например, если выбрано разбиение (B,M),C, значение левого узла будет вычислено из всех выборок B и M.
===========================
Вот что имеется в виду под автоматически «узнайте», какое значение вменения лучше всего подходит для пропущенных значений на основе уменьшения потерь при обучении.
===========================
Как можно рассчитать группу M, если не известно , каковы их значения?
Значение, которое мы вычисляем, основано не на функции x, которую мы не знаем, а на основе известной метки/цели выборки. Допустим, мы делаем регрессию и пытаемся минимизировать среднеквадратичную ошибку, и допустим, у нас есть следующее:
Для группы B среднее целевое значение равно 5.
Для группы C среднее целевое значение равно 10.
Для группы отсутствующих значений M среднее целевое значение равно 0. Обратите внимание, что даже если значение x отсутствует, мы знаем значение цели выборки, иначе мы не могли бы использовать его для обучения нашей модели. В этом случае разделение будет выполнено на (B, M), C, значение, присвоенное правому узлу, содержащему образцы C, будет равно 10, а значение, присвоенное левому узлу, содержащему образцы в (B, M), будет равно среднее значение цели для всей группы. В нашем примере среднее будет