Spec-Zone.ru › scikit-learn

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: Добавлены значения с плавающей точкой для долей.

min_samples_leafint или float, по умолчанию=1

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

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

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

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 признаков.

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_pathBunch

Объект типа словарь, с указанными атрибутами.

ccp_alphasndarray

Эффективные альфа-значения поддерева во время обрезки.

impuritiesndarray

Сумма нечистот листьев поддерева для соответствующего значения альфа в ccp_alphas.

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

Spec-Zone.ru

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