ClassifierChain#

класс sklearn.multioutput.ClassifierChain(estimator=None, *, порядок=None, cv=None, chain_method='predict', random_state=None, verbose=False, base_estimator='устаревший')[источник]#

Многометочная модель, которая организует бинарные классификаторы в цепочку.

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

Пример использования ClassifierChain и извлечь выгоду из его ансамбля, см. ClassifierChain на наборе данных yeast пример.

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

Добавлено в версии 0.19.

Параметры:
estimatorestimator

Базовый оценщик, на основе которого строится цепочка классификаторов.

порядокмассивоподобный объект формы (n_outputs,) или 'random', по умолчанию=None

Если None, порядок будет определяться порядком столбцов в матрице меток Y.:

order = [0, 1, 2, ..., Y.shape[1] - 1]

Порядок цепочки может быть явно задан предоставлением списка целых чисел. Например, для цепочки длиной 5:

order = [1, 3, 2, 4, 0]

означает, что первая модель в цепочке будет делать предсказания для столбца 1 в матрице Y, вторая модель будет делать предсказания для столбца 3 и т.д.

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

cvint, генератор кросс-валидации или итерируемый объект, по умолчанию=None

Определяет, использовать ли перекрестно проверенные предсказания или истинные метки для результатов предыдущих оценщиков в цепочке. Возможные значения для cv:

  • None, чтобы использовать истинные метки при обучении,

  • целое число, чтобы указать количество фолдов в (Stratified)KFold,

  • CV splitter,

  • Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.

chain_method{‘predict’, ‘predict_proba’, ‘predict_log_proba’, ‘decision_function’} или список таких строк, default=’predict’

Метод предсказания, используемый оценщиками в цепочке для признаков 'prediction' предыдущих оценщиков в цепочке.

  • if str, название метода;

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

Добавлено в версии 1.5.

random_stateint, экземпляр RandomState или None, опционально (по умолчанию=None)

Если order='random', определяет генерацию случайных чисел для порядка цепочки. Кроме того, он управляет случайным начальным числом, задаваемым на каждом base_estimator на каждой итерации цепочки. Таким образом, он используется только тогда, когда base_estimator предоставляет random_state. Передайте целое число для воспроизводимого результата при множественных вызовах функции. См. Глоссарий.

verbosebool, по умолчанию=False

Если True, прогресс цепочки выводится по завершении каждой модели.

Добавлено в версии 1.2.

base_estimatorestimator, по умолчанию="deprecated"

Используйте estimator вместо этого.

Устарело с версии 1.7: base_estimator устарел и будет удален в версии 1.9. Используйте estimator вместо этого.

Атрибуты:
classes_list

Список массивов длиной len(estimators_) содержащий метки классов для каждого оценщика в цепочке.

estimators_list

Список клонов base_estimator.

order_list

Порядок меток в цепочке классификаторов.

chain_method_str

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

n_features_in_int

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

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, наблюдаемых во время fit. Определено только когда 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)[источник]#

Оцените decision_function моделей в цепочке.

Параметры:
Xarray-like формы (n_samples, n_features)

Входные данные.

Возвращает:
Y_decisionarray-like формы (n_samples, n_classes)

Возвращает функцию решения образца для каждой модели в цепочке.

fit(X, Y, **fit_params)[источник]#

Обучить модель на матрице признаков X и целевых значениях Y.

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

Входные данные.

Yarray-like формы (n_samples, n_classes)

Целевые значения.

**fit_paramsсловарь строк -> объект

Параметры, передаваемые в fit метод каждого шага.

Доступно только если enable_metadata_routing=True. См. Руководство пользователя.

Добавлено в версии 1.3.

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

Экземпляр класса.

6332()[источник]#

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

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

Добавлено в версии 1.3.

Возвращает:
маршрутизацияMetadataRouter

A MetadataRouter Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

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

Имена параметров, сопоставленные с их значениями.

predict(X)[источник]#

Предсказание на матрице данных X с использованием модели ClassifierChain.

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

Входные данные.

Возвращает:
Y_predarray-like формы (n_samples, n_classes)

Предсказанные значения.

predict_log_proba(X)[источник]#

Предсказать логарифм оценок вероятности.

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

Входные данные.

Возвращает:
Y_log_probarray-like формы (n_samples, n_classes)

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

predict_proba(X)[источник]#

Предсказывает вероятностные оценки.

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

Входные данные.

Возвращает:
Y_probarray-like формы (n_samples, n_classes)

Предсказанные вероятности.

score(X, y, sample_weight=None)[источник]#

Возвращает точность на предоставленных данных и метках.

В многометочной классификации это точность подмножества, которая является строгой метрикой, поскольку требует для каждого образца правильного предсказания каждого набора меток.

Параметры:
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)[источник]#

Установить параметры этого оценщика.

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

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

Параметры оценщика.

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

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

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ClassifierChain[источник]#

Настроить, следует ли запрашивать передачу метаданных в score метод.

Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: запрашиваются метаданные и передаются score если предоставлено. Запрос игнорируется, если метаданные не предоставлены.

  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в score.

  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.

  • str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.

Добавлено в версии 1.3.

Параметры:
sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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