Spec-Zone.ru › scikit-learn

ExtraTreesClassifier

classsklearn.ensemble.ExtraTreesClassifier(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='sqrt', max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=False, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None, monotonic_cst=None)[source]

Классификатор случайных лесов.

Этот класс реализует мета-оценщик, который подгоняет несколько случайных деревьев решений (также известных как extra-trees) к различным подвыборкам набора данных и использует усреднение для повышения точности прогнозирования и контроля переобучения.

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

Параметры:
n_estimatorsint, по умолчанию=100

Количество деревьев в лесу.

Изменено в версии 0.22: Значение по умолчанию для n_estimators изменено с 10 до 100 в 0.22.

criterion{“gini”, “entropy”, “log_loss”}, по умолчанию=”gini”

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

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_features{“sqrt”, “log2”, None}, int или float, по умолчанию=”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 признаков.

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.

bootstrapbool, по умолчанию=False

Использовать ли подвыборки при построении деревьев. Если False, то для построения каждого дерева используется весь набор данных.

oob_scorebool или вызываемый объект, по умолчанию=False

Использовать ли образцы за пределами выборки для оценки обобщающей способности. По умолчанию используется accuracy_score. Укажите вызываемый объект с сигнатурой metric(y_true, y_pred) для использования пользовательской метрики. Доступно только если bootstrap=True.

n_jobsint, по умолчанию=None

Количество задач для одновременного выполнения. fit, predict, decision_path и apply все паралелизованы по деревьям. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Словарь для получения дополнительной информации.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Управляет 3 источниками случайности:

  • перевыборка образцов при построении деревьев (если bootstrap=True)
  • выборка признаков для рассмотрения при поиске лучшего разбиения на каждом узле (если max_features < n_features)
  • выбор разбиений для каждого из max_features

См. Словарь для получения дополнительной информации.

verboseint, по умолчанию=0

Управляет подробностью вывода при подгонке и прогнозировании.

warm_startbool, по умолчанию=False

Если установлено в True, повторно используйте решение предыдущего вызова fit и добавьте больше оценщиков в ансамбль, в противном случае просто подгоните весь новый лес. См. Словарь и Добавление дополнительных деревьев для получения дополнительной информации.

class_weight{“balanced”, “balanced_subsample”}, dict или список словарей, по умолчанию=None

Веса, связанные с классами в форме {class_label: weight}. Если не указаны, предполагается, что все классы имеют вес один. Для задач с несколькими выходами можно указать список словарей в том же порядке, что и столбцы 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))

Режим “balanced_subsample” аналогичен режиму “balanced”, за исключением того, что веса вычисляются на основе подвыборки для каждого построенного дерева.

Для задач с несколькими выходами веса каждого столбца y будут перемножаться.

Обратите внимание, что эти веса будут перемножаться с sample_weight (переданным через метод fit), если sample_weight указан.

ccp_alphaнеотрицательное число с плавающей точкой, по умолчанию=0.0

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

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

max_samplesint или float, по умолчанию=None

Если bootstrap True, количество образцов, которые необходимо извлечь из X для обучения каждого базового оценщика.

  • Если None (по умолчанию), то извлекается X.shape[0] образцов.
  • Если int, то извлекается max_samples образцов.
  • Если float, то извлекается max_samples * X.shape[0] образцов. Таким образом, max_samples должно находиться в интервале (0.0, 1.0].

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

monotonic_cstмассив-подобный int формы (n_features), по умолчанию=None
Указывает ограничение монотонности, которое должно быть применено к каждому признаку.
  • 1: монотонно возрастающий
  • 0: без ограничений
  • -1: монотонно убывающий

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

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

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

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

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

Атрибуты:
estimator_ExtraTreeClassifier

Шаблон дочернего оценщика, используемый для создания набора обученных под-оценщиков.

Добавлена в версии 1.2: base_estimator_ было переименовано в estimator_.

estimators_список DecisionTreeClassifier

Набор обученных под-оценщиков.

classes_массив формы (n_classes,) или список таких массивов

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

n_classes_целое число или список

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

feature_importances_массив формы (n_features,)

Важности признаков, основанные на неоднородности.

n_features_in_целое число

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

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

feature_names_in_массив формы (n_features_in_,)

Названия признаков, увиденные во время fit. Определены только тогда, когда X имеет имена признаков, которые являются строками.

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

n_outputs_целое число

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

oob_score_вещественное число

Оценка обучающего набора данных, полученная с помощью оценки вне выборки. Этот атрибут существует только тогда, когда oob_score равно True.

oob_decision_function_массив формы (n_samples, n_classes) или (n_samples, n_classes, n_outputs)

Функция принятия решений, вычисленная с помощью оценки вне выборки на обучающем наборе. Если n_estimators невелико, возможно, что точка данных никогда не была исключена во время bootstrap. В этом случае oob_decision_function_ может содержать NaN. Этот атрибут существует только тогда, когда oob_score равно True.

estimators_samples_список массивов

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

См. также

ExtraTreesRegressor

Регрессор с экстремальными случайными разбиениями.

RandomForestClassifier

Классификатор случайного леса с оптимальными разбиениями.

RandomForestRegressor

Регрессор ансамбля, использующий деревья с оптимальными разбиениями.

Примечания

Значения по умолчанию для параметров, контролирующих размер деревьев (например, 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.ensemble import ExtraTreesClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_features=4, random_state=0)
>>> clf = ExtraTreesClassifier(n_estimators=100, random_state=0)
>>> clf.fit(X, y)
ExtraTreesClassifier(random_state=0)
>>> clf.predict([[0, 0, 0, 0]])
array([1])
apply(X)[source]

Применение деревьев в лесу к X, возврат индексов листьев.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

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

Возвращает:
X_leavesмассив формы (n_samples, n_estimators)

Для каждой точки данных x в X и для каждого дерева в лесу возвращает индекс листа, в который попадает x.

decision_path(X)[source]

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

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

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

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

Возвращает:
indicatorразреженная матрица формы (n_samples, n_nodes)

Возвращает матрицу индикатора узлов, где ненулевые элементы указывают, что образцы проходят через узлы. Матрица в формате CSR.

n_nodes_ptrмассив формы (n_estimators + 1,)

Столбцы от indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] дают значение индикатора для i-го оценщика.

свойствоestimators_samples_

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

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

Примечание: список пересоздаётся при каждом вызове свойства, чтобы уменьшить объём памяти объекта, не храня данные выборки. Таким образом, извлечение свойства может быть медленнее, чем ожидалось.

свойствоfeature_importances_

Важности признаков, основанные на неоднородности.

Чем выше, тем важнее признак. Важность признака вычисляется как (нормализованное) полное уменьшение критерия, внесённое данным признаком. Также известна как важность Джини.

Предупреждение: важности признаков, основанные на неоднородности, могут быть вводящими в заблуждение для признаков с высокой кардинальностью (множеством уникальных значений). См. sklearn.inspection.permutation_importance как альтернативу.

Возвращает:
feature_importances_массив формы (n_features,)

Значения этого массива суммируются до 1, если все деревья являются деревьями с единственным узлом, состоящим только из корневого узла, в этом случае это будет массив нулей.

fit(X, y, sample_weight=None)[source]

Построение леса деревьев из набора обучающих данных (X, y).

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

Входы обучающих выборок. Внутренне его тип данных будет преобразован к dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженную csc_matrix.

yмассив формы (n_samples,) или (n_samples, n_outputs)

Целевые значения (метки классов в классификации, вещественные числа в регрессии).

sample_weightмассив формы (n_samples,), по умолчанию=None

Веса выборок. Если None, то все выборки имеют одинаковый вес. Разбиения, которые создали бы дочерние узлы с общим весом нулём или отрицательным значением, будут проигнорированы при поиске разбиения в каждом узле. В случае классификации, разбиения также игнорируются, если они приведут к тому, что какой-либо отдельный класс будет иметь отрицательный вес в любом дочернем узле.

Возвращаемое значение:
selfобъект

Обученный оценщик.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

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

Возвращаемое значение:
routingMetadataRequest

MetadataRequest encapsulating routing information.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

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

Возвращаемое значение:
paramsdict

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

predict(X)[source]

Предсказать класс для X.

Предсказанный класс входного образца — это голос деревьев в лесу, взвешенный их оценками вероятностей. То есть, предсказанный класс — это класс с наибольшей средней оценкой вероятности среди деревьев.

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

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

Возвращаемое значение:
yndarray формы (n_samples,) или (n_samples, n_outputs)

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

predict_log_proba(X)[source]

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

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

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

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

Возвращаемое значение:
pndarray формы (n_samples, n_classes), или список таких массивов

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

predict_proba(X)[source]

Предсказать вероятности классов для X.

Предсказанные вероятности классов входного образца вычисляются как средние предсказанные вероятности классов деревьев в лесу. Вероятность класса отдельного дерева — это доля образцов того же класса в листе.

Параметры:
X{массив, разреженная матрица} формы (n_samples, n_features)

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

Возвращаемое значение:
pndarray формы (n_samples, n_classes), или список таких массивов

Вероятности классов входных образцов. Порядок классов соответствует атрибуту 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$') → ExtraTreesClassifier[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$') → ExtraTreesClassifier[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

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

Примеры из галереи

Основные изменения в релизе scikit-learn 1.6

Преобразование признаков с помощью случайных деревьев

Построение областей решений ансамблей деревьев на наборе данных iris

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html

Spec-Zone.ru

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