Spec-Zone.ru › scikit-learn

RandomTreesEmbedding

classsklearn.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.

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

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

Параметры:
n_estimatorsint, default=100

Число деревьев в лесу.

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

max_depthint, default=5

Максимальная глубина каждого дерева. Если значение равно 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_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.

sparse_outputbool, default=True

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

n_jobsint, default=None

Число заданий, выполняемых параллельно. fit, transform, decision_path и apply выполняются параллельно для деревьев. Значение None соответствует 1, если только не используется контекст joblib.parallel_backend. Значение -1 означает использование всех процессоров. Подробнее см. в глоссарии.

random_stateint, RandomState instance or None, default=None

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

verboseint, default=0

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

warm_startbool, default=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

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

ExtraTreesRegressor

Регрессор на основе сверхслучайных деревьев.

RandomForestClassifier

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

RandomForestRegressor

Регрессор на основе случайного леса.

sklearn.tree.ExtraTreeClassifier

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

sklearn.tree.ExtraTreeRegressor

Регрессор на основе чрезвычайно рандомизированного дерева.

Литература

[1]

P. Geurts, D. Ernst., and L. Wehenkel, «Extremely randomized trees», 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 будет преобразован в 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 будет преобразован в dtype=np.float32. Если передана разреженная матрица, она будет преобразована в разреженную csr_matrix.

Возвращает:
indicatorразреженная матрица формы (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. Разреженные матрицы также поддерживаются; для максимальной эффективности используйте разреженную csc_matrix.

yИгнорируется

Не используется; присутствует для согласованности API в соответствии с соглашением.

sample_weightarray-like формы (n_samples,), default=None

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

Возвращает:
selfобъект

Возвращает сам экземпляр.

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,), default=None

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

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

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

get_feature_names_out(input_features=None)[исходный код]

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

Параметры:
input_featuresarray-like из строк или None, default=None

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

Возвращает:
feature_names_outndarray из строковых объектов

Названия преобразованных признаков в формате randomtreesembedding_{tree}_{leaf}, где tree — дерево, использованное для получения листа, а leaf — индекс листового узла в этом дереве. Обратите внимание, что схема индексации узлов используется как для узлов с дочерними узлами (узлов разделения), так и для листовых узлов. В выходных признаках могут присутствовать только последние. Поэтому в названиях выходных признаков есть пропущенные индексы.

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

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

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

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

Объект MetadataRequest, содержащий информацию о маршрутизации.

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

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

Параметры:
deepbool, default=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, default=sklearn.utils.metadata_routing.UNCHANGED

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

Возвращает:
selfобъект

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

set_output(*, transform=None)[исходный код]

Задать контейнер выходных данных.

Подробнее см. в руководстве пользователя; пример использования API см. в разделе Знакомство с API set_output.

Параметры:
transform{“default”, “pandas”, “polars”}, default=None

Настроить формат выходных данных для transform и fit_transform.

  • "default": формат выходных данных преобразователя по умолчанию
  • "pandas": вывод в формате DataFrame
  • "polars": вывод в формате Polars
  • None: конфигурация преобразования не изменяется

Добавлено в версии 1.4: Добавлен вариант "polars".

Возвращает:
selfэкземпляр оценивателя

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

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

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

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

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

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

Возвращает:
selfэкземпляр оценивателя

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

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

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

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

Входные данные для преобразования. Для максимальной эффективности используйте dtype=np.float32. Также поддерживаются разреженные матрицы; для максимальной эффективности используйте разреженный формат csr_matrix.

Возвращает:
X_transformedsparse matrix of shape (n_samples, n_out)

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

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

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

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

Обучение многообразий на рукописных цифрах: локальное линейное встраивание, Isomap…

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

Spec-Zone.ru

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