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_список массивов

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

Смотрите также

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 для максимальной эффективности. Разреженные матрицы также поддерживаются, используйте sparse csc_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": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 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 для максимальной эффективности. Разреженные матрицы также поддерживаются, используйте sparse csr_matrix для максимальной эффективности.

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

Преобразованный набор данных.