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