Spec-Zone.ru › scikit-learn

ExtraTreesRegressor

classsklearn.ensemble.ExtraTreesRegressor(n_estimators=100, *, criterion='squared_error', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=1.0, max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=False, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None, monotonic_cst=None)[source]

Регрессор случайных деревьев.

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

Дополнительные сведения см. в Руководстве пользователя.

END_OF_DOCUMENT_MARKER
Параметры:
n_estimatorsint, default=100

Количество деревьев в лесу.

Изменено в версии 0.22: Значение по умолчанию для n_estimators изменилось с 10 до 100 в версии 0.22.

criterion{“squared_error”, “absolute_error”, “friedman_mse”, “poisson”}, default=”squared_error”

Функция для измерения качества разбиения. Поддерживаемые критерии: “squared_error” для среднеквадратичной ошибки, которая равна уменьшению дисперсии как критерий выбора признака и минимизирует потерю L2, используя среднее значение каждого конечного узла; “friedman_mse”, который использует среднеквадратичную ошибку с улучшением по Фридману для потенциальных разбиений; “absolute_error” для средней абсолютной ошибки, которая минимизирует потерю L1, используя медиану каждого конечного узла; и “poisson”, который использует уменьшение девиации Пуассона для поиска разбиений. Обучение с использованием “absolute_error” значительно медленнее, чем с использованием “squared_error”.

Добавлена в версии 0.18: Критерий средней абсолютной ошибки (MAE).

max_depthint, default=None

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

min_samples_splitint or float, default=2

Минимальное количество образцов, необходимое для разделения внутреннего узла:

  • Если int, то рассматривается min_samples_split в качестве минимального числа.
  • Если float, то min_samples_split — это доля, а ceil(min_samples_split * n_samples) — минимальное количество образцов для каждого разделения.

Изменено в версии 0.18: Добавлены значения с плавающей точкой для долей.

min_samples_leafint or float, default=1

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

  • Если int, то рассматривается min_samples_leaf в качестве минимального числа.
  • Если float, то min_samples_leaf — это доля, а ceil(min_samples_leaf * n_samples) — минимальное количество образцов для каждого узла.

Изменено в версии 0.18: Добавлены значения с плавающей точкой для долей.

min_weight_fraction_leaffloat, default=0.0

Минимальная взвешенная доля от суммы весов (всех входных образцов), необходимая для нахождения в узле листа. Образцы имеют равный вес, когда sample_weight не задан.

max_features{“sqrt”, “log2”, None}, int or float, default=1.0

Количество признаков для рассмотрения при поиске лучшего разбиения:

  • Если int, то рассматриваются max_features признаков на каждом разбиении.
  • Если float, то max_features — это доля, а max(1, int(max_features * n_features_in_)) признаков рассматриваются на каждом разбиении.
  • Если “sqrt”, то max_features=sqrt(n_features).
  • Если “log2”, то max_features=log2(n_features).
  • Если None или 1.0, то max_features=n_features.

Примечание

Значение по умолчанию 1.0 эквивалентно дереву случайного леса, и большее количество случайности можно достичь, задав меньшие значения, например, 0.3.

Изменено в версии 1.1: Значение по умолчанию max_features изменилось с "auto" до 1.0.

Примечание: поиск разбиения не прекращается, пока не будет найдено хотя бы одно допустимое разбиение образцов узла, даже если для этого потребуется фактически проверить больше, чем max_features признаков.

max_leaf_nodesint, default=None

Выращивать деревья с max_leaf_nodes в стиле «лучший первый». Лучшие узлы определяются как относительное уменьшение нечистоты. Если None, то количество узлов листа не ограничено.

min_impurity_decreasefloat, default=0.0

Узел будет разделен, если это разделение вызовет уменьшение нечистоты, большее или равное этому значению.

Уравнение взвешенного уменьшения нечистоты следующее:

N_t / N * (impurity - N_t_R / N_t * right_impurity
                    - N_t_L / N_t * left_impurity)

где N — общее количество образцов, N_t — количество образцов в текущем узле, N_t_L — количество образцов в левом дочернем элементе, а N_t_R — количество образцов в правом дочернем элементе.

N, N_t, N_t_R и N_t_L все относятся к взвешенной сумме, если sample_weight было передано.

Добавлена в версии 0.19.

bootstrapbool, default=False

Используются ли образцы bootstrap при построении деревьев. Если False, то для построения каждого дерева используется весь набор данных.

oob_scorebool or callable, default=False

Использовать ли образцы вне выборки для оценки обобщающей оценки. По умолчанию используется r2_score. Укажите вызываемый объект со сигнатурой metric(y_true, y_pred) для использования настраиваемого метрики. Доступно только если bootstrap=True.

n_jobsint, default=None

Количество задач, которые необходимо запустить параллельно. fit, predict, decision_path и apply все параллелизованы по деревьям. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Словарь для получения дополнительной информации.

random_stateint, RandomState instance or None, default=None

Управляет 3 источниками случайности:

  • ребоотинги образцов, используемых при построении деревьев (если bootstrap=True)
  • выборка признаков для рассмотрения при поиске лучшего разбиения в каждом узле (если max_features < n_features)
  • выбор разбиений для каждого из max_features

См. Словарь для получения дополнительной информации.

verboseint, default=0

Управляет подробностью вывода при подгонке и предсказании.

warm_startbool, default=False

Если установлено в True, повторно используйте решение предыдущего вызова fit и добавьте больше оценщиков в ансамбль; в противном случае просто обучите новый лес. См. Словарь и Добавление дополнительных деревьев для получения дополнительной информации.

ccp_alphaнеотрицательное число с плавающей точкой, по умолчанию 0.0

Параметр сложности, используемый для обрезки с минимальной стоимостью и сложностью. Поддерево с наибольшей сложностью, меньшей, чем ccp_alpha будет выбрано. По умолчанию обрезка не выполняется. См. Обрезка с минимальной стоимостью и сложностью для получения дополнительной информации. См. Обрезка деревьев принятия решений с помощью обрезки с минимальной сложностью для примера такой обрезки.

Добавлена в версии 0.22.

max_samplesint or float, default=None

Если bootstrap равно True, число образцов, подлежащих выборке из X для обучения каждого базового оценщика.

  • Если None (по умолчанию), то выбирается X.shape[0] образцов.
  • Если int, то выбирается max_samples образцов.
  • Если float, то выбирается max_samples * X.shape[0] образцов. Таким образом, max_samples должно находиться в интервале (0.0, 1.0].

Добавлена в версии 0.22.

monotonic_cstмассив-подобный int формы (n_features), по умолчанию None
Указывает ограничение монотонности, которое необходимо применить к каждому признаку.
  • 1: монотонно возрастающий
  • 0: без ограничения
  • -1: монотонно убывающий

Если monotonic_cst равно None, ограничения не применяются.

Ограничения монотонности не поддерживаются для:
  • регрессий с несколькими выходами (т.е. когда n_outputs_ > 1),
  • регрессий, обученных на данных с пропущенными значениями.

Дополнительную информацию см. в Руководстве пользователя.

Добавлена в версии 1.4.

Атрибуты:
estimator_ExtraTreeRegressor

Шаблон дочернего оценщика, используемый для создания набора подгоняемых под-оценщиков.

Добавлен в версии 1.2: base_estimator_ было переименовано в estimator_.

estimators_список DecisionTreeRegressor

Набор подгоняемых под-оценщиков.

feature_importances_массив NumPy формы (n_features,)

Веса признаков, основанные на нечистоте.

n_features_in_int

Количество признаков, увиденных во время fit.

Добавлен в версии 0.24.

feature_names_in_массив NumPy формы (n_features_in_,)

Имена признаков, увиденные во время fit. Определены только тогда, когда X имеет имена признаков, которые все являются строками.

Добавлен в версии 1.0.

n_outputs_int

Количество выходов.

oob_score_float

Оценка обучающего набора данных, полученная с помощью оценки вне выборки. Этот атрибут существует только тогда, когда oob_score равно True.

oob_prediction_массив NumPy формы (n_samples,) или (n_samples, n_outputs)

Предсказание, вычисленное с помощью оценки вне выборки на обучающем наборе. Этот атрибут существует только тогда, когда oob_score равно True.

estimators_samples_список массивов

Подмножество выбранных образцов для каждого базового оценщика.

См. также

ExtraTreesClassifier

Классификатор с дополнительными деревьями случайных разбиений.

RandomForestClassifier

Случайный лес классификатор с оптимальными разбиениями.

RandomForestRegressor

Регрессор ансамбля, использующий деревья с оптимальными разбиениями.

Примечания

Значения по умолчанию для параметров, контролирующих размер деревьев (например, max_depth, min_samples_leaf, и т. д.) приводят к полностью выращенным и не обрезным деревьям, которые могут быть очень большими для некоторых наборов данных. Для уменьшения потребления памяти сложность и размер деревьев должны контролироваться путем установки этих значений параметров.

Ссылки

[1]

P. Geurts, D. Ernst., и L. Wehenkel, “Extremely randomized trees”, Machine Learning, 63(1), 3-42, 2006.

Примеры

>>> from sklearn.datasets import load_diabetes
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.ensemble import ExtraTreesRegressor
>>> X, y = load_diabetes(return_X_y=True)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, random_state=0)
>>> reg = ExtraTreesRegressor(n_estimators=100, random_state=0).fit(
...    X_train, y_train)
>>> reg.score(X_test, y_test)
0.2727...
apply(X)[source]

Применение деревьев в лесу к X, возврат индексов листьев.

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

Входные образцы. Внутренне, его тип данных будет преобразован в dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженную csr_matrix.

Возвращаемое значение:
X_leavesмассив NumPy формы (n_samples, n_estimators)

Для каждой точки данных x в X и для каждого дерева в лесу верните индекс листа, в который x попадает.

decision_path(X)[source]

Возвращает путь принятия решений в лесу.

Добавлен в версии 0.18.

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

Входные образцы. Внутренне, его тип данных будет преобразован в dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженную csr_matrix.

Возвращаемое значение:
indicatorразреженная матрица формы (n_samples, n_nodes)

Возвращает матрицу индикаторов узлов, где ненулевые элементы указывают, что образцы проходят через узлы. Матрица имеет формат CSR.

n_nodes_ptrмассив NumPy формы (n_estimators + 1,)

Столбцы indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] предоставляют значение индикатора для i-го оценщика.

propertyestimators_samples_

Подмножество выбранных образцов для каждого базового оценщика.

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

Примечание: список пересоздаётся при каждом вызове свойства, чтобы уменьшить объем памяти объекта, не храня данные выборки. Таким образом, получение свойства может быть медленнее, чем ожидалось.

propertyfeature_importances_

Веса признаков, основанные на нечистоте.

Чем выше значение, тем важнее признак. Значение важности признака вычисляется как (нормализованная) полная редукция критерия, привнесенная этим признаком. Также известно как важность Джини.

Предупреждение: важности признаков, основанные на нечистоте, могут быть вводящими в заблуждение для признаков с высокой кардинальностью (многие уникальные значения). См. sklearn.inspection.permutation_importance в качестве альтернативы.

Возвращаемое значение:
feature_importances_массив NumPy формы (n_features,)

Значения в этом массиве суммируются до 1, за исключением случаев, когда все деревья являются деревьями с единственным узлом, состоящими только из корневого узла, в этом случае это будет массив нулей.

fit(X, y, sample_weight=None)[source]

Построение леса деревьев из обучающего набора (X, y).

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

Обучающие входные образцы. Внутренне, его тип данных будет преобразован в dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженную csc_matrix.

yмассив-подобный формы (n_samples,) или (n_samples, n_outputs)

Целевые значения (метки классов в классификации, вещественные числа в регрессии).

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

Веса образцов. Если None, то образцы имеют равный вес. Разбиения, которые создадут дочерние узлы с общим нулевым или отрицательным весом, игнорируются при поиске разбиения в каждом узле. В случае классификации разбиения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из дочерних узлов.

Возвращаемое значение:
selfобъект

Обученный оценщик.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.

Возвращает:
маршрутизацияMetadataRequest

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценщика и вложенных под-объектов, которые также являются оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные со значениями.

predict(X)[source]

Предсказать целевое значение регрессии для X.

Предсказанное целевое значение регрессии для входного образца вычисляется как среднее предсказанных целевых значений регрессии деревьев в лесу.

Параметры:
X{array-like, разреженная матрица} с формой (n_samples, n_features)

Входные образцы. Внутри его тип данных будет преобразован в dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженную csr_matrix.

Возвращает:
yndarray с формой (n_samples,) или (n_samples, n_outputs)

Предсказанные значения.

score(X, y, sample_weight=None)[source]

Возвратить коэффициент детерминации предсказания.

Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — остаточная сумма квадратов ((y_true - y_pred)** 2).sum() и \(v\) — общая сумма квадратов ((y_true - y_true.mean()) ** 2).sum(). Лучшее возможное значение — 1.0, оно может быть отрицательным (поскольку модель может быть произвольно хуже). Модель, которая всегда предсказывает ожидаемое значение y, не учитывая входные признаки, получит значение \(R^2\) равное 0.0.

Параметры:
Xarray-like с формой (n_samples, n_features)

Образцы для тестирования. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядра или список общих объектов вместо неё с формой (n_samples, n_samples_fitted), где n_samples_fitted — количество образцов, используемых в процессе обучения оценщика.

yarray-like с формой (n_samples,) или (n_samples, n_outputs)

Истинные значения для X.

sample_weightarray-like с формой (n_samples,), по умолчанию=None

Веса образцов.

Возвращает:
scorefloat

\(R^2\) для self.predict(X) по отношению к y.

Примечания

Значение \(R^2\), используемое при вызове score для регрессора, использует multioutput='uniform_average' с версии 0.23, чтобы сохранить согласованность с умолчанием r2_score. Это влияет на score метод всех регрессоров с несколькими выходами (кроме MultiOutputRegressor).

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ExtraTreesRegressor[source]

Запрос метаданных, переданных методу fit.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, см. Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются fit при наличии. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются и мета-оценщик не передаст их fit.
  • None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь их предоставит.
  • str: метаданные должны быть переданы мета-оценщику с этим псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров и не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если данный оценщик используется как под-оценщик мета-оценщика, например, внутри Pipeline. В противном случае он не имеет никакого эффекта.

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

Возвращает:
selfobject

Обновлённый объект.

set_params(**params)[source]

Установите параметры этого оценщика.

Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как Pipeline). У последних параметры имеют вид <component>__<parameter>, чтобы можно было обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ExtraTreesRegressor[source]

Запрос метаданных, передаваемых методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). См. Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются в score при их наличии. Запрос игнорируется, если метаданные отсутствуют.
  • False: метаданные не запрашиваются и мета-оценщик не передаст их score.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.
  • str: метаданные должны передаваться мета-оценщику с данным псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот оценщик используется как под-оценщик мета-оценщика, например, внутри Pipeline. В противном случае он не имеет эффекта.

Параметры:
sample_weightstr, True, False, или None, по умолчанию sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
selfобъект

Обновленный объект.

Примеры из галереи

Заполнение лица с помощью многовыходных оценщиков

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.ExtraTreesRegressor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API