Spec-Zone.ru › scikit-learn

Мэтерн

классsklearn.gaussian_process.kernels.Matern(length_scale=1.0, length_scale_bounds=(1e-05, 100000.0), nu=1.5)[source]

Ядро Матерна.

Класс ядер Матерна является обобщением ядра RBF. Он имеет дополнительный параметр \(\nu\), который управляет гладкостью результирующей функции. Чем меньше \(\nu\), тем менее гладкой является приближённая функция. При \(\nu\rightarrow\infty\), ядро становится эквивалентным ядру RBF. Когда \(\nu = 1/2\), ядро Матерна становится идентичным абсолютному экспоненциальному ядру. Важными промежуточными значениями являются \(\nu=1.5\) (функции с однократной дифференцируемостью) и \(\nu=2.5\) (функции с двукратной дифференцируемостью).

Ядро задаётся следующим образом:

\[k(x_i, x_j) = \frac{1}{\Gamma(\nu)2^{\nu-1}}\Bigg( \frac{\sqrt{2\nu}}{l} d(x_i , x_j ) \Bigg)^\nu K_\nu\Bigg( \frac{\sqrt{2\nu}}{l} d(x_i , x_j )\Bigg)\]

где \(d(\cdot,\cdot)\) — евклидово расстояние, \(K_{\nu}(\cdot)\) — модифицированная функция Бесселя, а \(\Gamma(\cdot)\) — гамма-функция. Подробнее о различных вариантах ядра Матерна см. [1], глава 4, раздел 4.2.

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

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

Параметры:
length_scalefloat или ndarray формы (n_features,), по умолчанию=1.0

Масштаб длины ядра. Если float, используется изотропное ядро. Если массив, используется анизотропное ядро, где каждый элемент l определяет масштаб длины соответствующего измерения признака.

length_scale_boundsпара из чисел >= 0 или “fixed”, по умолчанию=(1e-5, 1e5)

Нижняя и верхняя границы для ‘length_scale’. Если установлено “fixed”, ‘length_scale’ нельзя изменить во время подбора гиперпараметров.

nufloat, по умолчанию=1.5

Параметр nu, контролирующий гладкость изученной функции. Меньшее nu, тем менее гладкой является приближённая функция. При nu=бесконечность, ядро становится эквивалентным ядру RBF, а при nu=0.5 — абсолютному экспоненциальному ядру. Важными промежуточными значениями являются nu=1.5 (функции с однократной дифференцируемостью) и nu=2.5 (функции с двукратной дифференцируемостью). Обратите внимание, что значения nu, не входящие в [0.5, 1.5, 2.5, бесконечность], приводят к значительно большей вычислительной сложности (примерно в 10 раз больше), так как требуют вычисления модифицированной функции Бесселя. Кроме того, в отличие от l, nu сохраняется неизменным и не оптимизируется.

Ссылки

[1]

Carl Edward Rasmussen, Christopher K. I. Williams (2006). “Gaussian Processes for Machine Learning”. The MIT Press.

Примеры

>>> from sklearn.datasets import load_iris
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import Matern
>>> X, y = load_iris(return_X_y=True)
>>> kernel = 1.0 * Matern(length_scale=1.0, nu=1.5)
>>> gpc = GaussianProcessClassifier(kernel=kernel,
...         random_state=0).fit(X, y)
>>> gpc.score(X, y)
0.9866...
>>> gpc.predict_proba(X[:2,:])
array([[0.8513..., 0.0368..., 0.1117...],
        [0.8086..., 0.0693..., 0.1220...]])
__call__(X, Y=None, eval_gradient=False)[source]

Возвращает ядро k(X, Y) и, необязательно, его градиент.

Параметры:
Xndarray формы (n_samples_X, n_features)

Левый аргумент возвращаемого ядра k(X, Y)

Yndarray формы (n_samples_Y, n_features), по умолчанию=None

Правый аргумент возвращаемого ядра k(X, Y). Если None, вычисляется k(X, X).

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

Определяет, вычисляется ли градиент по отношению к логарифму гиперпараметра ядра. Поддерживается только когда Y равно None.

Возвращает:
Kndarray формы (n_samples_X, n_samples_Y)

Ядро k(X, Y)

K_gradientndarray формы (n_samples_X, n_samples_X, n_dims), необязательно

Градиент ядра k(X, X) по отношению к логарифму гиперпараметра ядра. Возвращается только когда eval_gradient равно True.

свойствоbounds

Возвращает логарифмически преобразованные границы theta.

Возвращает:
boundsndarray формы (n_dims, 2)

Логарифмически преобразованные границы гиперпараметров ядра theta

clone_with_theta(theta)[source]

Возвращает копию self с заданными гиперпараметрами theta.

Параметры:
thetandarray формы (n_dims,)

Гиперпараметры

diag(X)[source]

Возвращает диагональ ядра k(X, X).

Результат этого метода идентичен np.diag(self(X)); однако он может быть вычислен более эффективно, так как вычисляется только диагональ.

Параметры:
Xndarray формы (n_samples_X, n_features)

Левый аргумент возвращаемого ядра k(X, Y)

Возвращает:
K_diagndarray формы (n_samples_X,)

Диагональ ядра k(X, X)

get_params(deep=True)[source]

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

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

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

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

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

свойствоhyperparameters

Возвращает список всех спецификаций гиперпараметров.

is_stationary()[source]

Возвращает, является ли ядро стационарным.

свойствоn_dims

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

свойствоrequires_vector_input

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

set_params(**params)[source]

Установить параметры этого ядра.

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

Возвращает:
self
propertytheta

Возвращает (уплощенные, логарифмически преобразованные) нефиксированные гиперпараметры.

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

Возвращает:
thetandarray формы (n_dims,)

Нефиксированные, логарифмически преобразованные гиперпараметры ядра

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

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

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

Spec-Zone.ru

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