VotingClassifier#

класс sklearn.ensemble.VotingClassifier(оценщики, *, голосование='hard', веса=None, n_jobs=None, flatten_transform=True, verbose=False)[источник]#

Классификатор мягкого голосования/правила большинства для необученных оценщиков.

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

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

Параметры:
оценщикисписок кортежей (str, estimator)

Вызов fit метод на VotingClassifier будет обучать клоны тех исходных оценщиков, которые будут храниться в атрибуте класса self.estimators_. Оценщик может быть установлен в 'drop' используя set_params.

Изменено в версии 0.21: 'drop' принимается. Использование None было устаревшим в 0.22 и поддержка была удалена в 0.24.

голосование{‘hard’, ‘soft’}, по умолчанию=’hard’

Если 'hard', использует предсказанные метки классов для голосования большинством. Иначе если 'soft', предсказывает метку класса на основе argmax сумм предсказанных вероятностей, что рекомендуется для ансамбля хорошо калиброванных классификаторов.

весаarray-like формы (n_classifiers,), по умолчанию=None

Последовательность весов (float или int) для взвешивания встречаемости предсказанных меток классов (hard голосования) или вероятностей классов перед усреднением (soft голосование). Использует равные веса, если None.

n_jobsint, default=None

Количество параллельно выполняемых задач для fit. None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

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

flatten_transformbool, по умолчанию=True

Влияет на форму выходных данных transform только при voting='soft' Если voting='soft' и flatten_transform=True, метод transform возвращает матрицу формы (n_samples, n_classifiers * n_classes). Если flatten_transform=False, возвращает (n_classifiers, n_samples, n_classes).

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

Если True, затраченное время на обучение будет выводиться по мере завершения.

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

Атрибуты:
estimators_список классификаторов

Коллекция подогнанных суб-оценщиков, как определено в estimators которые не являются 'drop'.

named_estimators_Bunch

Атрибут для доступа к любым обученным подоценщикам по имени.

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

le_LabelEncoder

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

classes_ndarray формы (n_classes,)

Метки классов.

n_features_in_int

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

Смотрите также

VotingRegressor

Регрессор с голосованием предсказаний.

Примеры

>>> import numpy as np
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.naive_bayes import GaussianNB
>>> from sklearn.ensemble import RandomForestClassifier, VotingClassifier
>>> clf1 = LogisticRegression(random_state=1)
>>> clf2 = RandomForestClassifier(n_estimators=50, random_state=1)
>>> clf3 = GaussianNB()
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> eclf1 = VotingClassifier(estimators=[
...         ('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='hard')
>>> eclf1 = eclf1.fit(X, y)
>>> print(eclf1.predict(X))
[1 1 1 2 2 2]
>>> np.array_equal(eclf1.named_estimators_.lr.predict(X),
...                eclf1.named_estimators_['lr'].predict(X))
True
>>> eclf2 = VotingClassifier(estimators=[
...         ('lr', clf1), ('rf', clf2), ('gnb', clf3)],
...         voting='soft')
>>> eclf2 = eclf2.fit(X, y)
>>> print(eclf2.predict(X))
[1 1 1 2 2 2]

Чтобы удалить оценщик, set_params можно использовать для его удаления. Здесь мы удалили один из оценщиков, в результате чего осталось 2 обученных оценщика:

>>> eclf2 = eclf2.set_params(lr='drop')
>>> eclf2 = eclf2.fit(X, y)
>>> len(eclf2.estimators_)
2

Установка flatten_transform=True с voting='soft' уплощает выходную форму transform:

>>> eclf3 = VotingClassifier(estimators=[
...        ('lr', clf1), ('rf', clf2), ('gnb', clf3)],
...        voting='soft', weights=[2,1,1],
...        flatten_transform=True)
>>> eclf3 = eclf3.fit(X, y)
>>> print(eclf3.predict(X))
[1 1 1 2 2 2]
>>> print(eclf3.transform(X).shape)
(6, 6)
fit(X, y, **fit_params)[источник]#

Обучить оценщики.

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

Обучающие векторы, где n_samples — это количество образцов и n_features это количество признаков.

yarray-like формы (n_samples,)

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

**fit_paramsdict

Параметры для передачи базовым оценщикам.

Добавлено в версии 1.5: Доступно только если enable_metadata_routing=True, который можно установить с помощью sklearn.set_config(enable_metadata_routing=True). См. Руководство по маршрутизации метаданных для более подробной информации.

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

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

fit_transform(X, y=None, **fit_params)[источник]#

Возвращает метки классов или вероятности для каждого оценщика.

Возвращает предсказания для X для каждого оценщика.

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

Входные выборки.

yndarray формы (n_samples,), по умолчанию=None

Целевые значения (None для неконтролируемых преобразований).

**fit_paramsdict

Дополнительные параметры обучения.

Возвращает:
X_newndarray массив формы (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[источник]#

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

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

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

Возвращает:
feature_names_outndarray из str объектов

Преобразованные имена признаков.

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

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

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

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

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

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

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

Получить параметры оценщика из ансамбля.

Возвращает параметры, заданные в конструкторе, а также оценщики, содержащиеся в estimators параметр.

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

Установка значения True получает различные оценки и параметры оценок.

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

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

свойство named_estimators#

Словарь для доступа к любым подоценщикам по имени.

Возвращает:
Bunch
predict(X)[источник]#

Предсказать метки классов для X.

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

Входные образцы.

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

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

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

Вычислите вероятности возможных исходов для выборок в X.

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

Входные образцы.

Возвращает:
среднееarray-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_output(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

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

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

set_params(**params)[источник]#

Установить параметры оценщика из ансамбля.

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

Параметры:
**paramsименованные аргументы

Конкретные параметры с использованием, например, set_params(parameter_name=new_value). Кроме того, помимо установки параметров модели, отдельная модель в ансамбле также может быть настроена или удалена путем установки значения 'drop'.

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

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

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

Настроить, следует ли запрашивать передачу метаданных в 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

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

преобразовать(X)[источник]#

Возвращает метки классов или вероятности для X для каждого оценщика.

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

Обучающие векторы, где n_samples — это количество образцов и n_features это количество признаков.

Возвращает:
probabilities_or_labels
Если voting='soft' и flatten_transform=True:

возвращает ndarray формы (n_samples, n_classifiers * n_classes), являющийся вероятностями классов, вычисленными каждым классификатором.

Если voting='soft' and `flatten_transform=False:

ndarray формы (n_classifiers, n_samples, n_classes)

Если voting='hard':

Массив ndarray формы (n_samples, n_classifiers), содержащий метки классов, предсказанные каждым классификатором.