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)[source]
-
Регрессор с экстремально случайными деревьями.
Экстремальные деревья отличаются от классических деревьев решений способом их построения. При поиске лучшего разбиения для разделения образцов узла на две группы для каждого из
max_featuresслучайным образом выбранных признаков генерируются случайные разбиения, и выбирается лучшее из них. Когдаmax_featuresустановлено в 1, это эквивалентно построению полностью случайного дерева решений.Предупреждение: экстремальные деревья следует использовать только в методах ансамблирования.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- criterion{“squared_error”, “friedman_mse”, “absolute_error”, “poisson”}, default=”squared_error”
-
Функция измерения качества разбиения. Поддерживаемые критерии: “squared_error” для среднеквадратичной ошибки, которая равна уменьшению дисперсии как критерий выбора признаков и минимизирует потерю L2, используя среднее значение каждого терминального узла, “friedman_mse”, который использует среднеквадратическую ошибку с улучшением оценки Фридмана для потенциальных разбиений, “absolute_error” для средней абсолютной ошибки, которая минимизирует потерю L1, используя медиану каждого терминального узла, и “poisson”, который использует уменьшение отклонения Пуассона для поиска разбиений.
Добавлена в версии 0.18: Критерий средней абсолютной ошибки (MAE).
Добавлена в версии 0.24: Критерий отклонения Пуассона.
- splitter{“random”, “best”}, default=”random”
-
Стратегия, используемая для выбора разбиения в каждом узле. Поддерживаемые стратегии: “best” для выбора лучшего разбиения и “random” для выбора лучшего случайного разбиения.
- 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: Добавлены значения float для дробей.
- Если 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: Добавлены значения float для дробей.
- Если int, то рассматривается
- min_weight_fraction_leaffloat, default=0.0
-
Минимальная взвешенная доля от суммы весов (всех входных образцов), необходимая для наличия в листе. Образцы имеют равный вес, когда sample_weight не указан.
- max_featuresint, float, {“sqrt”, “log2”} or None, 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, то
max_features=n_features.
Изменено в версии 1.1: Значение по умолчанию для
max_featuresизменено с"auto"на1.0.Примечание: поиск разбиения не останавливается до тех пор, пока не будет найдено хотя бы одно допустимое разбиение образцов узла, даже если это потребует эффективного анализа более чем
max_featuresпризнаков. - Если int, то рассматривается
- random_stateint, RandomState instance or None, default=None
-
Используется для случайного выбора
max_featuresна каждом разбиении. См. Справочник для получения подробной информации. - 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.
- max_leaf_nodesint, default=None
-
Выращивает дерево с
max_leaf_nodesв режиме поиска по наилучшему совпадению. Лучшие узлы определяются как относительное уменьшение неопределенности. Если None, то количество узлов листа не ограничено. - ccp_alphaнеотрицательное число с плавающей точкой, default=0.0
-
Параметр сложности, используемый для обрезки с минимальной стоимостью-сложности. Поддерево с наибольшей сложностью стоимости, меньшей чем
ccp_alphaбудет выбрано. По умолчанию обрезка не выполняется. См. Минимальная обрезка по сложности стоимости для получения подробной информации. См. Постобработка деревьев решений с обрезкой по сложности стоимости для примера такой обрезки.Добавлена в версии 0.22.
- monotonic_cstмассив-подобный int формы (n_features), default=None
-
- Указывает монотонное ограничение, которое необходимо применить к каждому признаку.
-
- 1: монотонно возрастает
- 0: без ограничений
- -1: монотонно убывает
Если monotonic_cst равно None, ограничения не применяются.
- Ограничения монотонности не поддерживаются для:
-
- регрессий с несколькими выходными значениями (т.е. когда
n_outputs_ > 1), - регрессий, обученных на данных с пропущенными значениями.
- регрессий с несколькими выходными значениями (т.е. когда
Подробнее см. в Руководстве пользователя.
Добавлена в версии 1.4.
- Атрибуты:
-
- max_features_int
-
Установленное значение max_features.
- n_features_in_int
-
Количество признаков, увиденных во время сопоставления.
Добавлена в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, увиденные во время сопоставления. Определены только тогда, когда у
Xесть имена признаков, которые все являются строками.Добавлена в версии 1.0.
-
feature_importances_массив формы (n_features,) -
Возвращает значения важности признаков.
- n_outputs_int
-
Количество выходов, когда выполняется
fit. - tree_экземпляр дерева
-
Базовый объект Tree. Пожалуйста, обратитесь к
help(sklearn.tree._tree.Tree)для атрибутов объекта Tree и Понимание структуры дерева решений для базового использования этих атрибутов.
См. также
ExtraTreeClassifier-
Классификатор с экстремально случайными деревьями.
sklearn.ensemble.ExtraTreesClassifier-
Классификатор с экстремальными деревьями.
sklearn.ensemble.ExtraTreesRegressor-
Регрессор с экстремальными деревьями.
Примечания
Значения параметров, контролирующих размер деревьев (например,
max_depth,min_samples_leaf, и т. д.) по умолчанию приводят к полностью выращенным и не обрезким деревьям, которые могут быть очень большими для некоторых наборов данных. Для уменьшения потребления памяти размер и сложность деревьев должны контролироваться путем настройки значений этих параметров.Ссылки
- [1]
P. Geurts, D. Ernst., and 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 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)[source]
-
Возвращает индекс листа, которому предсказывается каждый образец.
Добавлен в версии 0.17.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Входные образцы. Внутри они будут преобразованы в
dtype=np.float32, а если предоставлена разреженная матрица, то в разреженнуюcsr_matrix. - check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок ввода. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- X_leavesarray-like формы (n_samples,)
-
Для каждого элемента данных x в X возвращает индекс листа, в который попадает x. Листы пронумерованы в
[0; self.tree_.node_count), возможно, с пробелами в нумерации.
- cost_complexity_pruning_path(X, y, sample_weight=None)[source]
-
Вычисляет путь обрезки во время обрезки минимальной стоимости и сложности.
См. Обрезка минимальной стоимости и сложности для получения подробностей о процессе обрезки.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие входные образцы. Внутри они будут преобразованы в
dtype=np.float32и если предоставлена разреженная матрица, то в разреженнуюcsc_matrix. - yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Целевые значения (метки классов) как целые числа или строки.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса образцов. Если None, то образцы имеют одинаковый вес. Разбиения, которые создали бы узлы-потомки с чистым нулевым или отрицательным весом, игнорируются во время поиска разбиения в каждом узле. Разбиения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом узле-потомке.
- Возвращает:
-
-
ccp_path
Bunch -
Объект типа словарь, с последующими атрибутами.
- ccp_alphasndarray
-
Эффективные альфа-значения поддерева во время обрезки.
- impuritiesndarray
-
Сумма нечистот листьев поддерева для соответствующего значения alpha в
ccp_alphas.
-
ccp_path
- decision_path(X, check_input=True)[source]
-
Возвращает путь принятия решения в дереве.
Добавлен в версии 0.18.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Входные образцы. Внутри они будут преобразованы в
dtype=np.float32и если предоставлена разреженная матрица, то в разреженнуюcsr_matrix. - check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок ввода. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- indicatorразреженная матрица формы (n_samples, n_nodes)
-
Возвращает матрицу указателей узлов в формате CSR, где ненулевые элементы указывают, что образцы проходят через узлы.
- свойствоfeature_importances_
-
Возвращает важности признаков.
Важность признака вычисляется как (нормализованное) общее уменьшение критерия, принесенное этим признаком. Он также известен как важность Джини.
Предупреждение: важности признаков на основе нечистот могут быть вводящими в заблуждение для признаков с высокой кратностью (много уникальных значений). См.
sklearn.inspection.permutation_importanceв качестве альтернативы.- Возвращает:
-
- feature_importances_ndarray формы (n_features,)
-
Нормализованное общее уменьшение критерия по признаку (важность Джини).
- fit(X, y, sample_weight=None, check_input=True)[source]
-
Построение регрессора дерева решений из обучающего набора (X, y).
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие входные образцы. Внутри они будут преобразованы в
dtype=np.float32и если предоставлена разреженная матрица, то в разреженнуюcsc_matrix. - yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Целевые значения (вещественные числа). Для максимальной эффективности используйте
dtype=np.float64иorder='C'. - sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса образцов. Если None, то образцы имеют одинаковый вес. Разбиения, которые создали бы узлы-потомки с чистым нулевым или отрицательным весом, игнорируются во время поиска разбиения в каждом узле.
- check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок ввода. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- selfDecisionTreeRegressor
-
Обученный оценщик.
- get_depth()[source]
-
Возвращает глубину дерева решений.
Глубина дерева — максимальное расстояние между корнем и любым листом.
- Возвращает:
-
- self.tree_.max_depthint
-
Максимальная глубина дерева.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя по тому, как работает механизм маршрутизации.
- Возвращает:
-
- маршрутизацияMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_n_leaves()[source]
-
Возвращает количество листьев дерева решений.
- Возвращает:
-
- self.tree_.n_leavesint
-
Количество листьев.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- predict(X, check_input=True)[source]
-
Предсказать класс или регрессионное значение для X.
Для классификационной модели возвращается предсказанный класс для каждого образца в X. Для регрессионной модели возвращается предсказанное значение на основе X.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Входящие образцы. Внутренне он будет преобразован в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- yarray-like формы (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$') ExtraTreeRegressor[source]
-
Запрос метаданных, передаваемых в метод
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь со Руководством пользователя для понимания принципов работы механизма маршрутизации.Возможные значения для каждого параметра:
-
True: метаданные запрашиваются и передаются вfitпри их наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не будет передавать их вfit. -
None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с указанным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запрос для некоторых параметров, не затрагивая другие.Добавлена в версии 1.3.
Примечание
Этот метод актуален только если данный оценщик используется как под-оценщик мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Returns:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[source]
-
Устанавливает параметры данного оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Parameters:
-
- **paramsdict
-
Параметры оценщика.
- Returns:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') ExtraTreeRegressor[source]
-
Запрос метаданных, передаваемых в метод
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь со Руководством пользователя для понимания принципов работы механизма маршрутизации.Возможные значения для каждого параметра:
-
True: метаданные запрашиваются и передаются вscoreпри их наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не будет передавать их вscore. -
None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с указанным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запрос для некоторых параметров, не затрагивая другие.Добавлена в версии 1.3.
Примечание
Этот метод актуален только если данный оценщик используется как под-оценщик мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Returns:
-
- selfobject
-
Обновлённый объект.
-
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.tree.ExtraTreeRegressor.html