Ответ 1
Каждому дереву присваивается одинаковый вес eta
, и общее предсказание представляет собой сумму предсказаний каждого дерева, как вы говорите.
Возможно, вы ожидаете, что более ранние деревья получают больше веса, чем последние деревья, но это не обязательно, из-за того, как ответ обновляется после каждого дерева. Вот пример игрушки:
Предположим, что у нас есть 5 наблюдений с ответами 10, 20, 30, 40, 50. Первое дерево построено и дает прогнозы 12, 18, 27, 39, 54.
Теперь, если eta
= 1, переменные ответа, переданные следующему дереву, будут -2, 2, 3, 1, -4 (т.е. разница между предсказанием и истинным ответом). Затем следующее дерево попытается узнать "шум", который не был захвачен первым деревом. Если nrounds
= 2, то сумма предсказаний от двух деревьев даст окончательное предсказание модели.
Если вместо eta
= 0,1, все деревья будут иметь свои прогнозы, уменьшенные на eta
, поэтому первое дерево вместо этого "предсказывает" 1.2, 1.8, 2.7, 3.9, 5.4. Затем переменная ответа, переданная следующему дереву, будет иметь значения 8.8, 18.2, 27.3, 36.1, 44.6 (разница между масштабированным предсказанием и истинным ответом). Второй раунд затем использует эти значения ответа для построения другого дерева - и снова прогнозы масштабируются на eta
. Так что дерево 2 предсказывает, скажем, 7, 18, 25, 40, 40, которые после масштабирования становятся 0.7, 1.8, 2.5, 4.0, 4.0. Как и раньше, третьему дереву будет передана разница между этими значениями и предыдущей переменной ответа дерева (так 8.1, 16.4, 24.8, 32.1. 40.6). Опять же, сумма предсказаний от всех деревьев даст окончательное предсказание.
Ясно, что когда eta
= 0,1, а base_score
равно 0, вам понадобится не менее 10 раундов, чтобы получить прогноз, который находится где угодно почти разумным. В общем, вам нужен абсолютный минимум 1/eta
раундов и, как правило, намного больше.
Обоснование использования небольшого eta
заключается в том, что модель выигрывает от небольших шагов к предсказанию, а не для того, чтобы дерево 1 выполняло большую часть работы. Это немного похоже на кристаллизацию - медленно охлаждается, и вы становитесь больше, лучше кристаллы. Недостатком является то, что вам нужно увеличить nrounds
, тем самым увеличив время выполнения алгоритма.