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
-
Обновленный объект.
-
Примеры из галереи
© 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