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)[исходный код]
-
Классификация с помощью гауссовского процесса (GPC) на основе аппроксимации Лапласа.
Реализация основана на алгоритмах 3.1, 3.2 и 5.1 из [RW2006].
Для аппроксимации негaуссовского апостериорного распределения гауссовским внутри используется аппроксимация Лапласа.
В настоящее время реализация ограничена использованием логистической функции связи. Для многоклассовой классификации обучается несколько бинарных классификаторов «один против остальных». Поэтому этот класс не реализует настоящую многоклассовую аппроксимацию Лапласа.
Подробнее см. в Руководстве пользователя.
Добавлено в версии 0.18.
- Параметры:
-
- kernelэкземпляр ядра, по умолчанию None
-
Ядро, задающее ковариационную функцию гауссовского процесса. Если передано None, по умолчанию используется ядро «1.0 * RBF(1.0)». Обратите внимание, что гиперпараметры ядра оптимизируются во время обучения. Кроме того, kernel не может быть
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_optimizerint, по умолчанию 0
-
Количество перезапусков оптимизатора для поиска параметров ядра, максимизирующих логарифм маргинального правдоподобия. Первый запуск оптимизатора выполняется с начальными параметрами ядра, остальные (если они есть) — со значениями theta, случайно выбранными из пространства допустимых значений theta с логарифмически равномерным распределением. Если значение больше 0, все границы должны быть конечными. Обратите внимание: n_restarts_optimizer=0 означает, что выполняется один запуск.
- max_iter_predictint, по умолчанию 100
-
Максимальное количество итераций метода Ньютона для аппроксимации апостериорного распределения при вызове predict. Меньшие значения сокращают время вычислений, но могут ухудшить результаты.
- warm_startbool, по умолчанию False
-
Если включен warm-start, решение последней итерации метода Ньютона для аппроксимации моды апостериорного распределения Лапласа используется в качестве начального значения при следующем вызове _posterior_mode(). Это может ускорить сходимость, если _posterior_mode вызывается несколько раз для похожих задач, например при оптимизации гиперпараметров. См. глоссарий.
- copy_X_trainbool, по умолчанию True
-
Если True, в объекте сохраняется постоянная копия обучающих данных. В противном случае сохраняется только ссылка на обучающие данные, поэтому предсказания могут измениться, если данные будут изменены извне.
- random_stateint, экземпляр RandomState или None, по умолчанию None
-
Определяет генерацию случайных чисел, используемую для инициализации центров. Передайте int, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- 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_jobsint, по умолчанию None
-
Количество заданий для вычислений: указанные задачи многоклассовой классификации вычисляются параллельно.
Noneозначает 1, если не используется контекстjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии.
- Атрибуты:
-
-
base_estimator_экземпляр
Estimator -
Экземпляр оценщика, определяющий функцию правдоподобия на основе наблюдаемых данных.
-
kernel_экземпляр ядра -
Возвращает ядро базового оценщика.
- log_marginal_likelihood_value_float
-
Логарифм маргинального правдоподобия для
self.kernel_.theta - classes_массивоподобный объект формы (n_classes,)
-
Уникальные метки классов.
- n_classes_int
-
Количество классов в обучающих данных
- n_features_in_int
-
Количество признаков, обнаруженных при вызове fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, обнаруженных при вызове fit. Определяется только в том случае, если
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)[исходный код]
-
Обучает модель классификации с помощью гауссовского процесса.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features) или список объектов
-
Векторы признаков или другие представления обучающих данных.
- yмассивоподобный объект формы (n_samples,)
-
Целевые значения; должны быть бинарными.
- Возвращает:
-
- selfобъект
-
Возвращает экземпляр self.
- get_metadata_routing()[исходный код]
-
Получает маршрутизацию метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в Руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получает параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию True
-
Если True, возвращает параметры этого оценщика и содержащихся в нём подобъектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров и соответствующие им значения.
- latent_mean_and_variance(X)[исходный код]
-
Вычисляет среднее и дисперсию латентной функции.
На основе алгоритма 3.2 из [RW2006] эта функция возвращает среднее (строка 4) и дисперсию (строка 6) латентной функции модели классификации с помощью гауссовского процесса.
Обратите внимание, что эта функция поддерживается только для бинарной классификации.
Добавлено в версии 1.7.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features) или список объектов
-
Точки запроса, в которых вычисляется классификация с помощью гауссовского процесса.
- Возвращает:
-
- latent_meanмассивоподобный объект формы (n_samples,)
-
Среднее значение латентной функции в точках запроса.
- latent_varмассивоподобный объект формы (n_samples,)
-
Дисперсия значений латентной функции в точках запроса.
- log_marginal_likelihood(theta=None, eval_gradient=False, clone_kernel=True)[исходный код]
-
Возвращает логарифм маргинального правдоподобия theta для обучающих данных.
В случае многоклассовой классификации возвращается среднее значение логарифма маргинального правдоподобия классификаторов «один против остальных».
- Параметры:
-
- thetaмассивоподобный объект формы (n_kernel_params,), по умолчанию None
-
Гиперпараметры ядра, для которых вычисляется логарифм маргинального правдоподобия. В случае многоклассовой классификации theta может содержать гиперпараметры составного ядра или отдельного ядра. Во втором случае всем отдельным ядрам назначаются одинаковые значения theta. Если передано None, возвращается предварительно вычисленное значение log_marginal_likelihood для
self.kernel_.theta. - eval_gradientbool, по умолчанию False
-
Если True, дополнительно возвращается градиент логарифма маргинального правдоподобия по гиперпараметрам ядра в позиции theta. Обратите внимание, что вычисление градиента не поддерживается для небинарной классификации. Если задано True, theta не должно быть None.
- clone_kernelbool, по умолчанию True
-
Если True, атрибут kernel копируется. Если False, атрибут kernel изменяется, что может повысить производительность.
- Возвращает:
-
- log_likelihoodfloat
-
Логарифм маргинального правдоподобия theta для обучающих данных.
- log_likelihood_gradientndarray формы (n_kernel_params,), необязательный
-
Градиент логарифма маргинального правдоподобия по гиперпараметрам ядра в позиции theta. Возвращается только если
eval_gradientимеет значение True.
- predict(X)[исходный код]
-
Выполняет классификацию массива тестовых векторов X.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features) или список объектов
-
Точки запроса, в которых вычисляется классификация с помощью гауссовского процесса.
- Возвращает:
-
- Cndarray формы (n_samples,)
-
Предсказанные целевые значения для X; значения принадлежат
classes_.
- predict_proba(X)[исходный код]
-
Возвращает оценки вероятностей для тестового вектора X.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features) или список объектов
-
Точки запроса, в которых вычисляется классификация с помощью гауссовского процесса.
- Возвращает:
-
- Cмассивоподобный объект формы (n_samples, n_classes)
-
Возвращает вероятность принадлежности образцов к каждому классу модели. Столбцы соответствуют классам в отсортированном порядке, как они представлены в атрибуте 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_params(**params)[исходный код]
-
Задает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). У последних параметры имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') GaussianProcessClassifier[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
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объект
-
Обновленный объект.
-
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.gaussian_process.GaussianProcessClassifier.html