Означает L1-регуляризацию на весах листьев. Увеличение этого значения приведет к более консервативной модели, которая будет более тщательно выбирать свои признаки и более устойчива к выбросам.
L1-регуляризация добавляет штраф к функции потерь за абсолютные значения весов. Это приводит к уменьшению значений неактивных функций и увеличению значений активных функций, что позволяет модели делать более точные предсказания.
Однако, если значение Alpha слишком высокое, это может привести к потере слишком многих функций, и модель может стать недообученной. Поэтому необходимо тщательно настраивать значение параметра Alpha для каждой модели.
Установка значения Alpha = 1 означает, что L1-регуляризация будет использоваться в максимально возможной степени, что приведет к обнулению весов большинства признаков и оставлению только наиболее важных.
Означает минимальное уменьшение функции потерь, необходимое для создания дополнительного разделения на листовом узле дерева. Чем больше значение Gamma, тем более консервативным будет алгоритм.
Значение Gamma контролирует, когда алгоритм решает, необходимо ли создавать дополнительные разделения на листовых узлах. Если уменьшение функции потерь, которое может быть получено с дополнительным разделением, не превышает значение Gamma, то разделение не будет создано.
Большое значение Gamma может привести к более простому дереву и предотвратить переобучение модели, но слишком большое значение может привести к потерям информации и недообучению. Поэтому необходимо тщательно настраивать значение параметра Gamma для каждой модели.
Означает максимальную допустимую разницу между предсказанными значениями на каждом листе дерева. Если значение равно 0, это означает, что нет ограничений. Если значение положительное, это может помочь сделать шаг обновления более консервативным.
Этот параметр обычно не нужен, но может быть полезен в логистической регрессии, когда классы сильно не сбалансированы. Установка значения от 1 до 10 может помочь контролировать обновление.
Ограничение максимальной дельты может помочь предотвратить переобучение модели, особенно если классы не сбалансированы и для них требуется более консервативный подход к обучению.
Выберите один из двух типов бустеров: дерево или DART.
Дерево-бустер использует градиентный бустинг над деревьями решений для построения ансамбля моделей. Каждое новое дерево в модели предсказывает остатки предыдущих деревьев, что позволяет улучшать качество предсказания.
DART (Dropout Additive Regression Trees) также использует градиентный бустинг над деревьями решений для создания ансамбля моделей, но в нем добавлен механизм отсева узлов деревьев (dropout). Это помогает регулировать модель и предотвращать переобучение, что может быть особенно полезно при работе с большим количеством деревьев в композиции.
Максимальная глубина дерева. Увеличение этого значения сделает модель более сложной и более склонной к переобучению. Значение 0 означает, что нет ограничений на глубину. Обратите внимание, что ограничение необходимо, когда grow_policy установлен на "depthwise".
Максимальная глубина дерева - это один из важных параметров, которые нужно настраивать при обучении модели на данных. Если глубина дерева слишком мала, модель может недообучиться и не сможет достаточно точно предсказывать значения. Если глубина дерева слишком велика, модель может переобучиться, то есть учесть шумы в данных, что может привести к плохим результатам на новых данных.
Поэтому выбор максимальной глубины деревьев должен основываться на балансе между точностью предсказания и регуляризацией модели. Если модель имеет высокую точность на обучающих данных, но плохо работает на новых данных, это может быть признаком переобучения, и в таком случае может потребоваться снижение максимальной глубины дерева.
Минимальная сумма весов экземпляров (hessian), необходимая в дочернем узле. Если процесс разделения дерева приводит к листовому узлу с суммой весов экземпляров меньше, чем min_child_weight, то процесс построения прекратит дальнейшее разделение. Чем больше min_child_weight, тем более консервативным будет алгоритм.
Параметр min_child_weight можно использовать, чтобы предотвратить переобучение модели за счет прекращения дальнейших разделений, когда в узле будет недостаточно экземпляров. Например, если min_child_weight установлен на 10, то узел не может содержать меньше, чем 10 экземпляров. Это помогает избежать создания слишком глубоких деревьев, которые могут привести к переобучению модели.
Однако, если установить min_child_weight слишком высоким, это может привести к слишком простой модели, которая может недооценить сложность данных. Поэтому настройка параметра min_child_weight, как и других параметров, должна основываться на компромиссе между переобучением и недообучением модели.
Алгоритм построения деревьев, используемый в XGBoost. Может быть одним из следующих:
Auto: Использовать эвристику для выбора самого быстрого метода.
Exact: Точный жадный алгоритм.
Approx: Приблизительный жадный алгоритм с использованием квантильного скетча и гистограммы градиентов.
Hist: Быстрый, оптимизированный приблизительный жадный алгоритм с использованием гистограммы. Он использует некоторые улучшения производительности, такие как кэширование бинов.
Выбор метода построения дерева должен основываться на размере данных и количестве признаков. Метод "auto" выбирает оптимальный метод построения дерева на основе эвристики, учитывающей размер данных и количество признаков.
Точный жадный алгоритм ("exact") может быть использован, если количество признаков относительно небольшое, но может стать неэффективным, когда количество признаков слишком велико.
Приблизительный жадный алгоритм с использованием квантильного скетча и гистограммы градиентов ("approx") может ускорить процесс построения дерева и быть более эффективным, когда количество признаков высоко.
Метод "hist" использует гистограмму градиентов и некоторые оптимизации для более быстрого и точного построения деревьев на больших данных с большим количеством признаков.
Используется только для приблизительного метода построения деревьев. Обычно не нужно настраивать вручную, но для более точного перечисления кандидатов на разделение можно рассмотреть уменьшение значения этого параметра.
Этот параметр определяет точность квантильного скетча, который используется для сокращения количества точек на расчете градиента в алгоритме приблизительного построения дерева. Чем меньше значение Sketch Epsilon, тем более точным будет приближение расчета градиента, и тем более точными будут результаты выбора разделения для дерева.
Однако снижение значения этого параметра может также увеличить время обучения модели и потребление памяти. Поэтому рекомендуется оставлять значение Sketch Epsilon настройками по умолчанию, если нет особой необходимости в более точных результатов.
Контролирует баланс положительных и отрицательных весов, что является полезным для задач с несбалансированными классами. Типичное значение для рассмотрения: сумма весов отрицательных экземпляров / сумма весов положительных экземпляров.
В XGBoost каждый экземпляр может иметь свой вес. Этот параметр контролирует, будет ли изменено отношение положительных и отрицательных весов, используемых в функции потерь. Это может помочь улучшить производительность модели в задачах, где классы несбалансированы.
Если количество отрицательных экземпляров в обучающей выборке значительно больше, меньше или в два раза меньше количества положительных экземпляров, можно попробовать настроить значение параметра Scale Positive Weight на основе отношения числа отрицательных и положительных экземпляров в обучающем наборе данных. Типичное значение для рассмотрения - это отношение суммы весов негативных экземпляров к сумме весов позитивных экземпляров.
Относится только к методу DART. При включении этого флага гарантируется, что хотя бы одно дерево всегда будет отброшено в процессе отключения. В методе DART (Dropout Additive Regression Trees) каждое дерево обучается на случайном подмножестве объектов и случайном подмножестве признаков. Затем, чтобы уменьшить эффект переобучения, некоторые деревья и их веса случайным образом отключаются. Параметр Drop at Least One Tree предотвращает ситуацию, когда все деревья отключаются и модель не может принимать решения.
Данный параметр является булевым значением (True или False). Когда он включен (True), гарантируется, что хотя бы одно дерево всегда будет отброшено в процессе отключения. Это может привести к более разнообразным ансамблям деревьев и более устойчивой модели.
Определяет способ добавления новых узлов в деревья. В настоящее время поддерживается только для метода построения деревьев hist. Этот параметр может принимать одно из двух значений:
1. Depthwise (по глубине): Разбиение происходит на узлах, ближайших к корню дерева. Этот подход к построению деревьев очень простой, поскольку он делает выбор на основе глубины, а не на основе потерь. При этом в деревьях с большим количеством уровней каждый узел имеет меньшую скорость обучения, так что эта стратегия может быть эффективной для неглубоких деревьев.
2. Lossguide (по потерям): Разбиение происходит в узлах с наибольшим изменением потерь. Этот подход к построению деревьев более сложный, так как он использует информацию о потерях для принятия решения, когда добавлять новые узлы. Он может привести к более точным моделям, особенно если требуется дерево большой глубины.
Параметр Grow Policy является очень важным для метода построения деревьев hist, поскольку он определяет способ добавления новых узлов в деревья. При выборе правильного значения для этого параметра можно улучшить производительность модели и ускорить процесс обучения.
Максимально возможное количество листьев, которые могут быть добавлены в дерево. Этот параметр является важным для метода построения деревьев hist, при использовании подхода Lossguide.
Параметр Maximum Number of Leaves определяет максимально возможное количество узлов, которые могут быть добавлены в дерево в процессе обучения. Если число узлов превышает значение этого параметра, процесс разделения прекращается. Это может привести к более простым и менее переобученным моделям, так как модель может быстрее закончить обучение.
Параметр Maximum Number of Leaves релевантен только для метода построения деревьев hist с подходом Lossguide. Он помогает управлять сложностью деревьев в зависимости от требований к точности и времени обучения модели.
Параметр, используемый только для метода построения деревьев hist. Максимальное количество дискретных корзин (bins), для размещения непрерывных признаков (continuous features) в них.
Данный параметр отвечает за количество корзин, в которые будут разбиты непрерывные признаки. Чем больше это число, тем более точно и оптимально будут производиться выборы разбиения при построении дерева. Однако большее количество корзин также требует больше вычислительных ресурсов и времени обучения модели.
Параметр Maximum Number of Bins важен для управления балансом между качеством модели и временем обучения. Оптимальный размер зависит от специфики данных и желаемой точности модели, поэтому его следует подбирать оптимальным образом.
Тип выборки. Этот параметр относится только к бустинг-алгоритму DART. Параметр Sample Type задает стратегию выборки деревьев, которые будут "исключены" (dropped) из ансамбля на каждой итерации обучения.
Доступны два варианта выборки:
1. Uniform (равномерная выборка): деревья исключаются из ансамбля равномерно, без учета их веса. Деревья выбираются случайным образом с одинаковой вероятностью. Этот вариант выборки может быть полезен для защиты от переобучения.
2. Weighted (взвешенная выборка): деревья исключаются из ансамбля с учетом их веса. Деревья с более высоким весом имеют более высокую вероятность быть выбранными для удаления. Этот вариант выборки может быть полезен, если некоторые деревья (например, более слабые) нужно удалить из ансамбля с большей вероятностью.
Параметр Sample Type позволяет изменять баланс между скоростью и точностью работы модели. Рекомендуется выбирать параметр, исходя из особенностей данных и требований к точности модели.
Тип нормализации. Этот параметр относится только к бустинг-алгоритму DART. Параметр Normalize Type задает стратегию нормализации весов деревьев, используемых в ансамбле после их удаления на каждой итерации обучения.
Доступны два варианта нормализации:
1. Tree (нормализация для дерева): веса новых деревьев будут равны 1/(k+eta), где k - это количество исключенных из ансамбля деревьев на текущей итерации обучения, а eta - гиперпараметр, задающий уровень регуляризации, и нормализация мыслится для дерева. Веса удаленных деревьев будут масштабированы по формуле k/(k+eta).
2. Forest (нормализация для леса): веса новых деревьев будут равны 1/(1+eta), а веса удаленных деревьев будут масштабированы по формуле 1/(1+eta), где eta - гиперпараметр, задающий уровень регуляризации. Этот вариант нормализации рассчитывает веса для суммы исключенных деревьев, а затем нормализует новые деревья и сумму исключенных деревьев одновременно.
Выбор правильного типа нормализации может повлиять на качество модели и поведение бустинг-алгоритма, в частности на скорость сходимости. Обычно рекомендуется оставить значение по умолчанию (Tree) и изменять его только в случае, если этот параметр был подобран методом кросс-валидации как оптимальный для выборки данных.
Уровень Dropout. Этот параметр относится только к бустинг-алгоритму DART. Уровень Dropout задает долю деревьев из предыдущих итераций обучения, которые будут исключены из ансамбля на текущей итерации.
Dropout является частью регуляризации и позволяет бороться с переобучением. Значение параметра указывается в долях (от 0 до 1). Увеличение уровня Dropout приводит к более устойчивой модели, но может ухудшить качество предсказания на тестовой выборке.
Рекомендуется использовать значение по умолчанию (0), если нет причин уверенно изменять его значение на основании опыта или данных. Если модель переобучается, можно попробовать увеличить значение Dropout Rate.
Сбрасывать хотя бы одно дерево. Этот флаг относится только к бустинг-алгоритму DART. Если он включен, то при применении Dropout на каждой итерации обучения алгоритм всегда исключает хотя бы одно дерево из ансамбля, даже если для текущей итерации Dropout Rate равно 0.
Данный параметр помогает избежать переобучения, так как принудительное исключение дерева способствует более регулярной модели. Обычно его рекомендуется включать вместе с Dropout.
Значение параметра по умолчанию равно False, то есть принудительное исключение дерева не производится. Если включить опцию "Drop at least one tree", Dropout всегда будет сбрасывать хотя бы одно дерево на каждой итерации.
Пропустить коэффициент отсева. Этот параметр относится только к бустинг-алгоритму DART. Он представляет собой вероятность пропуска процедуры отсева (dropout) на каждой итерации обучения алгоритма. Если отсев (dropout) пропущен, новые деревья добавляются в ансамбль так же, как и при использовании стандартного бустинга со случайными лесами (vanilla tree booster). Важно отметить, что ненулевой коэффициент пропуска имеет более высокий приоритет, чем флаг "принудительный отказ хотя бы от одного дерева" (drop at least one tree).
Этот параметр позволяет управлять частотой применения процедуры отсева и регулировать темп обучения модели. Значение по умолчанию для пропуска коэффициента отсева равно 0, то есть процедура отсева выполняется на каждой итерации обучения. Если установить ненулевое значение, то с заданной вероятностью процедура отсева будет пропущена.
Этот параметр полезен для контроля скорости обучения алгоритма и может быть настроен с помощью кросс-валидации или других техник выбора гиперпараметров для достижения лучшей производительности модели.
Коэффициент субдискретизации. Этот параметр определяет долю обучающих объектов, используемых для каждой итерации бустинга XGBoost. Если, например, установить значение параметра subsample равным 0.5, то на каждой итерации бустинга XGBoost будет использоваться случайная подвыборка, состоящая из 50% обучающих объектов. Это равносильно применению метода бэггинга (bagging) и может помочь уменьшить переобучение модели. Процедура субдискретизации будет выполняться на каждой итерации бустинга.
Этот параметр полезен при работе с большими наборами данных, когда использование всех доступных данных может привести к замедлению скорости обучения и возможному переобучению модели.
Параметр subsample также может использоваться для настройки темпа обучения модели. Как правило, при увеличении значения параметра subsample увеличивается шанс модели увидеть больше различных объектов обучающей выборки, что может улучшить обобщающую способность модели.
Значение параметра по умолчанию равно 1, что означает использование всех доступных обучающих объектов. Обычно рекомендуются значения параметра subsample от 0.5 до 1.
Column Sampling Rate by Tree
Коэффициент субдискретизации признаков по деревьям. Этот параметр определяет долю признаков, случайным образом выбираемых для использования при построении каждого дерева. Если, например, установить значение параметра colsample_bytree равным 0.5, то на каждой итерации бустинга XGBoost будет случайным образом выбрана половина признаков для построения каждого дерева. Этот параметр помогает уменьшить корреляцию между деревьями в ансамбле, что может уменьшить переобучение модели.
Процедура субдискретизации признаков будет выполняться на каждой итерации бустинга. Этот параметр может помочь уменьшить мультиколлинеарность признаков в данных и улучшить обобщающую способность модели. Параметр colsample_bytree может быть использован для настройки гиперпараметров модели. Обычно рекомендуются значения параметра colsample_bytree от 0.5 до 1. Значение параметра по умолчанию равно 1, что означает использование всех признаков для построения каждого дерева.
Column Sampling Rate by Node
Коэффициент субдискретизации признаков на каждом узле. Этот параметр определяет долю признаков, случайным образом выбираемых для использования при выборе наилучшего расщепления на каждом узле дерева. Если, например, установить значение параметра colsample_bynode равным 0.5, то на каждом узле в процессе выбора наилучшего расщепления будет случайным образом выбрана половина признаков из текущего набора признаков. Это может помочь модели избежать переобучения и улучшить ее обобщающую способность.
Процедура субдискретизации будет выполняться при выборе каждого расщепления на каждом узле дерева. Этот параметр может быть особенно полезен в случае, когда некоторые признаки сильно коррелируют между собой и некоторые из них могут быть исключены без потери информации.
Параметр colsample_bynode может быть использован для настройки гиперпараметров модели. Обычно рекомендуются значения параметра colsample_bynode от 0.5 до 1. Значение параметра по умолчанию равно 1, что означает использование всех признаков для выбора наилучшего расщепления на каждом узле дерева.