Spec-Zone.ru › scikit-learn

ElasticNetCV

классsklearn.linear_model.ElasticNetCV(*, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, precompute='auto', max_iter=1000, tol=0.0001, cv=None, copy_X=True, verbose=0, n_jobs=None, positive=False, random_state=None, selection='cyclic')[source]

Модель Elastic Net с итерационной подгонкой вдоль пути регуляризации.

См. запись в глоссарии для оценщика перекрестной проверки.

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

Параметры:
l1_ratiofloat или список float, по умолчанию=0.5

Значение от 0 до 1, передаваемое в ElasticNet (масштабирование между L1 и L2 штрафами). Для l1_ratio = 0 штраф является L2 штрафом. Для l1_ratio = 1 это L1 штраф. Для 0 < l1_ratio < 1, штраф представляет собой комбинацию L1 и L2 штрафов. Этот параметр может быть списком, в котором случае разные значения проверяются с помощью перекрестной проверки, и используется значение, дающее наилучший результат прогнозирования. Обратите внимание, что хороший выбор списка значений для l1_ratio часто заключается в том, чтобы поместить больше значений близко к 1 (т. е. Lasso) и меньше близко к 0 (т. е. Ridge), как в [.1, .5, .7, .9, .95, .99, 1].

epsfloat, по умолчанию=1e-3

Длина пути. eps=1e-3 означает, что alpha_min / alpha_max = 1e-3.

n_alphasint, по умолчанию=100

Количество альфа вдоль пути регуляризации, используемого для каждого l1_ratio.

alphasпоследовательность, по умолчанию=None

Список альфа, где необходимо вычислить модели. Если None, альфа устанавливаются автоматически.

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

Вычислять ли свободный член для этой модели. Если установлено в false, свободный член не будет использоваться в расчетах (т. е. ожидается, что данные центрированы).

precompute‘auto’, bool или массив-подобный размера (n_features, n_features), по умолчанию=’auto’

Использовать ли предварительно вычисленный Gram-матрицу для ускорения вычислений. Если установлено в 'auto' — пусть решаем сами. Gram-матрица также может быть передана в качестве аргумента.

max_iterint, по умолчанию=1000

Максимальное число итераций.

tolfloat, по умолчанию=1e-4

Допуск для оптимизации: если обновления меньше tol, код оптимизации проверяет двойную разность для оптимальности и продолжает до тех пор, пока она не станет меньше tol.

cvint, генератор перекрестной проверки или итерируемый объект, по умолчанию=None

Определяет стратегию разбиения перекрестной проверки. Возможные входные данные для cv:

  • None, чтобы использовать стандартную 5-кратную перекрестную проверку,
  • int, чтобы указать количество блоков.
  • Разделитель перекрестной проверки,
  • Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.

Для целочисленных/None входных данных, используется KFold.

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

Изменено в версии 0.22: cv значение по умолчанию, если None, изменилось с 3-кратной на 5-кратную перекрестную проверку.

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

Если True, X будет скопирован; иначе, он может быть перезаписан.

verbosebool или int, по умолчанию=0

Уровень подробности.

n_jobsint, по умолчанию=None

Количество ЦП, используемых во время перекрестной проверки. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительных сведений.

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

При установке в True, принудительно устанавливает коэффициенты положительными.

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

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

selection{‘циклический’, ‘случайный’}, по умолчанию=’циклический’

Если установлено в ‘случайный’, коэффициент обновляется случайным образом каждую итерацию, а не по порядку проходя по признакам, как по умолчанию. Это (установка в ‘случайный’) часто приводит к значительно более быстрой сходимости, особенно когда tol выше 1e-4.

Атрибуты:
alpha_float

Значение штрафа, выбранное перекрестной проверкой.

l1_ratio_float

Компромисс между L1 и L2 штрафами, выбранный перекрестной проверкой.

coef_массив-подобный размера (n_features,) или (n_targets, n_features)

Вектор параметров (w в формуле функции стоимости).

intercept_float или массив-подобный размера (n_targets, n_features)

Свободный член в функции решения.

mse_path_массив-подобный размера (n_l1_ratio, n_alpha, n_folds)

Средняя квадратичная ошибка для тестовой выборки в каждом блоке, изменяя l1_ratio и alpha.

alphas_массив-подобный размера (n_alphas,) или (n_l1_ratio, n_alphas)

Диапазон альфа, используемых для подгонки, для каждого l1_ratio.

dual_gap_float

Двойные разности в конце оптимизации для оптимального alpha.

n_iter_int

Количество итераций, выполненных решателем координированного спуска, чтобы достичь заданного допуска для оптимального alpha.

n_features_in_int

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

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

feature_names_in_массив-подобный размера (n_features_in_,)

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

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

См. также

enet_path

Вычисление пути Elastic Net с координированным спуском.

ElasticNet

Линейная регрессия с комбинированными L1 и L2 ограничениями как регуляризатором.

Примечания

В fit, после того как лучшие параметры l1_ratio и alpha найдены с помощью перекрестной проверки, модель подгоняется снова с использованием всего набора обучающих данных.

Чтобы избежать ненужного дублирования памяти, аргумент X метода fit должен быть непосредственно передан в виде массива numpy, совместимого с Fortran.

Параметр l1_ratio соответствует alpha в пакете glmnet R, в то время как alpha соответствует параметру lambda в glmnet. Более конкретно, целевая функция оптимизации:

1 / (2 * n_samples) * ||y - Xw||^2_2
+ alpha * l1_ratio * ||w||_1
+ 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2

Если вы заинтересованы в управлении L1 и L2 штрафами отдельно, помните, что это эквивалентно:

a * L1 + b * L2

для:

alpha = a + b and l1_ratio = a / (a + b).

Пример см. в примерах/linear_model/plot_lasso_model_selection.py.

Примеры

>>> from sklearn.linear_model import ElasticNetCV
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=2, random_state=0)
>>> regr = ElasticNetCV(cv=5, random_state=0)
>>> regr.fit(X, y)
ElasticNetCV(cv=5, random_state=0)
>>> print(regr.alpha_)
0.199...
>>> print(regr.intercept_)
0.398...
>>> print(regr.predict([[0, 0]]))
[0.398...]
fit(X, y, sample_weight=None, **params)[source]

Обучение модели ElasticNet с помощью координатного спуска.

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

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Данные обучения. Передаются напрямую как данные с фортрановской конфигурацией, чтобы избежать ненужного дублирования памяти. Если y имеет моно-выход, X может быть разреженным. Обратите внимание, что большие разреженные матрицы и массивы, требующие int64 индексов, не поддерживаются.

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

Значения целевой переменной.

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

Веса образцов, используемые для обучения и оценки взвешенной среднеквадратической ошибки каждого cv-слоя. Обратите внимание, что перекрестно валидированная MSE, которая в конечном итоге используется для нахождения лучшей модели, является взвешенным средним по MSE каждого тестового слое.

**paramsdict, по умолчанию=None

Параметры, которые необходимо передать разделителю перекрестной проверки.

Добавлен в версии 1.4: Доступен только если enable_metadata_routing=True, что может быть установлено с помощью sklearn.set_config(enable_metadata_routing=True). Подробнее см. Руководство по маршрутизации метаданных.

Возвращаемое значение:
selfобъект

Возвращает экземпляр обученной модели.

get_metadata_routing()[source]

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

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

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

Возвращаемое значение:
routingMetadataRouter

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

get_params(deep=True)[source]

Получение параметров этого оценивателя.

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

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

Возвращаемое значение:
paramsdict

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

staticpath(X, y, *, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, check_input=True, **params)[source]

Вычисление пути эластичной сети с помощью метода сопряжённых градиентов.

Функция оптимизации эластичной сети меняется для задач с одним и несколькими выходами.

Для задач с одним выходом она равна:

1 / (2 * n_samples) * ||y - Xw||^2_2
+ alpha * l1_ratio * ||w||_1
+ 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2

Для задач с несколькими выходами она равна:

(1 / (2 * n_samples)) * ||Y - XW||_Fro^2
+ alpha * l1_ratio * ||W||_21
+ 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2

Где:

||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}

т.е. сумма нормы каждой строки.

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

Параметры:
X{массив-подобный объект, разреженная матрица} формы (n_samples, n_features)

Данные обучения. Передаются напрямую в виде данных Fortran-contiguous, чтобы избежать ненужного дублирования памяти. Если y представляет собой задачу с одним выходом, то X может быть разреженной.

y{массив-подобный объект, разреженная матрица} формы (n_samples,) или (n_samples, n_targets)

Значения целевой переменной.

l1_ratiofloat, по умолчанию=0.5

Число от 0 до 1, определяющее масштаб между L1 и L2 штрафами в эластичной сети. l1_ratio=1 соответствует регрессии Лассо.

epsfloat, по умолчанию=1e-3

Длина пути. eps=1e-3 означает, что alpha_min / alpha_max = 1e-3.

n_alphasint, по умолчанию=100

Число значений alpha вдоль пути регуляризации.

alphasмассив-подобный объект, по умолчанию=None

Список значений alpha, для которых будут вычисляться модели. Если None, значения alpha устанавливаются автоматически.

precompute‘auto’, bool или массив-подобный объект формы (n_features, n_features), по умолчанию=’auto’

Использовать ли предварительно вычисленную матрицу Грама для ускорения вычислений. Если установлено 'auto', то решается автоматически. Матрица Грама также может быть передана в качестве аргумента.

Xyмассив-подобный объект формы (n_features,) или (n_features, n_targets), по умолчанию=None

Xy = np.dot(X.T, y), который может быть предварительно вычислен. Он полезен только при предварительном вычислении матрицы Грама.

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

Если True, X будет скопирован; в противном случае он может быть перезаписан.

coef_initмассив-подобный объект формы (n_features, ), по умолчанию=None

Начальные значения коэффициентов.

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

Уровень подробности вывода.

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

Возвращать ли число итераций.

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

Если установлено в True, заставляет коэффициенты быть положительными. (Допускается только когда y.ndim == 1).

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

Если установлено в False, проверки входных данных пропускаются (включая матрицу Грама, если она предоставлена). Предполагается, что они обрабатываются вызывающим объектом.

**paramskwargs

Параметры, передаваемые решателю координатного спуска.

Возвращаемые значения:
alphasndarray формы (n_alphas,)

Значения alpha вдоль пути, для которых вычисляются модели.

coefsndarray формы (n_features, n_alphas) или (n_targets, n_features, n_alphas)

Коэффициенты вдоль пути.

dual_gapsndarray формы (n_alphas,)

Двойные разрывы в конце оптимизации для каждого значения alpha.

n_itersсписок целых чисел

Количество итераций, затраченных оптимизатором координатного спуска для достижения заданной точности для каждого значения alpha. (Возвращается, когда return_n_iter установлено в True).

См. также

MultiTaskElasticNet

Модель Multi-task ElasticNet, обученная с L1/L2 смешанной нормой в качестве регуляризатора.

MultiTaskElasticNetCV

Multi-task L1/L2 ElasticNet с встроенной кросс-валидацией.

ElasticNet

Линейная регрессия с комбинированными L1 и L2 приоризаторами в качестве регуляризатора.

ElasticNetCV

Модель Elastic Net с итеративной подгонкой вдоль пути регуляризации.

Примечания

Для примера, см. примеры/linear_model/plot_lasso_lasso_lars_elasticnet_path.py.

Примеры

>>> from sklearn.linear_model import enet_path
>>> from sklearn.datasets import make_regression
>>> X, y, true_coef = make_regression(
...    n_samples=100, n_features=5, n_informative=2, coef=True, random_state=0
... )
>>> true_coef
array([ 0.        ,  0.        ,  0.        , 97.9..., 45.7...])
>>> alphas, estimated_coef, _ = enet_path(X, y, n_alphas=3)
>>> alphas.shape
(3,)
>>> estimated_coef
 array([[ 0.        ,  0.78...,  0.56...],
        [ 0.        ,  1.12...,  0.61...],
        [-0.        , -2.12..., -1.12...],
        [ 0.        , 23.04..., 88.93...],
        [ 0.        , 10.63..., 41.56...]])
predict(X)[source]

Предсказание с использованием линейной модели.

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

Образцы.

Возвращаемые значения:
Cмассив, форма (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_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ElasticNetCV[source]

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

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

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

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

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

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

Примечание

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

Параметры:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_params(**params)[source]

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

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

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

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ElasticNetCV[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

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

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

Модели на основе L1 для разреженных сигналов

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

Spec-Zone.ru

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