Цепочка классификаторов
- классsklearn.multioutput.ClassifierChain(base_estimator, *, order=None, cv=None, chain_method='predict', random_state=None, verbose=False)[source]
-
Модель для многозначной классификации, организующая бинарные классификаторы в цепочку.
Каждый классификатор делает предсказание в указанном порядке цепочки, используя все доступные признаки, предоставленные модели, плюс предсказания моделей, которые находятся ранее в цепочке.
Пример использования
ClassifierChainи преимущества ансамбля см. в примере ClassifierChain на наборе данных дрожжей.Подробнее см. в Руководстве пользователя.
Добавлена в версии 0.19.
- Параметры:
-
- base_estimatorestimator
-
Базовый классификатор, на основе которого строится цепочка классификаторов.
- orderarray-like of shape (n_outputs,) or ‘random’, default=None
-
Если
None, порядок определяется порядком столбцов в матрице меток Y.:order = [0, 1, 2, ..., Y.shape[1] - 1]
Порядок цепочки можно явно задать, предоставив список целых чисел. Например, для цепочки длиной 5:
order = [1, 3, 2, 4, 0]
означает, что первый классификатор в цепочке будет делать предсказания для столбца 1 в матрице Y, второй классификатор — для столбца 3 и т. д.
Если order равно
random, будет использован случайный порядок. - cvint, cross-validation generator or an iterable, default=None
-
Определяет, использовать ли перекрестную проверку для предсказаний или истинных меток результатов предыдущих классификаторов в цепочке. Возможные значения cv:
- None, для использования истинных меток при обучении,
- целое число, для указания числа фолдов в (Stratified)KFold,
- генератор перекрестной проверки,
- Итерируемый объект, возвращающий (train, test) разделения в виде массивов индексов.
- chain_method{‘predict’, ‘predict_proba’, ‘predict_log_proba’, ‘decision_function’} or list of such str’s, default=’predict’
-
Метод предсказания, который будут использовать классификаторы в цепочке для признаков предсказаний предыдущих классификаторов в цепочке.
- если
str, имя метода; - если список
str, предоставляет имена методов в порядке предпочтения. Использованный метод соответствует первому методу в списке, реализованномуbase_estimator.
Добавлена в версии 1.5.
- если
- random_stateint, RandomState instance or None, optional (default=None)
-
Если
order='random', определяет генерацию случайных чисел для порядка цепочки. Кроме того, он контролирует случайное семя, задаваемое на каждойbase_estimatorна каждой итерации цепочки. Таким образом, он используется только тогда, когдаbase_estimatorпредоставляетrandom_state. Для воспроизводимого результата при многократном вызове функции передайте целое число. См. Словарь. - verbosebool, default=False
-
Если True, отображается ход выполнения цепочки по мере завершения каждой модели.
Добавлена в версии 1.2.
- Атрибуты:
-
- classes_list
-
Список массивов длиной
len(estimators_), содержащих метки классов для каждого классификатора в цепочке. - estimators_list
-
Список копий base_estimator.
- order_list
-
Порядок меток в цепочке классификаторов.
- chain_method_str
-
Метод предсказания, используемый классификаторами в цепочке для предсказания признаков.
- n_features_in_int
-
Количество признаков, увиденных во время обучения. Определено только в том случае, если базовое
base_estimatorпредоставляет такой атрибут при обучении.Добавлена в версии 0.24.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, увиденные во время обучения. Определено только в том случае, если
Xимеет имена признаков, которые все являются строками.Добавлена в версии 1.0.
См. также
RegressorChain-
Эквивалент для регрессии.
MultiOutputClassifier-
Классифицирует каждый выходной параметр независимо, а не в цепочке.
Ссылки
Jesse Read, Bernhard Pfahringer, Geoff Holmes, Eibe Frank, “Classifier Chains for Multi-label Classification”, 2009.
Примеры
>>> from sklearn.datasets import make_multilabel_classification >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.model_selection import train_test_split >>> from sklearn.multioutput import ClassifierChain >>> X, Y = make_multilabel_classification( ... n_samples=12, n_classes=3, random_state=0 ... ) >>> X_train, X_test, Y_train, Y_test = train_test_split( ... X, Y, random_state=0 ... ) >>> base_lr = LogisticRegression(solver='lbfgs', random_state=0) >>> chain = ClassifierChain(base_lr, order='random', random_state=0) >>> chain.fit(X_train, Y_train).predict(X_test) array([[1., 1., 0.], [1., 0., 0.], [0., 1., 0.]]) >>> chain.predict_proba(X_test) array([[0.8387..., 0.9431..., 0.4576...], [0.8878..., 0.3684..., 0.2640...], [0.0321..., 0.9935..., 0.0626...]])- decision_function(X)[source]
-
Вычисляет decision_function моделей в цепочке.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_decisionarray-like of shape (n_samples, n_classes)
-
Возвращает значение decision_function для каждого образца для каждой модели в цепочке.
- fit(X, Y, **fit_params)[source]
-
Обучает модель на матрице данных X и целевых значениях Y.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные данные.
- Yarray-like of shape (n_samples, n_classes)
-
Целевые значения.
- **fit_paramsdict of string -> object
-
Параметры, передаваемые методу
fitкаждого шага.Доступны только если
enable_metadata_routing=True. См. Руководство пользователя.Добавлена в версии 1.3.
- Возвращает:
-
- selfobject
-
Экземпляр класса.
- get_metadata_routing()[source]
-
Получение маршрутизации метаданных этого объекта.
См. Руководство пользователя для получения информации о механизме маршрутизации.
Добавлена в версии 1.3.
- Возвращает:
-
- routingMetadataRouter
-
Объект
MetadataRouter, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценщика и вложенных подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- predict(X)[source]
-
Предсказание на матрице данных X с использованием модели ClassifierChain.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_predarray-like формы (n_samples, n_classes)
-
Предсказанные значения.
- predict_log_proba(X)[source]
-
Предсказание логарифма вероятностных оценок.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_log_probarray-like формы (n_samples, n_classes)
-
Предсказанный логарифм вероятностей.
- predict_proba(X)[source]
-
Предсказание вероятностных оценок.
- Параметры:
-
- X{array-like, sparse matrix} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_probarray-like формы (n_samples, n_classes)
-
Предсказанные вероятности.
- score(X, y, sample_weight=None)[source]
-
Возвращает среднюю точность на заданных тестовых данных и метках.
В многоклассовой классификации это точность подмножества, которая является жёсткой метрикой, поскольку для каждого образца требуется, чтобы каждый набор меток был предсказан верно.
- Параметры:
-
- 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_params(**params)[source]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, чтобы можно было обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') ClassifierChain[source]
-
Запрос метаданных, переданных методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь со Руководством пользователя, чтобы узнать, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяscoreпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст ихscore. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо оригинального имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлена в версии 1.3.
Примечание
Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Параметры:
-
- sample_weightstr, True, False, or None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.multioutput.ClassifierChain.html