GaussianProcessClassifier
- classsklearn.gaussian_process.GaussianProcessClassifier(kernel=None, *, optimizer='fmin_l_bfgs_b', n_restarts_optimizer=0, max_iter_predict=100, warm_start=False, copy_X_train=True, random_state=None, multi_class='one_vs_rest', n_jobs=None)[source]
-
Классификация с помощью гауссовских процессов (GPC) на основе аппроксимации Лапласа.
Реализация основана на алгоритмах 3.1, 3.2 и 5.1 из [RW2006].
Внутри используется аппроксимация Лапласа для приближения негауссовского апостериорного распределения гауссовым.
В настоящее время реализация ограничена использованием логистической функции связи. Для многоклассовой классификации подгоняются несколько двоичных классификаторов «один против всех». Обратите внимание, что данный класс, таким образом, не реализует истинную многоклассовую аппроксимацию Лапласа.
Подробнее см. в Руководстве пользователя.
Добавлена в версии 0.18.
- Параметры:
-
- kernelэкземпляр ядра, по умолчанию=None
-
Ядро, определяющее ковариационную функцию GP. Если передано None, по умолчанию используется ядро “1.0 * RBF(1.0)”. Обратите внимание, что гиперпараметры ядра оптимизируются во время подгонки. Также ядро не может быть
CompoundKernel. - optimizer‘fmin_l_bfgs_b’, вызываемая функция или None, по умолчанию=’fmin_l_bfgs_b’
-
Может быть одним из поддерживаемых внутренних оптимизаторов для оптимизации параметров ядра, заданными строкой, или внешним оптимизатором, переданным как вызываемая функция. Если передана вызываемая функция, она должна иметь подпись:
def optimizer(obj_func, initial_theta, bounds): # * 'obj_func' is the objective function to be maximized, which # takes the hyperparameters theta as parameter and an # optional flag eval_gradient, which determines if the # gradient is returned additionally to the function value # * 'initial_theta': the initial value for theta, which can be # used by local optimizers # * 'bounds': the bounds on the values of theta .... # Returned are the best found hyperparameters theta and # the corresponding value of the target function. return theta_opt, func_minПо умолчанию используется алгоритм ‘L-BFGS-B’ из scipy.optimize.minimize. Если передано None, параметры ядра остаются фиксированными. Доступные внутренние оптимизаторы:
'fmin_l_bfgs_b'
- n_restarts_optimizerцелое число, по умолчанию=0
-
Количество перезапусков оптимизатора для поиска параметров ядра, которые максимизируют логарифмическую правдоподобие. Первый запуск оптимизатора выполняется из начальных параметров ядра, остальные (если есть) — из theta, выбранных логарифмически равномерно случайно из пространства разрешённых значений theta. Если больше 0, все границы должны быть конечными. Обратите внимание, что n_restarts_optimizer=0 подразумевает, что выполняется один запуск.
- max_iter_predictцелое число, по умолчанию=100
-
Максимальное число итераций в методе Ньютона для аппроксимации апостериорного распределения во время предсказания. Меньшие значения уменьшат время вычислений за счёт ухудшения результатов.
- warm_startлогическое значение, по умолчанию=False
-
Если включены warm-start, решение последней итерации Ньютона на аппроксимации Лапласа для режима апостериорного распределения используется в качестве начального значения для следующего вызова _posterior_mode(). Это может ускорить сходимость, когда _posterior_mode вызывается несколько раз для похожих задач, например, при оптимизации гиперпараметров. См. словарь терминов.
- copy_X_trainлогическое значение, по умолчанию=True
-
Если True, в объекте хранится постоянная копия обучающих данных. В противном случае хранится только ссылка на обучающие данные, что может привести к изменению предсказаний, если данные изменены внешним образом.
- random_stateцелое число, экземпляр RandomState или None, по умолчанию=None
-
Определяет генерацию псевдослучайных чисел, используемых для инициализации центров. Передайте целое число для воспроизводимых результатов при нескольких вызовах функций. См. словарь терминов.
- multi_class{‘one_vs_rest’, ‘one_vs_one’}, по умолчанию=’one_vs_rest’
-
Определяет, как обрабатываются задачи многоклассовой классификации. Поддерживаются ‘one_vs_rest’ и ‘one_vs_one’. В случае ‘one_vs_rest’ для каждого класса подгоняется один двоичный классификатор гауссовских процессов, который обучен разделять этот класс от остальных. В случае ‘one_vs_one’ для каждой пары классов подгоняется один двоичный классификатор гауссовских процессов, который обучен разделять эти два класса. Предсказания этих двоичных предсказателей комбинируются в многоклассовые предсказания. Обратите внимание, что ‘one_vs_one’ не поддерживает предсказание вероятностных оценок.
- n_jobsцелое число, по умолчанию=None
-
Число задач для вычислений: указанные задачи многоклассовой классификации вычисляются параллельно.
Noneозначает 1, за исключениемjoblib.parallel_backendконтекста.-1означает использование всех процессоров. См. словарь терминов для получения дополнительной информации.
- Атрибуты:
-
-
base_estimator_
Estimatorэкземпляр -
Экземпляр оценщика, определяющий функцию правдоподобия, используя наблюдаемые данные.
-
kernel_экземпляр ядра -
Возвращает ядро базового оценщика.
- log_marginal_likelihood_value_вещественное число
-
Значение логарифмической правдоподобия
self.kernel_.theta. - classes_массив-подобный объекта формы (n_classes,)
-
Уникальные метки классов.
- n_classes_целое число
-
Количество классов в обучающих данных
- n_features_in_целое число
-
Количество признаков, встреченных во время подгонки.
Добавлена в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, встреченных во время подгонки. Определяется только тогда, когда
Xимеет имена признаков, которые все являются строками.Добавлена в версии 1.0.
-
base_estimator_
См. также
GaussianProcessRegressor-
Регрессия с помощью гауссовских процессов (GPR).
Ссылки
Примеры
>>> from sklearn.datasets import load_iris >>> from sklearn.gaussian_process import GaussianProcessClassifier >>> from sklearn.gaussian_process.kernels import RBF >>> X, y = load_iris(return_X_y=True) >>> kernel = 1.0 * RBF(1.0) >>> gpc = GaussianProcessClassifier(kernel=kernel, ... random_state=0).fit(X, y) >>> gpc.score(X, y) 0.9866... >>> gpc.predict_proba(X[:2,:]) array([[0.83548752, 0.03228706, 0.13222543], [0.79064206, 0.06525643, 0.14410151]])Для сравнения GaussianProcessClassifier с другими классификаторами см.: График вероятности классификации.
- fit(X, y)[source]
-
Подгонка модели классификации с помощью гауссовских процессов.
- Параметры:
-
- Xмассив-подобный объекта формы (n_samples, n_features) или список объектов
-
Векторы признаков или другие представления обучающих данных.
- yмассив-подобный объекта формы (n_samples,)
-
Значения целевой переменной, должны быть двоичными.
- Возвращает:
-
- selfобъект
-
Возвращает экземпляр self.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных для этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя по работе механизма маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Parameters:
-
- deepbool, default=True
-
Если True, вернет параметры этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Returns:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- propertykernel_
-
Возвращает ядро базового оценщика.
- log_marginal_likelihood(theta=None, eval_gradient=False, clone_kernel=True)[source]
-
Возвращает логарифмическую маргинальную правдоподобие theta для обучающих данных.
В случае многоклассовой классификации возвращается среднее логарифмической маргинальной правдоподобие классификаторов один-против-остальных.
- Parameters:
-
- thetaarray-like of shape (n_kernel_params,), default=None
-
Гиперпараметры ядра, для которых вычисляется логарифмическая маргинальная правдоподобие. В случае многоклассовой классификации theta может быть гиперпараметрами составного ядра или отдельного ядра. В последнем случае всем отдельным ядрам присваиваются одинаковые значения theta. Если None, возвращается предварительно вычисленное логарифмическая маргинальная правдоподобие
self.kernel_.theta. - eval_gradientbool, default=False
-
Если True, дополнительно возвращается градиент логарифмической маргинальной правдоподобия относительно гиперпараметров ядра в позиции theta. Обратите внимание, что вычисление градиента не поддерживается для классификации, отличной от бинарной. Если True, theta не должно быть None.
- clone_kernelbool, default=True
-
Если True, атрибут kernel копируется. Если False, атрибут kernel изменяется, но может привести к улучшению производительности.
- Returns:
-
- log_likelihoodfloat
-
Логарифмическая маргинальная правдоподобие theta для обучающих данных.
- log_likelihood_gradientndarray of shape (n_kernel_params,), optional
-
Градиент логарифмической маргинальной правдоподобия относительно гиперпараметров ядра в позиции theta. Возвращается только при
eval_gradient.
- predict(X)[source]
-
Выполняет классификацию на наборе тестовых векторов X.
- Parameters:
-
- Xarray-like of shape (n_samples, n_features) or list of object
-
Точки запроса, где GP оценивается для классификации.
- Returns:
-
- Cndarray of shape (n_samples,)
-
Предсказанные целевые значения для X, значения из
classes_.
- predict_proba(X)[source]
-
Возвращает оценки вероятностей для тестового вектора X.
- Parameters:
-
- Xarray-like of shape (n_samples, n_features) or list of object
-
Точки запроса, где GP оценивается для классификации.
- Returns:
-
- Carray-like of shape (n_samples, n_classes)
-
Возвращает вероятность выборки для каждого класса в модели. Столбцы соответствуют классам в отсортированном порядке, как они появляются в атрибуте classes_.
- score(X, y, sample_weight=None)[source]
-
Возвращает среднюю точность на заданных тестовых данных и метках.
При многоклассовой классификации это точность подмножества, которая является жесткой метрикой, поскольку для каждой выборки требуется, чтобы каждый набор меток был правильно предсказан.
- Parameters:
-
- 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
-
Веса выборок.
- Returns:
-
- scorefloat
-
Средняя точность
self.predict(X)относительноy.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает с простыми оценщиками, а также с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, чтобы можно было обновить каждый компонент вложенного объекта.- Parameters:
-
- **paramsdict
-
Параметры оценщика.
- Returns:
-
- selfestimator instance
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') GaussianProcessClassifier[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь со Руководством пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяscore, если они предоставлены. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются и мета-оценщик не передаст ихscore. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с этим алиасом вместо оригинального имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлена в версии 1.3.
Примечание
Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Returns:
-
- selfobject
-
Обновленный объект.
-
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.gaussian_process.GaussianProcessClassifier.html