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