RandomTreesEmbedding#
- класс sklearn.ensemble.RandomTreesEmbedding(n_estimators=100, *, max_depth=5, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_leaf_nodes=None, min_impurity_decrease=0.0, sparse_output=True, n_jobs=None, random_state=None, verbose=0, warm_start=False)[источник]#
Ансамбль полностью случайных деревьев.
Непреобразованное преобразование набора данных в разреженное представление высокой размерности. Точка данных кодируется в зависимости от того, в какой лист каждого дерева она отсортирована. Используя one-hot кодирование листьев, это приводит к двоичному кодированию с таким количеством единиц, сколько деревьев в лесу.
Размерность полученного представления составляет
n_out <= n_estimators * max_leaf_nodes. Еслиmax_leaf_nodes == None, количество листовых узлов не болееn_estimators * 2 ** max_depth.Пример применения Random Trees Embedding к нелинейной классификации см. в Преобразование признаков с хешированием с использованием полностью случайных деревьев.
Подробнее в Руководство пользователя.
- Параметры:
- n_estimatorsint, по умолчанию=100
Количество деревьев в лесу.
Изменено в версии 0.22: Значение по умолчанию для
n_estimatorsизменено с 10 на 100 в версии 0.22.- max_depthint, по умолчанию=5
Максимальная глубина каждого дерева. Если 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_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.
- sparse_outputbool, по умолчанию=True
Возвращать ли разреженную матрицу CSR по умолчанию или возвращать плотный массив, совместимый с плотными операторами конвейера.
- n_jobsint, default=None
Количество параллельно выполняемых задач.
fit,transform,decision_pathиapplyвсе параллелизованы по деревьям.Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.- random_stateint, экземпляр RandomState или None, по умолчанию=None
Управляет генерацией случайного
yиспользуется для обучения деревьев и выбора разбиений для каждого признака в узлах деревьев. См. Глоссарий подробности.- verboseint, по умолчанию=0
Управляет подробностью вывода при обучении и предсказании.
- warm_startbool, по умолчанию=False
При установке значения
True, повторно использовать решение предыдущего вызова fit и добавить больше оценщиков в ансамбль, в противном случае просто обучить полностью новый лес. См. Глоссарий и Добавление дополнительных деревьев подробности.
- Атрибуты:
- estimator_
ExtraTreeRegressorэкземпляр Шаблон дочернего оценщика, используемый для создания коллекции обученных под-оценщиков.
Добавлено в версии 1.2:
base_estimator_был переименован вestimator_.- estimators_список
ExtraTreeRegressorэкземпляры Коллекция обученных суб-оценщиков.
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выполняется.- one_hot_encoder_экземпляр OneHotEncoder
One-hot кодировщик, используемый для создания разреженного вложения.
estimators_samples_список массивовПодмножество выбранных выборок для каждого базового оценщика.
- estimator_
Смотрите также
ExtraTreesClassifierКлассификатор extra-trees.
ExtraTreesRegressorЭкстра-деревья регрессор.
RandomForestClassifierКлассификатор случайного леса.
RandomForestRegressorРегрессор случайного леса.
sklearn.tree.ExtraTreeClassifierКрайне рандомизированный классификатор дерева.
sklearn.tree.ExtraTreeRegressorЧрезвычайно рандомизированный регрессор дерева.
Ссылки
[1]P. Geurts, D. Ernst. и L. Wehenkel, "Чрезвычайно рандомизированные деревья", Machine Learning, 63(1), 3-42, 2006.
[2]Moosmann, F. and Triggs, B. and Jurie, F. “Fast discriminative visual codebooks using randomized clustering forests” NIPS 2007.
Примеры
>>> from sklearn.ensemble import RandomTreesEmbedding >>> X = [[0,0], [1,0], [0,1], [-1,0], [0,-1]] >>> random_trees = RandomTreesEmbedding( ... n_estimators=5, random_state=0, max_depth=1).fit(X) >>> X_sparse_embedding = random_trees.transform(X) >>> X_sparse_embedding.toarray() array([[0., 1., 1., 0., 1., 0., 0., 1., 1., 0.], [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.], [0., 1., 0., 1., 0., 1., 0., 1., 0., 1.], [1., 0., 1., 0., 1., 0., 1., 0., 1., 0.], [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.]])
- apply(X)[источник]#
Применить деревья в лесу к X, вернуть индексы листьев.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные выборки. Внутренне их тип данных будет преобразован в
dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженнуюcsr_matrix.
- Возвращает:
- X_leavesndarray формы (n_samples, n_estimators)
Для каждой точки данных x в X и для каждого дерева в лесу вернуть индекс листа, в который попадает x.
- decision_path(X)[источник]#
Возвращает путь принятия решений в лесу.
Добавлено в версии 0.18.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные выборки. Внутренне их тип данных будет преобразован в
dtype=np.float32. Если предоставлена разреженная матрица, она будет преобразована в разреженнуюcsr_matrix.
- Возвращает:
- индикаторразреженная матрица формы (n_samples, n_nodes)
Вернуть матрицу индикаторов узлов, где ненулевые элементы указывают, что выборки проходят через узлы. Матрица имеет формат CSR.
- n_nodes_ptrndarray формы (n_estimators + 1,)
Столбцы из indicator[n_nodes_ptr[i]:n_nodes_ptr[i+1]] дают значение индикатора для i-го оценщика.
- fit(X, y=None, sample_weight=None)[источник]#
Обучить оценщик.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные образцы. Используйте
dtype=np.float32для максимальной эффективности. Разреженные матрицы также поддерживаются, используйте sparsecsc_matrixдля максимальной эффективности.- yИгнорируется
Не используется, присутствует для согласованности API по соглашению.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
Веса выборок. Если None, то выборки имеют одинаковый вес. Разделения, которые создадут дочерние узлы с нулевым или отрицательным суммарным весом, игнорируются при поиске разделения в каждом узле. В случае классификации разделения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из дочерних узлов.
- Возвращает:
- selfobject
Возвращает сам экземпляр.
- fit_transform(X, y=None, sample_weight=None)[источник]#
Обучить оценщик и преобразовать набор данных.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные данные, используемые для построения лесов. Используйте
dtype=np.float32для максимальной эффективности.- yИгнорируется
Не используется, присутствует для согласованности API по соглашению.
- sample_weightarray-like формы (n_samples,), по умолчанию=None
Веса выборок. Если None, то выборки имеют одинаковый вес. Разделения, которые создадут дочерние узлы с нулевым или отрицательным суммарным весом, игнорируются при поиске разделения в каждом узле. В случае классификации разделения также игнорируются, если они приведут к тому, что любой отдельный класс будет иметь отрицательный вес в любом из дочерних узлов.
- Возвращает:
- X_transformedразреженная матрица формы (n_samples, n_out)
Преобразованный набор данных.
- get_feature_names_out(input_features=None)[источник]#
Получить имена выходных признаков для преобразования.
- Параметры:
- input_featuresarray-like из str или None, по умолчанию=None
Используется только для проверки имен признаков с именами, встреченными в
fit.
- Возвращает:
- feature_names_outndarray из str объектов
Преобразованные имена признаков в формате
randomtreesembedding_{tree}_{leaf}, гдеtreeэто дерево, используемое для генерации листа иleafявляется индексом листового узла в этом дереве. Обратите внимание, что схема индексации узлов используется для индексации как узлов с потомками (разделяющие узлы), так и листовых узлов. Только последние могут присутствовать в качестве выходных признаков. Как следствие, в именах выходных признаков отсутствуют некоторые индексы.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RandomTreesEmbedding[источник]#
Настроить, следует ли запрашивать передачу метаданных в
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_output(*, преобразовать=None)[источник]#
Установить контейнер вывода.
См. Введение API set_output для примера использования API.
- Параметры:
- преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None
Настройка вывода
transformиfit_transform."default": Формат вывода трансформера по умолчанию"pandas": DataFrame вывод"polars": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 1.4:
"polars"опция была добавлена.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- преобразовать(X)[источник]#
Преобразовать набор данных.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Входные данные для преобразования. Используйте
dtype=np.float32для максимальной эффективности. Разреженные матрицы также поддерживаются, используйте sparsecsr_matrixдля максимальной эффективности.
- Возвращает:
- X_transformedразреженная матрица формы (n_samples, n_out)
Преобразованный набор данных.
Примеры галереи#
Преобразование признаков с хешированием с использованием полностью случайных деревьев
Обучение многообразию на рукописных цифрах: Locally Linear Embedding, Isomap…