Spec-Zone.ru › scikit-learn

VotingClassifier

классsklearn.ensemble.VotingClassifier(estimators, *, voting='hard', weights=None, n_jobs=None, flatten_transform=True, verbose=False)[source]

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

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

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

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

Вызов метода 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_jobsцелое число, по умолчанию=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_одномерный массив формы (n_classes,)

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

n_features_in_целое число

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

feature_names_in_одномерный массив формы (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. Вот пример, где мы удалили один из оценок, что привело к двум обученным оценочным объектам:

>>> 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, *, sample_weight=None, **fit_params)[source]

Обучение оценок.

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

Вектора обучения, где n_samples — количество примеров, а n_features — количество признаков.

yмассив формы (n_samples,)

Значения целевых переменных.

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

Веса примеров. Если None, все примеры имеют равные веса. Обратите внимание, что это поддерживается только если все базовые оценочные объекты поддерживают весы примеров.

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

**fit_paramsсловарь

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

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

Возвращаемое значение:
selfобъект

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

fit_transform(X, y=None, **fit_params)[source]

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

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

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

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

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

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

**fit_paramsсловарь

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

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

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

get_feature_names_out(input_features=None)[source]

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

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

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

Возвращаемое значение:
feature_names_outмассив объектов str

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

END_OF_DOCUMENT_MARKER
get_metadata_routing()[source]

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

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

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

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

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

get_params(deep=True)[source]

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

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

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

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

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

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

propertyn_features_in_

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

propertynamed_estimators

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

Возвращает:
Bunch
predict(X)[source]

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

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

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

Возвращает:
majarray-like of shape (n_samples,)

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

predict_proba(X)[source]

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

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

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

Возвращает:
avgarray-like of shape (n_samples, n_classes)

Весовая средняя вероятность для каждого класса на образец.

score(X, y, sample_weight=None)[source]

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

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

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

Тестовые образцы.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

Истинные метки для X.

sample_weightarray-like of shape (n_samples,), default=None

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

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

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

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → VotingClassifier[source]

Запрос метаданных, переданных методу fit.

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

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

  • True: метаданные запрашиваются и передаются fit если предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются и мета-оценщик не передаст их fit.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.
  • str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо исходного имени.

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

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

Примечание

Этот метод актуален только в том случае, если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого влияния.

Параметры:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_output(*, transform=None)[source]

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

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

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

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

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

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

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

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

set_params(**params)[source]

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

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

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

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → VotingClassifier[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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

transform(X)[source]

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

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Векторы обучения, где n_samples — количество примеров, а n_features — количество признаков.

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

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

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

массив формы (n_classifiers, n_samples, n_classes)

Если voting='hard':

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

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

Построение вероятностей классов, вычисленных VotingClassifier

Построение границ решений VotingClassifier

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

Spec-Zone.ru

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