Spec-Zone.ru › scikit-learn

VotingClassifier

classsklearn.ensemble.VotingClassifier(estimators, *, voting='hard', weights=None, n_jobs=None, flatten_transform=True, verbose=False)[исходный код]

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

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

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

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

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

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

voting{‘hard’, ‘soft’}, по умолчанию=’hard’

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

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

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

n_jobsint, по умолчанию=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’. Обратите внимание, что подоценщики всегда обучаются на метках, закодированных целыми числами (см. атрибут le_). Если y содержит метки классов не в виде целых чисел (например, строки), используйте le_.inverse_transform, чтобы преобразовать предсказания обратно в исходное пространство меток.

named_estimators_Bunch

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

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

le_LabelEncoder

Преобразователь, используемый для кодирования меток во время обучения и декодирования при предсказании. Подоценщики в estimators_ обучаются на метках, закодированных целыми числами этим преобразователем.

classes_ndarray формы (n_classes,)

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

n_features_in_int

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

feature_names_in_ndarray формы (n_features_in_,)

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

Добавлено в версии 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{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

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

yмассивоподобный объект формы (n_samples,)

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

**fit_paramsdict

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

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

Возвращает:
selfобъект

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

fit_transform(X, y=None, **fit_params)[исходный код]

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

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

Параметры:
X{массивоподобный объект, разреженная матрица, dataframe} формы (n_samples, n_features)

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

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

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

**fit_paramsdict

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

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

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

get_feature_names_out(input_features=None)[исходный код]

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

Параметры:
input_featuresмассивоподобный объект из строк или None, по умолчанию=None

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

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

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

get_metadata_routing()[исходный код]

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

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

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

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

MetadataRouter, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

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

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

Параметры:
deepbool, по умолчанию=True

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

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

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

propertynamed_estimators

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

Возвращает:
Bunch
predict(X)[исходный код]

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

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

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

Возвращает:
majмассивоподобный объект формы (n_samples,)

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

predict_proba(X)[исходный код]

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

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

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

Возвращает:
avgмассивоподобный объект формы (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

Веса образцов.

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

Средняя точность self.predict(X) относительно y.

set_output(*, transform=None)[исходный код]

Задать контейнер выходных данных.

Подробнее см. в руководстве пользователя, а пример использования API приведён в разделе Знакомство с API set_output.

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

Настроить формат выходных данных для transform и fit_transform.

  • "default": формат выходных данных преобразователя по умолчанию
  • "pandas": вывод в формате DataFrame
  • "polars": вывод в формате Polars
  • None: конфигурация преобразования не меняется

Добавлено в версии 1.4: Добавлен параметр "polars".

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

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

set_params(**params)[исходный код]

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

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

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

Конкретные параметры, например set_params(parameter_name=new_value). Помимо задания параметров оценщика, можно также задать отдельные оценщики или удалить их, присвоив им значение ‘drop’.

Возвращает:
selfобъект

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

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.

Возвращает:
selfобъект

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

transform(X)[исходный код]

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

Параметры:
X{массивоподобный объект, разреженная матрица} формы (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), содержащий метки классов, предсказанные каждым классификатором.

Примеры из галереи

Визуализация вероятностных предсказаний VotingClassifier

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.ensemble.VotingClassifier.html

Spec-Zone.ru

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