Spec-Zone.ru › scikit-learn

GaussianProcessRegressor

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)[source]

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

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

В дополнение к стандартному API оценки scikit-learn, GaussianProcessRegressor:

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

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

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

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

Параметры:
kernelэкземпляр ядра, по умолчанию=None

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

alphaвещественное число или массив формы (n_samples,), по умолчанию=1e-10

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

optimizer“fmin_l_bfgs_b”, вызываемая функция или None, по умолчанию=”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_optimizerцелое число, по умолчанию=0

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

normalize_ybool, по умолчанию=False

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

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

copy_X_trainbool, по умолчанию=True

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

n_targetsцелое число, по умолчанию=None

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

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

random_stateцелое число, экземпляр RandomState или None, по умолчанию=None

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

Атрибуты:
X_train_массив формы (n_samples, n_features) или список объектов

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

y_train_массив формы (n_samples,) или (n_samples, n_targets)

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

kernel_экземпляр ядра

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

L_массив формы (n_samples, n_samples)

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

alpha_массив формы (n_samples,)

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

log_marginal_likelihood_value_вещественное число

Значение логарифмической правдоподобия self.kernel_.theta.

n_features_in_целое число

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

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

feature_names_in_массив формы (n_features_in_,)

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

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

См. также

GaussianProcessClassifier

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

Ссылки

[RW2006]

Carl E. Rasmussen и Christopher K.I. Williams, “Gaussian Processes for Machine Learning”, 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)[source]

Обучение модели регрессии с гауссовой моделью процесса.

Параметры:
Xмассив формы (n_samples, n_features) или список объектов

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

yмассив формы (n_samples,) или (n_samples, n_targets)

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

Возвращает:
selfобъект

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

get_metadata_routing()[source]

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

См. Руководство пользователя о том, как работает механизм маршрутизации.

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

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

get_params(deep=True)[source]

Получить параметры данного оценщика.

Параметры:
deepbool, по умолчанию=True

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

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

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

log_marginal_likelihood(theta=None, eval_gradient=False, clone_kernel=True)[source]

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

Параметры:
thetaмассив-подобный типа (n_kernel_params,), по умолчанию=None

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

eval_gradientbool, по умолчанию=False

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

clone_kernelbool, по умолчанию=True

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

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

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

log_likelihood_gradientndarray типа (n_kernel_params,), необязательно

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

predict(X, return_std=False, return_cov=False)[source]

Предсказание с использованием модели регрессии Гауссова процесса.

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

Параметры:
Xмассив-подобный типа (n_samples, n_features) или список объектов

Точки запроса, где оценивается GP.

return_stdbool, по умолчанию=False

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

return_covbool, по умолчанию=False

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

Возвращает:
y_meanмассив-подобный типа (n_samples,) или (n_samples, n_targets)

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

y_stdмассив-подобный типа (n_samples,) или (n_samples, n_targets), необязательно

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

y_covмассив-подобный типа (n_samples, n_samples) или (n_samples, n_samples, n_targets), необязательно

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

sample_y(X, n_samples=1, random_state=0)[source]

Выбрать образцы из Гауссова процесса и оценить в X.

Параметры:
Xмассив-подобный типа (n_samples_X, n_features) или список объектов

Точки запроса, где оценивается GP.

n_samplesint, по умолчанию=1

Количество образцов, выбранных из Гауссова процесса на каждую точку запроса.

random_stateint, RandomState instance или None, по умолчанию=0

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

Возвращает:
y_samplesмассив-подобный типа (n_samples_X, n_samples) или (n_samples_X, n_targets, n_samples)

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

score(X, y, sample_weight=None)[source]

Возвращает коэффициент детерминации предсказания.

Коэффициент детерминации \(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 формы (n_samples, n_features)

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

yarray-like формы (n_samples,) или (n_samples, n_outputs)

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

sample_weightarray-like формы (n_samples,), по умолчанию None

Веса образцов.

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

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

Примечания

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

set_params(**params)[source]

Устанавливает параметры этого оценщика.

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

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

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

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

set_predict_request(*, return_cov:bool|None|str='$UNCHANGED$', return_std:bool|None|str='$UNCHANGED$') → GaussianProcessRegressor[source]

Запрос метаданных, переданных методу predict.

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

Варианты для каждого параметра:

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

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

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

Примечание

Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого эффекта.

Параметры:
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.

Примечание

Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого влияния.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

Returns:
selfobject

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

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

Возможности регрессии Гауссовского процесса (GPR) для оценки шума в данных

Сравнение регрессии с ядром Риджа и регрессии Гауссовского процесса

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

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

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

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

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

Spec-Zone.ru

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