ClassifierChain
- classsklearn.multioutput.ClassifierChain(estimator, *, order=None, cv=None, chain_method='predict', random_state=None, verbose=False)[исходный код]
-
Модель для многометочной классификации, которая выстраивает бинарные классификаторы в цепочку.
Каждая модель делает предсказание в порядке, заданном цепочкой, используя все доступные признаки, переданные модели, а также предсказания моделей, расположенных в цепочке раньше.
Пример использования
ClassifierChainи преимуществ его ансамбля см. в примере ClassifierChain на наборе данных дрожжей.Подробнее см. в Руководстве пользователя.
Добавлено в версии 0.19.
- Параметры:
-
- estimatorоцениватель
-
Базовый оцениватель, на основе которого строится цепочка классификаторов.
- orderмассивоподобный объект формы (n_outputs,) или ‘random’, по умолчанию None
-
Если
None, порядок будет определяться порядком столбцов в матрице меток Y.:order = [0, 1, 2, ..., Y.shape[1] - 1]
Порядок цепочки можно задать явно, передав список целых чисел. Например, для цепочки длины 5.:
order = [1, 3, 2, 4, 0]
означает, что первая модель в цепочке будет делать предсказания для столбца 1 матрицы Y, вторая модель — для столбца 3 и т. д.
Если order равен
random, будет использоваться случайный порядок. - cvцелое число, генератор перекрёстной проверки или итерируемый объект, по умолчанию None
-
Определяет, следует ли использовать предсказания, полученные с помощью перекрёстной проверки, или истинные метки для результатов предыдущих оценивателей в цепочке. Возможные значения cv:
- None — использовать истинные метки при обучении,
- целое число — задать количество фолдов в (Stratified)KFold,
- разбиение для перекрёстной проверки,
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
- chain_method{‘predict’, ‘predict_proba’, ‘predict_log_proba’, ‘decision_function’} или список таких строк, по умолчанию ’predict’
-
Метод предсказания, используемый оценивателями в цепочке для получения признаков-предсказаний предыдущих оценивателей в цепочке.
- если
str— название метода; - если передан список из
str— названия методов в порядке предпочтения. Используется первый метод из списка, реализованный вbase_estimator.
Добавлено в версии 1.5.
- если
- random_stateцелое число, экземпляр RandomState или None, необязательно (по умолчанию None)
-
Если
order='random', определяет генерацию случайных чисел для порядка цепочки. Кроме того, управляет начальным значением генератора случайных чисел, передаваемым каждомуbase_estimatorна каждой итерации построения цепочки. Поэтому параметр используется только в том случае, еслиbase_estimatorпредоставляетrandom_state. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий. - verboseлогическое значение, по умолчанию False
-
Если True, по мере завершения каждой модели выводится ход выполнения цепочки.
Добавлено в версии 1.2.
- Атрибуты:
-
- classes_список
-
Список массивов длины
len(estimators_), содержащих метки классов для каждого оценивателя в цепочке. - estimators_список
-
Список копий base_estimator.
- order_список
-
Порядок меток в цепочке классификаторов.
- chain_method_строка
-
Метод предсказания, используемый оценивателями в цепочке для получения признаков-предсказаний.
- n_features_in_целое число
-
Количество признаков, обнаруженных во время 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 моделей в цепочке.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_decisionмассивоподобный объект формы (n_samples, n_classes)
-
Возвращает функцию принятия решения для каждого образца каждой модели в цепочке.
- fit(X, Y, **fit_params)[исходный код]
-
Обучить модель на матрице данных X и целевых значениях Y.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- Yмассивоподобный объект формы (n_samples, n_classes)
-
Целевые значения.
- **fit_paramsсловарь вида string -> object
-
Параметры, передаваемые методу
fitкаждого шага.Доступно, только если
enable_metadata_routing=True. См. Руководство пользователя.Добавлено в версии 1.3.
- Возвращает:
-
- selfобъект
-
Экземпляр класса.
- get_metadata_routing()[исходный код]
-
Получить настройки маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в Руководстве пользователя.
Добавлено в версии 1.3.
- Возвращает:
-
- routingMetadataRouter
-
MetadataRouter, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepлогическое значение, по умолчанию True
-
Если True, будут возвращены параметры этого оценивателя и содержащихся в нём подобъектов, которые являются оценивателями.
- Возвращает:
-
- paramsсловарь
-
Названия параметров и соответствующие им значения.
- predict(X)[исходный код]
-
Выполнить предсказание для матрицы данных X с помощью модели ClassifierChain.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_predмассивоподобный объект формы (n_samples, n_classes)
-
Предсказанные значения.
- predict_log_proba(X)[исходный код]
-
Предсказать логарифмы оценок вероятностей.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_log_probмассивоподобный объект формы (n_samples, n_classes)
-
Предсказанные логарифмы вероятностей.
- predict_proba(X)[исходный код]
-
Предсказать оценки вероятностей.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Y_probмассивоподобный объект формы (n_samples, n_classes)
-
Предсказанные вероятности.
- score(X, y, sample_weight=None)[исходный код]
-
Вернуть точность на переданных данных и метках.
В многометочной классификации это точность по подмножеству — строгая метрика, поскольку для каждого образца требуется правильно предсказать весь набор меток.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Тестовые образцы.
- yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию None
-
Веса образцов.
- Возвращает:
-
- scoreвещественное число
-
Средняя точность
self.predict(X)относительноy.
- set_params(**params)[исходный код]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsсловарь
-
Параметры оценивателя.
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- 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_weightстрока, True, False или None, по умолчанию sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfобъект
-
Обновлённый объект.
-
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.multioutput.ClassifierChain.html