Spec-Zone.ru › scikit-learn

Цепочка классификаторов

класс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

Spec-Zone.ru

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