ExtraTreeRegressor
- classsklearn.tree.ExtraTreeRegressor(*, criterion='squared_error', splitter='random', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=1.0, random_state=None, min_impurity_decrease=0.0, max_leaf_nodes=None, ccp_alpha=0.0, monotonic_cst=None)[источник]
-
Регрессор на основе крайне рандомизированного дерева.
Extra-trees отличаются от классических деревьев решений способом построения. При поиске наилучшего разбиения, позволяющего разделить выборки узла на две группы, для каждой из
max_featuresслучайно выбранных признаков генерируются случайные разбиения, после чего выбирается наилучшее из них. При значенииmax_features, равном 1, в результате строится полностью случайное дерево решений.Предупреждение: Extra-trees следует использовать только в составе ансамблевых методов.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- criterion{“squared_error”, “absolute_error”, “poisson”}, по умолчанию=”squared_error”
-
Функция для измерения качества разбиения. Поддерживаются критерии “squared_error” для среднеквадратичной ошибки, которая эквивалентна уменьшению дисперсии при отборе признаков и минимизирует потерю L2, используя среднее значение каждого конечного узла; “absolute_error” для средней абсолютной ошибки, которая минимизирует потерю L1, используя медиану каждого конечного узла; и “poisson”, который использует уменьшение девианса Пуассона для поиска разбиений, также применяя среднее значение каждого конечного узла.
Добавлено в версии 0.18: Критерий средней абсолютной ошибки (MAE).
Добавлено в версии 0.24: Критерий девианса Пуассона.
Изменено в версии 1.9: Критерий
"friedman_mse"признан устаревшим. - splitter{“random”, “best”}, по умолчанию=”random”
-
Стратегия выбора разбиения в каждом узле. Поддерживаются стратегии “best” для выбора наилучшего разбиения и “random” для выбора наилучшего случайного разбиения.
- max_depthint, по умолчанию=None
-
Максимальная глубина дерева. Если None, узлы расширяются до тех пор, пока все листья не станут чистыми или пока все листья не будут содержать меньше образцов, чем min_samples_split.
- min_samples_splitint или float, по умолчанию=2
-
Минимальное количество образцов, необходимое для разбиения внутреннего узла:
- Если int, то
min_samples_splitсчитается минимальным количеством. - Если float, то
min_samples_split— это доля, аceil(min_samples_split * n_samples)— минимальное количество образцов для каждого разбиения.
Изменено в версии 0.18: Добавлена возможность задавать доли значениями float.
- Если int, то
- min_samples_leafint или float, по умолчанию=1
-
Минимальное количество образцов, необходимое в листовом узле. Точка разбиения на любой глубине будет рассмотрена, только если в каждой из левой и правой ветвей останется не менее
min_samples_leafобучающих образцов. Это может сгладить модель, особенно при регрессии.- Если int, то
min_samples_leafсчитается минимальным количеством. - Если float, то
min_samples_leaf— это доля, аceil(min_samples_leaf * n_samples)— минимальное количество образцов для каждого узла.
Изменено в версии 0.18: Добавлена возможность задавать доли значениями float.
- Если int, то
- min_weight_fraction_leaffloat, по умолчанию=0.0
-
Минимальная взвешенная доля общей суммы весов (для всех входных образцов), необходимая для листового узла. Если sample_weight не задан, все образцы имеют одинаковый вес.
- max_featuresint, float, {“sqrt”, “log2”} или None, по умолчанию=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, то
max_features=n_features.
Изменено в версии 1.1: Значение по умолчанию для
max_featuresизменено с"auto"на1.0.Примечание: поиск разбиения не прекращается, пока не будет найдено хотя бы одно допустимое разбиение выборок узла, даже если для этого потребуется фактически проверить более
max_featuresпризнаков. - Если int, то при каждом разбиении рассматривается
- random_stateint, экземпляр RandomState или None, по умолчанию=None
-
Используется для случайного выбора
max_featuresпри каждом разбиении. Подробнее см. в глоссарии. - min_impurity_decreasefloat, по умолчанию=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.
- max_leaf_nodesint, по умолчанию=None
-
Строить дерево с
max_leaf_nodes, используя подход «сначала лучшие». Наилучшими считаются узлы с наибольшим относительным уменьшением неоднородности. Если None, количество листовых узлов не ограничено. - ccp_alphaнеотрицательное значение float, по умолчанию=0.0
-
Параметр сложности, используемый для отсечения по минимальной стоимости и сложности. Будет выбрано поддерево с наибольшей стоимостью сложности, меньшей
ccp_alpha. По умолчанию отсечение не выполняется. Подробнее см. в разделе Отсечение по минимальной стоимости и сложности. Пример такого отсечения приведен в разделе Построение деревьев решений с последующим отсечением по стоимости и сложности.Добавлено в версии 0.22.
- monotonic_cstмассивоподобный объект из int формы (n_features), по умолчанию=None
-
- Определяет ограничение монотонности, применяемое к каждому признаку.
-
- 1: монотонное возрастание
- 0: без ограничений
- -1: монотонное убывание
Если monotonic_cst равен None, ограничения не применяются.
- Ограничения монотонности не поддерживаются для:
-
- регрессии с несколькими выходами (то есть когда
n_outputs_ > 1).
- регрессии с несколькими выходами (то есть когда
Подробнее см. в Руководстве пользователя.
Добавлено в версии 1.4.
- Атрибуты:
-
- max_features_int
-
Выведенное значение max_features.
- n_features_in_int
-
Количество признаков, обнаруженных во время fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, обнаруженных во время fit. Определяется только в том случае, если
Xсодержит имена признаков, представленные строками.Добавлено в версии 1.0.
-
feature_importances_ndarray формы (n_features,) -
Возвращает важности признаков.
- n_outputs_int
-
Количество выходов при выполнении
fit. - tree_экземпляр Tree
-
Базовый объект Tree. Описание атрибутов объекта Tree см. в
help(sklearn.tree._tree.Tree), а сведения об их использовании — в разделе Структура дерева решений.
См. также
ExtraTreeClassifier-
Классификатор на основе крайне рандомизированного дерева.
sklearn.ensemble.ExtraTreesClassifier-
Классификатор на основе Extra-trees.
sklearn.ensemble.ExtraTreesRegressor-
Регрессор на основе Extra-trees.
Примечания
Значения по умолчанию для параметров, управляющих размером деревьев (например,
max_depth,min_samples_leafи т. д.), приводят к построению полностью разросшихся деревьев без отсечения, которые могут быть очень большими для некоторых наборов данных. Чтобы уменьшить потребление памяти, следует управлять сложностью и размером деревьев, задавая значения этих параметров.Ссылки
[1]P. Geurts, D. Ernst и L. Wehenkel, «Крайне рандомизированные деревья», 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 BaggingRegressor >>> from sklearn.tree import ExtraTreeRegressor >>> X, y = load_diabetes(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> extra_tree = ExtraTreeRegressor(random_state=0) >>> reg = BaggingRegressor(extra_tree, random_state=0).fit( ... X_train, y_train) >>> reg.score(X_test, y_test) 0.33
- apply(X, check_input=True)[источник]
-
Возвращает индекс листа, к которому относится предсказание для каждого образца.
Добавлено в версии 0.17.
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)
-
Входные образцы. Внутри он будет преобразован в
dtype=np.float32, а в случае разреженной матрицы — в разреженныйcsr_matrix. - check_inputbool, по умолчанию=True
-
Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.
- Возвращает:
-
- X_leavesмассивоподобный объект формы (n_samples,)
-
Для каждой точки данных x из X возвращает индекс листа, в который попадает x. Листья нумеруются внутри
[0; self.tree_.node_count), при этом в нумерации могут быть пропуски.
- cost_complexity_pruning_path(X, y, sample_weight=None)[источник]
-
Вычисляет путь отсечения при отсечении по минимальной стоимости и сложности.
Подробнее о процессе отсечения см. в разделе Отсечение по минимальной стоимости и сложности.
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)
-
Входные обучающие образцы. Внутри они будут преобразованы в
dtype=np.float32, а в случае разреженной матрицы — в разреженныйcsc_matrix. - yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Целевые значения (метки классов) в виде целых чисел или строк.
- sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов. Если None, все образцы имеют одинаковый вес. При поиске разбиения в каждом узле игнорируются разбиения, которые создают дочерние узлы с нулевым или отрицательным суммарным весом. Также игнорируются разбиения, при которых какой-либо отдельный класс получает отрицательный вес в одном из дочерних узлов.
- Возвращает:
-
-
ccp_path
Bunch -
Объект, подобный словарю, со следующими атрибутами.
- ccp_alphasndarray
-
Эффективные значения alpha поддерева при отсечении.
- impuritiesndarray
-
Сумма неоднородностей листьев поддерева для соответствующего значения alpha в
ccp_alphas.
-
ccp_path
- decision_path(X, check_input=True)[источник]
-
Возвращает путь принятия решения в дереве.
Добавлено в версии 0.18.
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)
-
Входные образцы. Внутри они будут преобразованы в
dtype=np.float32, а в случае разреженной матрицы — в разреженныйcsr_matrix. - check_inputbool, по умолчанию=True
-
Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.
- Возвращает:
-
- indicatorразреженная матрица формы (n_samples, n_nodes)
-
Возвращает матрицу CSR-индикаторов узлов, в которой ненулевые элементы указывают, что образцы проходят через соответствующие узлы.
- fit(X, y, sample_weight=None, check_input=True)[источник]
-
Строит дерево решений для регрессии на обучающей выборке (X, y).
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)
-
Входные обучающие образцы. Внутри они будут преобразованы в
dtype=np.float32, а в случае разреженной матрицы — в разреженныйcsc_matrix. - yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Целевые значения (вещественные числа). Для максимальной эффективности используйте
dtype=np.float64иorder='C'. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов. Если None, все образцы имеют одинаковый вес. При поиске разбиения в каждом узле игнорируются разбиения, которые создают дочерние узлы с нулевым или отрицательным суммарным весом.
- check_inputbool, по умолчанию=True
-
Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.
- Возвращает:
-
- selfDecisionTreeRegressor
-
Обученный оцениватель.
- get_depth()[источник]
-
Возвращает глубину дерева решений.
Глубина дерева — это максимальное расстояние от корня до любого листа.
- Возвращает:
-
- self.tree_.max_depthint
-
Максимальная глубина дерева.
- get_metadata_routing()[источник]
-
Получает маршрутизацию метаданных этого объекта.
Ознакомьтесь с Руководством пользователя, чтобы узнать, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_n_leaves()[источник]
-
Возвращает количество листьев дерева решений.
- Возвращает:
-
- self.tree_.n_leavesint
-
Количество листьев.
- get_params(deep=True)[источник]
-
Получает параметры этого оценивателя.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценивателя и содержащихся в нем подобъектов, которые являются оценивателями.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- predict(X, check_input=True)[источник]
-
Предсказывает класс или значение регрессии для X.
Для модели классификации возвращается предсказанный класс для каждого образца из X. Для модели регрессии возвращается предсказанное значение на основе X.
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)
-
Входные образцы. Внутри они будут преобразованы в
dtype=np.float32, а в случае разреженной матрицы — в разреженныйcsr_matrix. - check_inputbool, по умолчанию=True
-
Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.
- Возвращает:
-
- yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Предсказанные классы или значения предсказаний.
- score(X, y, sample_weight=None)[источник]
-
Возвращает коэффициент детерминации на тестовых данных.
Коэффициент детерминации \(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.- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Тестовые образцы. Для некоторых оценивателей это может быть предварительно вычисленная матрица ядра или список универсальных объектов формы
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество образцов, использованных при обучении оценивателя. - yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightмассивоподобный объект формы (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$') ExtraTreeRegressor[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
fit.Обратите внимание, что этот метод имеет значение только тогда, когда данный оценщик используется как субоценщик внутри метаоценщика и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Информацию о работе механизма маршрутизации см. в Руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вfit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоценщик не будет передавать их вfit. -
None: метаданные не запрашиваются, и метаоценщик вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценщику под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для других.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False or None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[исходный код]
-
Установить параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют формат<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') ExtraTreeRegressor[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
score.Обратите внимание, что этот метод имеет значение только тогда, когда данный оценщик используется как субоценщик внутри метаоценщика и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Информацию о работе механизма маршрутизации см. в Руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вscore, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоценщик не будет передавать их вscore. -
None: метаданные не запрашиваются, и метаоценщик вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценщику под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для других.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False or None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.tree.ExtraTreeRegressor.html