Spec-Zone.ru › scikit-learn

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.

См. также

GaussianProcessRegressor

Регрессия с помощью гауссовского процесса (GPR).

Литература

[RW2006]

Carl E. Rasmussen и Christopher K.I. Williams, «Gaussian Processes for Machine Learning», MIT Press, 2006

Примеры

>>> 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объект

Обновленный объект.

Примеры из галереи

Построение вероятностей классификации

Сравнение классификаторов

Вероятностные предсказания с классификацией на основе гауссовских процессов (GPC)

Классификация на основе гауссовских процессов (GPC) на наборе данных ирисов

Линии равных вероятностей для классификации на основе гауссовских процессов (GPC)

Иллюстрация классификации на основе гауссовских процессов (GPC) на наборе данных XOR

Гауссовские процессы на дискретных структурах данных

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API