KernelRidge#
- класс sklearn.kernel_ridge.KernelRidge(alpha=1, *, ядро='linear', gamma=None, степень=3, coef0=1, kernel_params=None)[источник]#
Регрессия ядерного гребня.
Ядерная гребневая регрессия (KRR) объединяет гребневую регрессию (линейные наименьшие квадраты с регуляризацией l2-нормы) с ядерным трюком. Таким образом, она изучает линейную функцию в пространстве, индуцированном соответствующим ядром и данными. Для нелинейных ядер это соответствует нелинейной функции в исходном пространстве.
Форма модели, изучаемой KRR, идентична модели регрессии опорных векторов (SVR). Однако используются разные функции потерь: KRR использует квадратичную ошибку, в то время как SVR использует эпсилон-нечувствительную потерю, обе в сочетании с L2-регуляризацией. В отличие от SVR, подгонка модели KRR может быть выполнена в замкнутой форме и обычно быстрее для средних наборов данных. С другой стороны, изученная модель не является разреженной и поэтому медленнее, чем SVR, которая изучает разреженную модель для epsilon > 0, во время предсказания.
Этот оценщик имеет встроенную поддержку многомерной регрессии (т.е., когда y является 2d-массивом формы [n_samples, n_targets]).
Подробнее в Руководство пользователя.
- Параметры:
- alphafloat или array-like формы (n_targets,), по умолчанию=1.0
Сила регуляризации; должна быть положительным числом с плавающей точкой. Регуляризация улучшает обусловленность задачи и уменьшает дисперсию оценок. Большие значения указывают на более сильную регуляризацию. Alpha соответствует
1 / (2C)в других линейных моделях, таких какLogisticRegressionилиLinearSVC. Если передается массив, предполагается, что штрафы являются специфичными для целей. Следовательно, они должны соответствовать по количеству. См. Ридж-регрессия и классификация для формулы.- ядроstr или callable, по умолчанию="linear"
Ядерное отображение, используемое внутри. Этот параметр напрямую передается в
pairwise_kernels. Еслиkernelявляется строкой, она должна быть одной из метрик вpairwise.PAIRWISE_KERNEL_FUNCTIONSили "precomputed". Еслиkernelравно "precomputed", X считается матрицей ядра. В противном случае, еслиkernelявляется вызываемой функцией, она вызывается для каждой пары экземпляров (строк), и полученное значение записывается. Вызываемая функция должна принимать две строки из X в качестве входных данных и возвращать соответствующее значение ядра в виде одного числа. Это означает, что вызываемые функции изsklearn.metrics.pairwiseне разрешены, так как они работают с матрицами, а не с отдельными выборками. Используйте строку, идентифицирующую ядро.- gammafloat, по умолчанию=None
Параметр Gamma для RBF, лапласиана, полинома, экспоненциального chi2 и сигмоидных ядер. Интерпретация значения по умолчанию оставлена на усмотрение ядра; см. документацию sklearn.metrics.pairwise. Игнорируется другими ядрами.
- степеньfloat, по умолчанию=3
Степень полиномиального ядра. Игнорируется другими ядрами.
- coef0float, по умолчанию=1
Нулевой коэффициент для полиномиальных и сигмоидных ядер. Игнорируется другими ядрами.
- kernel_paramsdict, по умолчанию=None
Дополнительные параметры (ключевые аргументы) для функции ядра, передаваемые как вызываемый объект.
- Атрибуты:
- dual_coef_ndarray формы (n_samples,) или (n_samples, n_targets)
Представление вектора(ов) весов в пространстве ядра.
- X_fit_{ndarray, разреженная матрица} формы (n_samples, n_features)
Обучающие данные, которые также требуются для предсказания. Если kernel == "precomputed", то это предварительно вычисленная обучающая матрица формы (n_samples, n_samples).
- n_features_in_int
Количество признаков, замеченных во время fit.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.Добавлено в версии 1.0.
Смотрите также
sklearn.gaussian_process.GaussianProcessRegressorРегрессор гауссовского процесса с автоматической настройкой гиперпараметров ядра и предсказанием неопределенности.
sklearn.linear_model.RidgeLinear ridge regression.
sklearn.linear_model.RidgeCVРидж-регрессия со встроенной кросс-валидацией.
sklearn.svm.SVRМетод опорных векторов для регрессии, принимающий большое разнообразие ядер.
Ссылки
Кевин П. Мерфи «Машинное обучение: вероятностная перспектива», The MIT Press глава 14.4.3, стр. 492-493
Примеры
>>> from sklearn.kernel_ridge import KernelRidge >>> import numpy as np >>> n_samples, n_features = 10, 5 >>> rng = np.random.RandomState(0) >>> y = rng.randn(n_samples) >>> X = rng.randn(n_samples, n_features) >>> krr = KernelRidge(alpha=1.0) >>> krr.fit(X, y) KernelRidge(alpha=1.0)
- fit(X, y, sample_weight=None)[источник]#
Обучить модель Kernel Ridge регрессии.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Обучающие данные. Если kernel == "precomputed", это вместо этого предварительно вычисленная матрица ядра формы (n_samples, n_samples).
- yмассивоподобный формы (n_samples,) или (n_samples, n_targets)
Целевые значения.
- sample_weightfloat или array-like формы (n_samples,), по умолчанию=None
Индивидуальные веса для каждого образца, игнорируются, если передано None.
- Возвращает:
- selfobject
Возвращает сам экземпляр.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- predict(X)[источник]#
Предсказать с использованием модели ядерной гребневой регрессии.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Образцы. Если kernel == "precomputed", это вместо этого предварительно вычисленная матрица ядра, форма = [n_samples, n_samples_fitted], где n_samples_fitted — количество образцов, использованных при обучении для этого оценщика.
- Возвращает:
- Cndarray формы (n_samples,) или (n_samples, n_targets)
Возвращает предсказанные значения.
- 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 формы (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\) of
self.predict(X)относительноy.
Примечания
The \(R^2\) оценка, используемая при вызове
scoreна регрессоре используетmultioutput='uniform_average'с версии 0.23 для сохранения согласованности со значением по умолчаниюr2_score. Это влияет наscoreметод всех многомерных регрессоров (кромеMultiOutputRegressor).
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelRidge[источник]#
Настроить, следует ли запрашивать передачу метаданных в
fitметод.Обратите внимание, что этот метод актуален только тогда, когда этот оценщик используется как под-оценщик внутри мета-оценщик и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
True: запрашиваются метаданные и передаютсяfitесли предоставлено. Запрос игнорируется, если метаданные не предоставлены.False: метаданные не запрашиваются, и мета-оценщик не передаст их вfit.None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменять запрос для некоторых параметров, но не для других.Добавлено в версии 1.3.
- Параметры:
- sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вfit.
- Возвращает:
- selfobject
Обновленный объект.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelRidge[источник]#
Настроить, следует ли запрашивать передачу метаданных в
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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
Маршрутизация метаданных для
sample_weightпараметр вscore.
- Возвращает:
- selfobject
Обновленный объект.
Примеры галереи#
Сравнение ядерной гребневой регрессии и регрессии по методу Гауссовских процессов