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
-
Преобразованные имена признаков.
- 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), содержащий предсказанные метки классов каждым классификатором.
- Если
Примеры из галереи
© 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