ExtraTreeClassifier
- classsklearn.tree.ExtraTreeClassifier(*, criterion='gini', splitter='random', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='sqrt', random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, class_weight=None, ccp_alpha=0.0, monotonic_cst=None)[source]
-
Классификатор с чрезвычайно случайными деревьями.
Случайные деревья отличаются от классических деревьев решений способом их построения. При поиске лучшего разбиения для разделения образцов узла на две группы, для каждого из
max_featuresслучайным образом выбранных признаков выбираются случайные разбиения, и выбирается лучшее разбиение среди них. Когдаmax_featuresустановлено в 1, это эквивалентно построению полностью случайного дерева решений.Предупреждение: случайные деревья следует использовать только в методах ансамбля.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- criterion{“gini”, “entropy”, “log_loss”}, по умолчанию=”gini”
-
Функция для измерения качества разбиения. Поддерживаемые критерии — “gini” для критерия Джини и “log_loss” и “entropy” для информации Шеннона, см. Математическое описание.
- 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: Добавлены значения с плавающей точкой для долей.
- Если 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: Добавлены значения с плавающей точкой для долей.
- Если int, то рассмотрите
- min_weight_fraction_leaffloat, по умолчанию=0.0
-
Минимальная взвешенная доля суммы общих весов (всех входных образцов), необходимая для узла листа. Образцы имеют одинаковый вес, когда sample_weight не предоставлен.
- max_featuresint, float, {“sqrt”, “log2”} или None, по умолчанию=”sqrt”
-
Количество признаков для рассмотрения при поиске лучшего разбиения:
- Если 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"на"sqrt".Примечание: поиск разбиения не прекращается, пока не найдено хотя бы одно допустимое разбиение образцов узла, даже если для этого требуется эффективно проверить более
max_featuresпризнаков. - Если int, то рассмотрите
- random_stateint, RandomState instance или None, по умолчанию=None
-
Используется для случайного выбора
max_featuresна каждом разбиении. См. Глоссарий для подробностей. - max_leaf_nodesint, по умолчанию=None
-
Выращивание дерева с
max_leaf_nodesв порядке «лучший-сначала». Лучшие узлы определяются как относительное уменьшение неопределенности.Если None, то количество узлов листа не ограничено.
- 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.
- class_weightdict, список словарей или “balanced”, по умолчанию=None
-
Веса, связанные с классами в форме
{class_label: weight}. Если None, предполагается, что все классы имеют вес один. Для задач с несколькими выходами может быть передан список словарей в том же порядке, что и столбцы y.Обратите внимание, что для многовыходных (включая многоклассовые) задач веса должны быть определены для каждого класса каждого столбца в собственном словаре. Например, для многоклассовой многозначной классификации веса должны быть [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] вместо [{1:1}, {2:5}, {3:1}, {4:1}].
Режим “balanced” использует значения y для автоматической настройки весов, обратно пропорциональных частотам классов во входных данных как
n_samples / (n_classes * np.bincount(y)).Для многовыходных задач веса каждого столбца y будут умножаться.
Обратите внимание, что эти веса будут умножаться на sample_weight (переданный через метод fit), если sample_weight указан.
- ccp_alphaнеотрицательное число с плавающей точкой, по умолчанию=0.0
-
Параметр сложности, используемый для обрезки по минимальной стоимости-сложности. Поддерево с наибольшей сложностью стоимости, меньшей, чем
ccp_alphaбудет выбрано. По умолчанию обрезка не выполняется. См. Обрезка по минимальной стоимости-сложности для подробностей. См. Обрезка деревьев решений с помощью обрезки по сложности стоимости для примера такой обрезки.Добавлен в версии 0.22.
- monotonic_cstмассив-подобный из int размера (n_features), по умолчанию=None
-
- Указывает ограничение монотонности, которое нужно применить к каждому признаку.
-
- 1: монотонно возрастающий
- 0: без ограничения
- -1: монотонно убывающий
Если monotonic_cst равно None, никакие ограничения не применяются.
- Ограничения монотонности не поддерживаются для:
-
- многоклассовой классификации (т.е. когда
n_classes > 2), - многовыходной классификации (т.е. когда
n_outputs_ > 1), - классификации, обученной на данных с пропусками.
- многоклассовой классификации (т.е. когда
Ограничения выполняются относительно вероятности положительного класса.
Подробнее см. в Руководстве пользователя.
Добавлен в версии 1.4.
- Атрибуты:
-
- classes_массив numpy формы (n_classes,) или список массивов
-
Метки классов (задача с одним выходом) или список массивов меток классов (задача с несколькими выходами).
- max_features_int
-
Выведенное значение max_features.
- n_classes_int или список int
-
Количество классов (для задач с одним выходом) или список, содержащий количество классов для каждого выхода (для задач с несколькими выходами).
-
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
-
Количество выходов при выполнении
fit. - tree_экземпляр дерева
-
Базовый объект дерева. Обратитесь к
help(sklearn.tree._tree.Tree)для атрибутов объекта дерева и Понимание структуры дерева решений для базового использования этих атрибутов.
См. также
ExtraTreeRegressor-
Регрессор на основе чрезвычайно случайного дерева.
sklearn.ensemble.ExtraTreesClassifier-
Классификатор на основе деревьев экстремально случайных.
sklearn.ensemble.ExtraTreesRegressor-
Регрессор на основе деревьев экстремально случайных.
sklearn.ensemble.RandomForestClassifier-
Классификатор на основе случайного леса.
sklearn.ensemble.RandomForestRegressor-
Регрессор на основе случайного леса.
sklearn.ensemble.RandomTreesEmbedding-
Ансамбль полностью случайных деревьев.
Примечания
Значения по умолчанию для параметров, контролирующих размер деревьев (например,
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_iris >>> from sklearn.model_selection import train_test_split >>> from sklearn.ensemble import BaggingClassifier >>> from sklearn.tree import ExtraTreeClassifier >>> X, y = load_iris(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> extra_tree = ExtraTreeClassifier(random_state=0) >>> cls = BaggingClassifier(extra_tree, random_state=0).fit( ... X_train, y_train) >>> cls.score(X_test, y_test) 0.8947...
- apply(X, check_input=True)[source]
-
Возвращает индекс листа, к которому предсказан каждый образец.
Добавлен в версии 0.17.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные образцы. Внутренне они будут преобразованы в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, default=True
-
Разрешает пропустить несколько проверок ввода. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- X_leavesarray-like of shape (n_samples,)
-
Для каждого образца x в X возвращает индекс листа, в который попадает x. Листы пронумерованы в пределах
[0; self.tree_.node_count), возможно, с пропусками в нумерации.
- cost_complexity_pruning_path(X, y, sample_weight=None)[source]
-
Вычисляет путь обрезки при минимальной обрезке по стоимости сложности.
См. Минимальная обрезка по стоимости сложности для получения подробной информации о процессе обрезки.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Обучающие входные образцы. Внутренне они будут преобразованы в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsc_matrix. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Целевые значения (метки классов) как целые числа или строки.
- sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов. Если None, то образцы имеют одинаковый вес. Разбиения, которые создадут узлы-потомки с общим весом нуль или отрицательным, игнорируются при поиске разбиения в каждом узле. Разбиения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из узлов-потомков.
- Возвращает:
-
-
ccp_path
Bunch -
Объект типа словарь, с указанными атрибутами.
- ccp_alphasndarray
-
Эффективные альфа-значения поддерева во время обрезки.
- impuritiesndarray
-
Сумма нечистот листьев поддерева для соответствующего значения альфа в
ccp_alphas.
-
ccp_path
- decision_path(X, check_input=True)[source]
-
Возвращает путь принятия решения в дереве.
Добавлен в версии 0.18.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные образцы. Внутренне они будут преобразованы в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, default=True
-
Разрешает пропустить несколько проверок ввода. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- indicatorsparse matrix of shape (n_samples, n_nodes)
-
Возвращает CSR-матрицу индикатора узлов, где ненулевые элементы указывают, что образцы проходят через узлы.
- propertyfeature_importances_
-
Возвращает важности признаков.
Важность признака вычисляется как (нормализованное) общее снижение критерия, внесенное данным признаком. Также известна как важность Джини.
Предупреждение: важности признаков, основанные на нечистотах, могут быть вводящими в заблуждение для признаков с высокой кардинальностью (множество уникальных значений). См.
sklearn.inspection.permutation_importanceв качестве альтернативы.- Возвращает:
-
- feature_importances_ndarray of shape (n_features,)
-
Нормализованное общее снижение критерия по признаку (важность Джини).
- fit(X, y, sample_weight=None, check_input=True)[source]
-
Постройте классификатор дерева решений из обучающего набора (X, y).
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Обучающие входные образцы. Внутри он будет преобразован в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsc_matrix. - yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Целевые значения (метки классов) в виде целых чисел или строк.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса образцов. Если None, то образцы имеют одинаковый вес. Разбиения, которые создадут дочерние узлы с нулевым или отрицательным весом, игнорируются при поиске разбиения в каждом узле. Разбиения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из дочерних узлов.
- check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- selfDecisionTreeClassifier
-
Обученная модель.
- get_depth()[source]
-
Возвращает глубину дерева решений.
Глубина дерева — это максимальное расстояние между корнем и любым листом.
- Возвращает:
-
- self.tree_.max_depthint
-
Максимальная глубина дерева.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, обратитесь к Руководству пользователя для получения информации о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
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, sparse matrix} формы (n_samples, n_features)
-
Входные образцы. Внутри он будет преобразован в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Предсказанные классы или предсказанные значения.
- predict_log_proba(X)[source]
-
Предсказание логарифмов вероятностей классов входных образцов X.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Входные образцы. Внутри он будет преобразован в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix.
- Возвращает:
-
- probandarray формы (n_samples, n_classes) или список из n_outputs таких массивов, если n_outputs > 1
-
Логарифмы вероятностей классов входных образцов. Порядок классов соответствует атрибуту classes_.
- predict_proba(X, check_input=True)[source]
-
Предсказание вероятностей классов входных образцов X.
Предсказанная вероятность класса — это доля образцов одного и того же класса в листе.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Входные образцы. Внутри он будет преобразован в
dtype=np.float32и, если предоставлена разреженная матрица, в разреженнуюcsr_matrix. - check_inputbool, по умолчанию=True
-
Разрешает пропустить несколько проверок входных данных. Не используйте этот параметр, если вы не знаете, что делаете.
- Возвращает:
-
- probandarray формы (n_samples, n_classes) или список из n_outputs таких массивов, если n_outputs > 1
-
Вероятности классов входных образцов. Порядок классов соответствует атрибуту classes_.
- score(X, y, sample_weight=None)[source]
-
Возвращает среднюю точность на заданных тестовых данных и метках.
В случае многоклассовой классификации это точность подмножества, которая является жёсткой метрикой, так как для каждой выборки требуется, чтобы каждый набор меток был предсказан правильно.
- Параметры:
-
- Xмассив-подобный формы (n_samples, n_features)
-
Тестовые образцы.
- yмассив-подобный формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightмассив-подобный формы (n_samples,), по умолчанию=None
-
Веса выборки.
- Возвращает:
-
- scorefloat
-
Средняя точность
self.predict(X)по отношению кy.
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') ExtraTreeClassifier[source]
-
Запрос метаданных, передаваемых методу
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяfitпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст ихfit. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо оригинального названия.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в случае использования этого оценщика как под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Параметры:
-
- sample_weightстрока, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
- set_params(**params)[source]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>для возможности обновления каждого компонента вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') ExtraTreeClassifier[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяscoreпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст ихscore. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо оригинального названия.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в случае использования этого оценщика как под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Параметры:
-
- sample_weightстрока, 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.tree.ExtraTreeClassifier.html