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]
-
Регрессор случайных деревьев.
Этот класс реализует мета-эстиматор, который подгоняет множество случайных деревьев решений (также известных как экстремальные деревья) к различным подвыборкам данных и использует усреднение для повышения точности прогнозирования и контроля переобучения.
Дополнительные сведения см. в Руководстве пользователя.
- Параметры:
-
- 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: Добавлены значения с плавающей точкой для долей.
- Если int, то рассматривается
- 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: Добавлены значения с плавающей точкой для долей.
- Если int, то рассматривается
- 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признаков. - Если int, то рассматриваются
- 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.
- Если None (по умолчанию), то выбирается
- 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_список массивов -
Подмножество выбранных образцов для каждого базового оценщика.
-
estimator_
См. также
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