6.1 API : AdaBoostClassifier 与 AdaBoostRegressor


Исходный URL
Исходный URL

AdaBoostClassifier

sklearn.ensemble.AdaBoostClassifier(base_estimator=None, *, n_estimators=50, learning_rate=1.0, 
algorithm='SAMME.R', random_state=None)

описание

Классификатор AdaBoost

Атрибуты

base_estimator_:
базовый классификатор оценки

Estimators_: список
категорий классификаторов, список

classes_: ndarray формы (n_classes,)
метка класса

n_classes_: int
количество категорий

Estimator_weights_:
вес каждого классификатора в ndarray ансамбля float

Estimator_errors_:
ошибка каждого классификатора в ndarray ансамбля float

метод
Вставьте описание изображения сюда

AdaBoostRegressor

sklearn.ensemble.AdaBoostRegressor(base_estimator=None, *, n_estimators=50, learning_rate=1.0,
 loss='linear', random_state=None)

описание

Регрессия AdaBoost

Метод атрибута
Вставьте описание изображения сюда

Вставьте описание изображения сюда

Введение параметра

base_estimator: object, default = None
И AdaBoostClassifier, и AdaBoostRegressor, а именно наш слабый классификационный ученик или слабый ученик регрессии. Теоретически вы можете выбрать любого учащегося по классификации или регрессии, но вам необходимо поддерживать веса выборки. Обычно мы используем дерево решений CART или нейронную сеть MLP. По умолчанию используется дерево решений, то есть AdaBoostClassifier по умолчанию использует дерево классификации CART DecisionTreeClassifier, а AdaBoostRegressor по умолчанию использует дерево регрессии CART DecisionTreeRegressor. Еще один момент, который следует отметить, заключается в том, что если мы выбираем алгоритм AdaBoostClassifier SAMME.R, наш учащийся слабой классификации также должен поддерживать вероятностное прогнозирование, то есть метод прогнозирования, соответствующий учащемуся слабой классификации в scikit-learn, в дополнение к предсказанию вас также нужен pred_proba.

n_estimators: int, default = 50
И AdaBoostClassifier, и AdaBoostRegressor - это максимальное количество итераций нашего слабого ученика или максимальное количество слабых учеников. Вообще говоря, если n_estimators слишком мало, его легко недооценить. Если n_estimators слишком велико, его легко переоборудовать. Как правило, выбирайте умеренное значение. По умолчанию 50. В фактическом процессе настройки мы часто рассматриваем n_estimators и параметр Learning_rate, представленный ниже.

Learning_rate: float, по умолчанию = 1. Скорость
обучения снижает вклад каждого классификатора через learning_rate. Существует компромисс между learning_rate и n_estimators. И
AdaBoostClassifier, и AdaBoostRegressor; для того же эффекта подгонки обучающего набора меньшее значение означает, что нам нужно больше итераций слабого ученика. Обычно мы используем размер шага и максимальное количество итераций вместе, чтобы определить эффект аппроксимации алгоритма. Таким образом, эти два параметра n_estimators и learning_rate должны настраиваться вместе. Вообще говоря, вы можете начать настройку с меньшего, по умолчанию 1

алгоритм: {'SAMME', 'SAMME.R'}, по умолчанию = 'SAMME.R'
Этот параметр доступен только в AdaBoostClassifier. Основная причина в том, что scikit-learn реализовал два алгоритма классификации Adaboost, SAMME и SAMME.R. Основное различие между ними заключается в измерении веса слабого учащегося . SAMME использует эффект ошибочной классификации набора выборок в качестве веса слабого учащегося, в то время как SAMME.R использует прогнозируемую вероятность классификации выборочного набора в качестве веса слабого учащегося. . Поскольку SAMME.R использует непрерывное значение измерения вероятности, итерация обычно выполняется быстрее, чем SAMME, поэтому значением алгоритма алгоритма по умолчанию для AdaBoostClassifier также является SAMME.R. Обычно мы используем SAMME.R по умолчанию, но следует отметить, что если используется SAMME.R, параметр обучаемого слабого класса base_estimator должен быть ограничен классификаторами, которые поддерживают прогнозирование вероятности. Алгоритм SAMME не имеет этого ограничения.

loss: {'linear', 'square', 'exponential'}, default = 'linear'
Этот параметр доступен только для AdaBoostRegressor и необходим для алгоритма Adaboost.R2. Есть три варианта: линейный "линейный", квадратный "квадратный" и экспоненциальный "экспоненциальный". По умолчанию - линейный. Как правило, достаточно линейного, если вы не подозреваете, что этот параметр плохо подходит. Это соответствует нашей обработке ошибки i-й выборки в k-м слабом классификаторе, то есть: если это линейная ошибка, то; если это квадратная ошибка, то, если это экспоненциальная ошибка, тогда это обучающий набор Максимальная ошибка

random_state: int, RandomState instance или None, default = None
управляет случайным начальным числом, заданным каждым base_estimator во время каждой итерации улучшения. Передайте
несколько вызовов функций со значениями int, которые могут выводиться повторно

рекомендация

отblog.csdn.net/weixin_46649052/article/details/112970237
рекомендация