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)[исходный код]

Классификатор на основе чрезвычайно рандомизированного дерева.

Экстра-деревья отличаются от классических деревьев решений способом построения. При поиске наилучшего разбиения, которое разделит образцы узла на две группы, для каждого из max_features случайно выбранных признаков строятся случайные разбиения, после чего выбирается наилучшее из них. Если max_features установлено в 1, в результате строится полностью случайное дерево решений.

Предупреждение: экстра-деревья следует использовать только в составе ансамблевых методов.

Подробнее см. в Руководстве пользователя.

Параметры:
criterion{“gini”, “entropy”, “log_loss”}, default=”gini”

Функция для измерения качества разбиения. Поддерживаются критерии “gini” для примеси Джини, а также “log_loss” и “entropy” для информационного выигрыша Шеннона; см. Математическая формулировка.

splitter{“random”, “best”}, default=”random”

Стратегия выбора разбиения в каждом узле. Поддерживаются стратегии “best” для выбора наилучшего разбиения и “random” для выбора наилучшего случайного разбиения.

max_depthint, default=None

Максимальная глубина дерева. Если значение равно None, узлы расширяются до тех пор, пока все листья не станут чистыми или пока все листья не будут содержать меньше образцов, чем min_samples_split.

min_samples_splitint or float, default=2

Минимальное количество образцов, необходимое для разбиения внутреннего узла:

  • Если задано целое число, min_samples_split в качестве минимального количества.
  • Если задано число с плавающей точкой, min_samples_split является долей, а ceil(min_samples_split * n_samples) — минимальным количеством образцов для каждого разбиения.

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

min_samples_leafint or float, default=1

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

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

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

min_weight_fraction_leaffloat, default=0.0

Минимальная взвешенная доля суммы весов (всех входных образцов), необходимая для листового узла. Если sample_weight не задан, образцы имеют одинаковые веса.

max_featuresint, float, {“sqrt”, “log2”} or None, default=”sqrt”

Количество признаков, рассматриваемых при поиске наилучшего разбиения:

  • Если задано целое число, при каждом разбиении рассматривается max_features признаков.
  • Если задано число с плавающей точкой, 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 or None, default=None

Используется для случайного выбора max_features при каждом разбиении. Подробности см. в глоссарии.

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.

class_weightdict, list of dict or “balanced”, default=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).

ccp_alphanon-negative float, default=0.0

Параметр сложности, используемый для минимального отсечения с учетом сложности и стоимости. Будет выбрано поддерево с наибольшей стоимостью сложности, меньшей ccp_alpha. По умолчанию отсечение не выполняется. Подробности см. в разделе Минимальное отсечение с учетом сложности и стоимости. Пример такого отсечения см. в разделе Отсечение деревьев решений после обучения с учетом сложности и стоимости.

Добавлено в версии 0.22.

monotonic_cstarray-like of int of shape (n_features), default=None
Задает ограничение монотонности для каждого признака.
  • 1: монотонное возрастание
  • 0: без ограничений
  • -1: монотонное убывание

Если monotonic_cst равно None, ограничения не применяются.

Ограничения монотонности не поддерживаются для:
  • многоклассовой классификации (то есть когда n_classes > 2),
  • классификации с несколькими выходами (то есть когда n_outputs_ > 1).

Ограничения относятся к вероятности положительного класса.

Подробнее см. в Руководстве пользователя.

Добавлено в версии 1.4.

Атрибуты:
classes_ndarray of shape (n_classes,) or list of ndarray

Метки классов (задача с одним выходом) или список массивов с метками классов (задача с несколькими выходами).

max_features_int

Выведенное значение max_features.

n_classes_int or list of int

Количество классов (для задач с одним выходом) или список, содержащий количество классов для каждого выхода (для задач с несколькими выходами).

feature_importances_ndarray of shape (n_features,)

Возвращает важность признаков.

n_features_in_int

Количество признаков, обнаруженных во время обучения.

Добавлено в версии 0.24.

feature_names_in_ndarray of shape (n_features_in_,)

Названия признаков, обнаруженных во время обучения. Определяется только в том случае, если X содержит названия признаков, являющиеся строками.

Добавлено в версии 1.0.

n_outputs_int

Количество выходов при выполнении fit.

tree_Tree instance

Базовый объект Tree. Атрибуты объекта 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)[исходный код]

Возвращает индекс листа, в который попадает каждый образец.

Добавлено в версии 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)[исходный код]

Вычисляет путь отсечения при минимальном отсечении с учетом сложности и стоимости.

Подробности процесса отсечения см. в разделе Минимальное отсечение с учетом сложности и стоимости.

Параметры:
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

Эффективные значения alpha поддерева в процессе отсечения.

impuritiesndarray

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

decision_path(X, check_input=True)[исходный код]

Возвращает путь принятия решения в дереве.

Добавлено в версии 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-матрицу-индикатор узлов, в которой ненулевые элементы указывают, что образцы проходят через соответствующие узлы.

fit(X, y, sample_weight=None, check_input=True)[исходный код]

Строит классификатор на основе дерева решений по обучающей выборке (X, y).

Параметры:
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, все образцы имеют одинаковые веса. При поиске разбиения в каждом узле игнорируются разбиения, которые создают дочерние узлы с суммарным весом, равным нулю или отрицательным. Также игнорируются разбиения, при которых какой-либо отдельный класс получает отрицательный вес в одном из дочерних узлов.

check_inputbool, default=True

Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.

Возвращает:
selfDecisionTreeClassifier

Обученный оцениватель.

get_depth()[исходный код]

Возвращает глубину дерева решений.

Глубина дерева — это максимальное расстояние между корнем и любым листом.

Возвращает:
self.tree_.max_depthint

Максимальная глубина дерева.

get_metadata_routing()[исходный код]

Возвращает маршрутизацию метаданных этого объекта.

Ознакомьтесь с Руководством пользователя, чтобы узнать, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий сведения о маршрутизации.

get_n_leaves()[исходный код]

Возвращает количество листьев дерева решений.

Возвращает:
self.tree_.n_leavesint

Количество листьев.

get_params(deep=True)[исходный код]

Возвращает параметры этого оценивателя.

Параметры:
deepbool, default=True

Если True, возвращает параметры этого оценивателя и содержащихся в нем подобъектов, являющихся оценивателями.

Возвращает:
paramsdict

Названия параметров, сопоставленные с их значениями.

predict(X, check_input=True)[исходный код]

Предсказывает класс или значение регрессии для X.

Для модели классификации возвращается предсказанный класс для каждого образца в X. Для модели регрессии возвращается предсказанное на основе X значение.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Входные образцы. Внутри они будут преобразованы в dtype=np.float32, а если передана разреженная матрица — в разреженную csr_matrix.

check_inputbool, default=True

Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.

Возвращает:
yarray-like of shape (n_samples,) or (n_samples, n_outputs)

Предсказанные классы или значения.

predict_log_proba(X)[исходный код]

Предсказывает логарифмы вероятностей классов для входных образцов X.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Входные образцы. Внутри они будут преобразованы в dtype=np.float32, а если передана разреженная матрица — в разреженную csr_matrix.

Возвращает:
probandarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1

Логарифмы вероятностей классов для входных образцов. Порядок классов соответствует порядку в атрибуте classes_.

predict_proba(X, check_input=True)[исходный код]

Предсказывает вероятности классов для входных образцов X.

Предсказанная вероятность класса равна доле образцов того же класса в листе.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Входные образцы. Внутри они будут преобразованы в dtype=np.float32, а если передана разреженная матрица — в разреженную csr_matrix.

check_inputbool, default=True

Позволяет пропустить несколько проверок входных данных. Не используйте этот параметр, если не знаете, что делаете.

Возвращает:
probandarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1

Вероятности классов для входных образцов. Порядок классов соответствует порядку в атрибуте classes_.

score(X, y, sample_weight=None)[исходный код]

Возвращает точность на предоставленных данных и метках.

В многометочной классификации это точность по подмножествам — строгая метрика, поскольку для каждого образца требуется правильно предсказать набор всех меток.

Параметры:
Xarray-like of shape (n_samples, n_features)

Тестовые образцы.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

Истинные метки для X.

sample_weightarray-like of shape (n_samples,), default=None

Веса образцов.

Возвращает:
scorefloat

Средняя точность self.predict(X) относительно y.

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ExtraTreeClassifier[исходный код]

Настраивает, следует ли запрашивать передачу метаданных методу 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, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

Возвращает:
selfobject

Обновлённый объект.

set_params(**params)[исходный код]

Задаёт параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). Параметры последних имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfestimator instance

Экземпляр оценивателя.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ExtraTreeClassifier[исходный код]

Настраивает, следует ли запрашивать передачу метаданных методу 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, default=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.ExtraTreeClassifier.html

Spec-Zone.ru

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