Глубина дерева градиентный бустинг

Глубина дерева градиентный бустинг

max_depth относится к числу листьев каждого дерева (то есть 4), тогда как n_estimators относится к общему количеству деревьев в ансамбле. Как упоминалось ранее, learning_rate гиперпараметр масштабирует вклад каждого дерева. Если вы установите его на низкое значение, вам потребуется больше деревьев в ансамбле, чтобы соответствовать обучающему набору, но общая дисперсия будет ниже.

regressor = GradientBoostingRegressor( 
max_depth=2,
n_estimators=3,
learning_rate=1.0
)
regressor.fit(X_train, y_train)

staged_predict() Метод измеряет ошибку проверки на каждом этапе обучения (т. е. с одним деревом, с двумя деревьями . ), чтобы найти оптимальное количество деревьев.

errors = [mean_squared_error(y_test, y_pred) for y_pred in regressor.staged_predict(X_test)]best_n_estimators = np.argmin(errors)

Теперь мы можем построить и подогнать нашу модель, используя оптимальное количество деревьев.

best_regressor = GradientBoostingRegressor( 
max_depth=2,
n_estimators=best_n_estimators,
learning_rate=1.0
)
best_regressor.fit(X_train, y_train)

Sklearn предоставляет многочисленные метрики для оценки производительности наших моделей машинного обучения. Что мне показалось особенно полезным, так это то, что они классифицируют каждую метрику в соответствии с проблемной областью, к которой они применимы. Например, точность имеет смысл только в контексте классификации.

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

y_pred = best_regressor.predict(X_test)mean_absolute_error(y_test, y_pred)

Источник

Читайте также:  Чем можно вывести корни деревьев
Оцените статью