Spec-Zone.ru › scikit-learn

Регрессор на основе гауссовского процесса

classsklearn.gaussian_process.GaussianProcessRegressor(kernel=None, *, alpha=1e-10, optimizer='fmin_l_bfgs_b', n_restarts_optimizer=0, normalize_y=False, copy_X_train=True, n_targets=None, random_state=None)[исходный код]

Регрессия гауссовских процессов (GPR).

Реализация основана на алгоритме 2.1 из [RW2006].

Помимо стандартного API оценивателей scikit-learn, GaussianProcessRegressor:

  • позволяет выполнять прогнозирование без предварительного обучения (на основе априорного распределения GP)
  • предоставляет дополнительный метод sample_y(X), который вычисляет значения выборок, полученных из GPR (априорного или апостериорного распределения), для заданных входных данных
  • предоставляет метод log_marginal_likelihood(theta), который можно использовать извне для других способов выбора гиперпараметров, например, с помощью метода Монте-Карло по цепям Маркова.

Чтобы узнать о различиях между подходом с точечной оценкой и более байесовским подходом к моделированию, обратитесь к примеру Сравнение регрессии на основе ядерного гребневого метода и регрессии гауссовских процессов.

Подробнее см. в руководстве пользователя.

Добавлено в версии 0.18.

Параметры:
kernelkernel instance, default=None

Ядро, задающее ковариационную функцию GP. Если передано None, по умолчанию используется ядро ConstantKernel() * RBF(). Обратите внимание, что гиперпараметры ядра оптимизируются во время обучения, если только границы не помечены как "fixed" или аргумент optimizer не установлен в None.

alphafloat or ndarray of shape (n_samples,), default=1e-10

Значение, добавляемое к диагонали матрицы ядра во время обучения. Это может предотвратить потенциальную численную проблему при обучении, гарантируя, что вычисленные значения образуют положительно определенную матрицу. Его также можно интерпретировать как дисперсию дополнительного гауссовского шума измерений в обучающих наблюдениях. Обратите внимание, что это отличается от использования WhiteKernel. Если передан массив, он должен содержать столько же элементов, сколько и данные, используемые для обучения, и используется как зависящий от точки данных уровень шума. Возможность напрямую задавать уровень шума в качестве параметра предусмотрена главным образом для удобства и согласованности с Ridge. Пример, иллюстрирующий, как параметр alpha управляет дисперсией шума в регрессии гауссовских процессов, см. в разделе Регрессия гауссовских процессов: базовый вводный пример.

optimizer“fmin_l_bfgs_b”, callable or None, default=”fmin_l_bfgs_b”

Может быть одним из встроенных оптимизаторов, поддерживаемых для оптимизации параметров ядра и задаваемых строкой, либо внешним оптимизатором, передаваемым в виде вызываемого объекта. Если передан вызываемый объект, он должен иметь сигнатуру:

def optimizer(obj_func, initial_theta, bounds):
    # * 'obj_func': the objective function to be minimized, which
    #   takes the hyperparameters theta as a 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, default=0

Количество перезапусков оптимизатора для поиска параметров ядра, максимизирующих логарифм маргинального правдоподобия. Первый запуск оптимизатора выполняется с начальными параметрами ядра, остальные (если есть) — со случайными значениями theta, выбранными по логарифмически равномерному распределению из пространства допустимых значений theta. Если значение больше 0, все границы должны быть конечными. Обратите внимание, что n_restarts_optimizer == 0 означает, что выполняется один запуск.

normalize_ybool, default=False

Следует ли нормализовать целевые значения y, вычитая среднее и приводя дисперсию к единице. Это рекомендуется в случаях, когда используются априорные распределения с нулевым средним и единичной дисперсией. Обратите внимание, что в данной реализации нормализация отменяется перед выдачей прогнозов GP.

Изменено в версии 0.23.

copy_X_trainbool, default=True

Если True, в объекте сохраняется постоянная копия обучающих данных. В противном случае сохраняется только ссылка на обучающие данные, из-за чего прогнозы могут измениться, если данные будут изменены извне.

n_targetsint, default=None

Количество измерений целевых значений. Используется для определения числа выходов при выборке из априорных распределений (то есть при вызове sample_y до вызова fit). Этот параметр игнорируется после вызова fit.

Добавлено в версии 1.3.

random_stateint, RandomState instance or None, default=None

Определяет генерацию случайных чисел, используемую для инициализации центров. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.

Атрибуты:
X_train_array-like of shape (n_samples, n_features) or list of object

Векторы признаков или другие представления обучающих данных (также требуются для прогнозирования).

y_train_array-like of shape (n_samples,) or (n_samples, n_targets)

Целевые значения в обучающих данных (также требуются для прогнозирования).

kernel_kernel instance

Ядро, используемое для прогнозирования. Структура ядра совпадает со структурой переданного в качестве параметра ядра, но его гиперпараметры оптимизированы.

L_array-like of shape (n_samples, n_samples)

Нижнетреугольное разложение Холецкого ядра в X_train_.

alpha_array-like of shape (n_samples,)

Двойственные коэффициенты обучающих точек данных в пространстве ядра.

log_marginal_likelihood_value_float

Логарифм маргинального правдоподобия для self.kernel_.theta.

n_features_in_int

Количество признаков, обнаруженных во время обучения.

Добавлено в версии 0.24.

feature_names_in_ndarray of shape (n_features_in_,)

Названия признаков, обнаруженных во время обучения. Определяется только тогда, когда X имеет названия признаков, представленные строками.

Добавлено в версии 1.0.

См. также

GaussianProcessClassifier

Классификация гауссовскими процессами (GPC) на основе приближения Лапласа.

Литература

[RW2006]

Карл Э. Расмуссен и Кристофер К. И. Уильямс, «Гауссовские процессы для машинного обучения», MIT Press, 2006

Примеры

>>> from sklearn.datasets import make_friedman2
>>> from sklearn.gaussian_process import GaussianProcessRegressor
>>> from sklearn.gaussian_process.kernels import DotProduct, WhiteKernel
>>> X, y = make_friedman2(n_samples=500, noise=0, random_state=0)
>>> kernel = DotProduct() + WhiteKernel()
>>> gpr = GaussianProcessRegressor(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpr.score(X, y)
0.3680...
>>> gpr.predict(X[:2,:], return_std=True)
(array([653.0, 592.1]), array([316.6, 316.6]))
fit(X, y)[исходный код]

Обучить модель регрессии гауссовских процессов.

Параметры:
Xarray-like of shape (n_samples, n_features) or list of object

Векторы признаков или другие представления обучающих данных.

yarray-like of shape (n_samples,) or (n_samples, n_targets)

Целевые значения.

Возвращает:
selfobject

Экземпляр класса GaussianProcessRegressor.

get_metadata_routing()[исходный код]

Получить настройки маршрутизации метаданных этого объекта.

Информацию о работе механизма маршрутизации см. в руководстве пользователя.

Возвращает:
routingMetadataRequest

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[исходный код]

Получить параметры этого оценивателя.

Параметры:
deepbool, default=True

Если True, будут возвращены параметры этого оценивателя и содержащихся в нем подобъектов, которые являются оценивателями.

Возвращает:
paramsdict

Имена параметров, сопоставленные их значениям.

log_marginal_likelihood(theta=None, eval_gradient=False, clone_kernel=True)[исходный код]

Вернуть логарифм маргинального правдоподобия theta для обучающих данных.

Параметры:
thetaarray-like of shape (n_kernel_params,) default=None

Гиперпараметры ядра, для которых вычисляется логарифм маргинального правдоподобия. Если None, возвращается предварительно вычисленный log_marginal_likelihood объекта self.kernel_.theta.

eval_gradientbool, default=False

Если True, дополнительно возвращается градиент логарифма маргинального правдоподобия по гиперпараметрам ядра в точке theta. Если True, theta не должен быть равен None.

clone_kernelbool, default=True

Если True, атрибут kernel копируется. Если False, атрибут kernel изменяется, что может повысить производительность.

Возвращает:
log_likelihoodfloat

Логарифм маргинального правдоподобия theta для обучающих данных.

log_likelihood_gradientndarray of shape (n_kernel_params,), optional

Градиент логарифма маргинального правдоподобия по гиперпараметрам ядра в точке theta. Возвращается только при значении eval_gradient=True.

predict(X, return_std=False, return_cov=False)[исходный код]

Выполнить прогноз с помощью модели регрессии гауссовских процессов.

Прогноз также можно выполнять с помощью необученной модели, используя априорное распределение GP. Помимо среднего значения прогнозного распределения, при необходимости возвращается его стандартное отклонение (return_std=True) или ковариация (return_cov=True). Обратите внимание, что можно запросить не более одного из этих двух значений.

Параметры:
Xarray-like of shape (n_samples, n_features) or list of object

Точки запроса, для которых вычисляется GP.

return_stdbool, default=False

Если True, вместе со средним значением возвращается стандартное отклонение прогнозного распределения в точках запроса.

return_covbool, default=False

Если True, вместе со средним значением возвращается ковариация совместного прогнозного распределения в точках запроса.

Возвращает:
y_meanndarray of shape (n_samples,) or (n_samples, n_targets)

Среднее значение прогнозного распределения в точках запроса.

y_stdndarray of shape (n_samples,) or (n_samples, n_targets), optional

Стандартное отклонение прогнозного распределения в точках запроса. Возвращается только если return_std равно True.

y_covndarray of shape (n_samples, n_samples) or (n_samples, n_samples, n_targets), optional

Ковариация совместного прогнозного распределения в точках запроса. Возвращается только если return_cov равно True.

sample_y(X, n_samples=1, random_state=0)[исходный код]

Получить выборки из гауссовского процесса и вычислить значения в точках X.

Параметры:
Xarray-like of shape (n_samples_X, n_features) or list of object

Точки запроса, для которых вычисляется GP.

n_samplesint, default=1

Количество выборок из гауссовского процесса для каждой точки запроса.

random_stateint, RandomState instance or None, default=0

Определяет генерацию случайных чисел для случайного получения выборок. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.

Возвращает:
y_samplesndarray of shape (n_samples_X, n_samples), or (n_samples_X, n_targets, n_samples)

Значения n_samples выборок, полученных из гауссовского процесса и вычисленных в точках запроса.

score(X, y, sample_weight=None)[исходный код]

Вернуть коэффициент детерминации на тестовых данных.

Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — сумма квадратов остатков ((y_true - y_pred)** 2).sum(), а \(v\) — общая сумма квадратов ((y_true - y_true.mean()) ** 2).sum(). Наилучшее возможное значение оценки равно 1.0, но оно может быть отрицательным (поскольку модель может быть сколь угодно хуже). Постоянная модель, всегда прогнозирующая ожидаемое значение y и не учитывающая входные признаки, получила бы оценку \(R^2\), равную 0.0.

Параметры:
Xarray-like of shape (n_samples, n_features)

Тестовые выборки. Для некоторых оценивателей вместо этого может быть предварительно вычисленная матрица ядра или список объектов общего вида с формой (n_samples, n_samples_fitted), где n_samples_fitted — количество выборок, использованных при обучении оценивателя.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

Истинные значения для X.

sample_weightarray-like of shape (n_samples,), default=None

Веса выборок.

Возвращает:
scorefloat

Значение \(R^2\) для self.predict(X) относительно y.

Примечания

При вызове score для регрессора используется оценка \(R^2\) с multioutput='uniform_average', начиная с версии 0.23, чтобы обеспечить согласованность со значением по умолчанию функции r2_score. Это влияет на метод score всех регрессоров с несколькими выходами (за исключением MultiOutputRegressor).

set_params(**params)[исходный код]

Задать параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). Параметры последних имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfestimator instance

Экземпляр оценивателя.

set_predict_request(*, return_cov:bool|None|str='$UNCHANGED$', return_std:bool|None|str='$UNCHANGED$') → GaussianProcessRegressor[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу predict.

Обратите внимание, что этот метод имеет значение только тогда, когда данный оцениватель используется как подоцениватель внутри метаоценивателя и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Информацию о работе механизма маршрутизации см. в руководстве пользователя.

Для каждого параметра доступны следующие варианты:

  • True: метаданные запрашиваются и передаются в predict, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется.
  • False: метаданные не запрашиваются, и метаоцениватель не передает их в predict.
  • None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь предоставит их.
  • str: метаданные следует передать метаоценивателю под указанным псевдонимом вместо исходного имени.

Значение по умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет текущий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.

Добавлено в версии 1.3.

Параметры:
return_covstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра return_cov в predict.

return_stdstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра return_std в predict.

Возвращает:
selfobject

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → GaussianProcessRegressor[source]

Настройте, следует ли запрашивать передачу метаданных методу 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, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
selfobject

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

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

Сравнение гребневой регрессии с ядром и регрессии с гауссовским процессом

Прогнозирование уровня CO2 с помощью регрессии с гауссовским процессом (GPR) на наборе данных Мауна-Лоа

Способность регрессии с гауссовским процессом (GPR) оценивать уровень шума в данных

Регрессия с гауссовскими процессами: базовый вводный пример

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

Иллюстрация априорного и апостериорного гауссовских процессов для различных ядер

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.gaussian_process.GaussianProcessRegressor.html

Spec-Zone.ru

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