Регрессор на основе гауссовского процесса
- 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) на основе приближения Лапласа.
Литература
Примеры
>>> 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
-
Обновлённый объект.
-
Примеры галереи
© 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