ExtraTreeClassifier#
- класс sklearn.tree.ExtraTreeClassifier(*, критерий='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)[источник]#
Крайне рандомизированный классификатор дерева.
Extra-trees отличаются от классических деревьев решений способом построения. При поиске наилучшего разделения для разделения выборок узла на две группы, случайные разделения генерируются для каждого из
max_featuresслучайно выбранных признаков и выбирается лучшее разделение среди них. Когдаmax_featuresустановлено в 1, это приводит к построению полностью случайного дерева решений.Предупреждение: Экстра-деревья должны использоваться только в составе ансамблевых методов.
Подробнее в Руководство пользователя.
- Параметры:
- критерий{“gini”, “entropy”, “log_loss”}, по умолчанию=”gini”
Функция для измерения качества разделения. Поддерживаемые критерии: «gini» для примеси Джини и «log_loss» и «entropy» для прироста информации Шеннона, см. Математическая формулировка.
- splitter{“random”, “best”}, по умолчанию=”random”
Стратегия, используемая для выбора разделения в каждом узле. Поддерживаемые стратегии: «best» для выбора наилучшего разделения и «random» для выбора наилучшего случайного разделения.
- max_depthint, default=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"to"sqrt".Истинные (правильные) целевые значения. Требуется y_true > 0.
max_featuresпризнаков.- random_stateint, экземпляр RandomState или None, по умолчанию=None
Используется для случайного выбора
max_featuresиспользуется при каждом разбиении. См. Глоссарий подробности.- max_leaf_nodesint, default=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, list of dict или “balanced”, по умолчанию=None
Weights associated with classes in the form
{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неотрицательное число с плавающей точкой, 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 формы (n_classes,) или список ndarray
Метки классов (одновыходная задача), или список массивов меток классов (многовыходная задача).
- Представление вероятностного распределения гауссовской смеси. Этот класс позволяет оценивать параметры распределения гауссовской смеси.int
Выведенное значение max_features.
- n_classes_int или список int
Количество классов (для задач с одним выходом) или список, содержащий количество классов для каждого выхода (для задач с несколькими выходами).
feature_importances_ndarray формы (n_features,)Вернуть важности признаков.
- n_features_in_int
Количество признаков, замеченных во время fit.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.Добавлено в версии 1.0.
- n_outputs_int
Количество выходов, когда
fitвыполняется.- tree_Экземпляр дерева
Базовый объект Tree. Пожалуйста, обратитесь к
help(sklearn.tree._tree.Tree)для атрибутов объекта Tree и Понимание структуры дерева решений для базового использования этих атрибутов.
Смотрите также
ExtraTreeRegressorЧрезвычайно рандомизированный регрессор дерева.
sklearn.ensemble.ExtraTreesClassifierКлассификатор extra-trees.
sklearn.ensemble.ExtraTreesRegressorЭкстра-деревья регрессор.
sklearn.ensemble.RandomForestClassifierКлассификатор случайного леса.
sklearn.ensemble.RandomForestRegressorРегрессор случайного леса.
sklearn.ensemble.RandomTreesEmbeddingАнсамбль полностью случайных деревьев.
Примечания
Значения по умолчанию для параметров, контролирующих размер деревьев (например,
max_depth,min_samples_leaf, и т.д.) приводят к полностью выращенным и необрезанным деревьям, которые потенциально могут быть очень большими на некоторых наборах данных. Чтобы уменьшить потребление памяти, сложность и размер деревьев должны быть контролируемы установкой значений этих параметров.Ссылки
[1]P. Geurts, D. Ernst. и L. Wehenkel, "Чрезвычайно рандомизированные деревья", 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} формы (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)[источник]#
Вычислить путь обрезки при минимальной обрезке по стоимости-сложности.
См. Минимальная обрезка по стоимости-сложности для подробностей о процессе обрезки.
- Параметры:
- 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, то выборки имеют одинаковый вес. Разделения, которые создадут дочерние узлы с нулевым или отрицательным суммарным весом, игнорируются при поиске разделения в каждом узле. Разделения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из дочерних узлов.
- Возвращает:
- ccp_path
Bunch Объект, подобный словарю, со следующими атрибутами.
- ccp_alphasndarray
Эффективные альфы поддерева во время обрезки.
- impuritiesndarray
Сумма примесей листьев поддерева для соответствующего значения альфа в
ccp_alphas.
- ccp_path
- decision_path(X, check_input=True)[источник]#
Вернуть путь принятия решений в дереве.
Добавлено в версии 0.18.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные выборки. Внутренне они будут преобразованы в
dtype=np.float32и если разреженная матрица предоставлена, в разреженнуюcsr_matrix.- check_inputbool, по умолчанию=True
Позволяет обойти несколько проверок ввода. Не используйте этот параметр, если не знаете, что делаете.
- Возвращает:
- индикаторразреженная матрица формы (n_samples, n_nodes)
Верните матрицу индикаторов узлов в формате CSR, где ненулевые элементы указывают, что выборки проходят через узлы.
- fit(X, y, sample_weight=None, check_input=True)[источник]#
Построить дерево решений-классификатор из обучающего набора (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()[источник]#
Возвращает глубину дерева решений.
Глубина дерева — это максимальное расстояние между корнем и любым листом.
- Возвращает:
- self.tree_.max_depthint
Максимальная глубина дерева.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_n_leaves()[источник]#
Возвращает количество листьев дерева решений.
- Возвращает:
- self.tree_.n_leavesint
Количество листьев.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- predict(X, check_input=True)[источник]#
Предсказать класс или значение регрессии для 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.
- predict_log_proba(X)[источник]#
Предсказывает логарифмы вероятностей классов для входных выборок 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)[источник]#
Предсказать вероятности классов для входных образцов 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)[источник]#
Возвращает точность на предоставленных данных и метках.
В многометочной классификации это точность подмножества, которая является строгой метрикой, поскольку требует для каждого образца правильного предсказания каждого набора меток.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Тестовые выборки.
- yarray-like формы (n_samples,) или (n_samples, n_outputs)
Истинные метки для
X.- sample_weightarray-like формы (n_samples,), по умолчанию=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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вfit.
- Возвращает:
- selfobject
Обновленный объект.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- 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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вscore.
- Возвращает:
- selfobject
Обновленный объект.