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
Имена параметров и оценщиков, сопоставленные с их значениями, или имена параметров, сопоставленные с их значениями.
- 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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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), содержащий метки классов, предсказанные каждым классификатором.
- Если
Примеры галереи#
Визуализация вероятностных предсказаний VotingClassifier