Spec-Zone.ru › scikit-learn

ElasticNetCV

classsklearn.linear_model.ElasticNetCV(*, l1_ratio=0.5, eps=0.001, alphas=100, 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')[источник]

Модель 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.

alphasarray-like или int, по умолчанию=100

Значения alpha для проверки вдоль пути регуляризации, используемые для каждого l1_ratio. Если указано целое число, alphas значения генерируются автоматически. Если указано array-like, используется список значений alpha.

Изменено в версии 1.7: alphas принимает целочисленное значение, поэтому передавать n_alphas больше не требуется.

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

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

precompute‘auto’, bool или array-like формы (n_features, n_features), по умолчанию=’auto’

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

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

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

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

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

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

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

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

Для значений 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 == ‘random’. Передайте int, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий.

selection{‘cyclic’, ‘random’}, по умолчанию=’cyclic’

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

Атрибуты:
alpha_float

Величина регуляризации, выбранная с помощью перекрёстной проверки.

l1_ratio_float

Соотношение штрафов l1 и l2, выбранное с помощью перекрёстной проверки.

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

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

intercept_float или ndarray формы (n_targets, n_features)

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

mse_path_ndarray формы (n_l1_ratio, n_alpha, n_folds)

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

alphas_ndarray формы (n_alphas,) или (n_l1_ratio, n_alphas)

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

dual_gap_float

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

n_iter_int

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

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, обнаруженных во время обучения. Определяется только в том случае, если X содержит имена признаков, состоящие из строк.

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

См. также

enet_path

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

ElasticNet

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

Примечания

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

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

Параметр l1_ratio соответствует alpha в пакете R glmnet, а 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).

Пример см. в examples/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)[источник]

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

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

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

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

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

Целевые значения.

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

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

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

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

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

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

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

get_metadata_routing()[источник]

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

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

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

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

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

get_params(deep=True)[источник]

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

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

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

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

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

staticpath(X, y, *, l1_ratio=0.5, eps=0.001, n_alphas='deprecated', alphas='warn', precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, check_input=True, **params)[источник]

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

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

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

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}

то есть сумма L2-норм каждой строки (задачи) (i=признак, j=задача)

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

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Обучающие данные. Чтобы избежать ненужного дублирования памяти, передавайте данные напрямую с порядком Fortran. Если y содержит одну выходную переменную, X может быть разреженным.

y{array-like, разреженная матрица} формы (n_samples,) или (n_samples, n_targets)

Целевые значения.

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

Число от 0 до 1, передаваемое в Elastic Net (масштабирование между штрафами l1 и l2). l1_ratio=1 соответствует Lasso.

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

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

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

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

alphasarray-like, по умолчанию=None

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

precompute‘auto’, bool или array-like формы (n_features, n_features), по умолчанию=’auto’

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

Xyarray-like формы (n_features,) или (n_features, n_targets), по умолчанию=None

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

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

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

coef_initarray-like формы (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список int

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

См. также

MultiTaskElasticNet

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

MultiTaskElasticNetCV

Модель ElasticNet L1/L2 для нескольких задач со встроенной перекрёстной проверкой.

ElasticNet

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

ElasticNetCV

Модель Elastic Net с итеративным обучением вдоль пути регуляризации.

Примечания

Пример см. в examples/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, alphas=3)
>>> alphas.shape
(3,)
>>> estimated_coef
 array([[ 0.,  0.787,  0.568],
        [ 0.,  1.120,  0.620],
        [-0., -2.129, -1.128],
        [ 0., 23.046, 88.939],
        [ 0., 10.637, 41.566]])
predict(X)[источник]

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

Параметры:
Xarray-like или разреженная матрица формы (n_samples, n_features)

Образцы.

Возвращает:
Cndarray формы (n_samples,) или (n_samples, n_outputs)

Предсказанные значения.

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\) для self.predict(X) относительно y.

Примечания

Оценка \(R^2\), используемая при вызове score для регрессора, начиная с версии 0.23 использует multioutput='uniform_average', чтобы соответствовать значению по умолчанию r2_score. Это влияет на метод score всех регрессоров с несколькими выходами (за исключением MultiOutputRegressor).

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ElasticNetCV[исходный код]

Настройка запроса на передачу метаданных методу 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). У последних параметры имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

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

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

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

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → ElasticNetCV[исходный код]

Настройка запроса на передачу метаданных методу 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

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

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

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

Основные изменения в scikit-learn 1.8

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

Spec-Zone.ru

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