MultiTaskElasticNetCV
- classsklearn.linear_model.MultiTaskElasticNetCV(*, l1_ratio=0.5, eps=0.001, alphas=100, fit_intercept=True, max_iter=1000, tol=0.0001, cv=None, copy_X=True, verbose=0, n_jobs=None, random_state=None, selection='cyclic')[исходный код]
-
Многозадачная модель ElasticNet с L1/L2-регуляризацией и встроенной перекрёстной проверкой.
См. статью глоссария о оценщике с перекрёстной проверкой.
Целевая функция оптимизации для MultiTaskElasticNet:
(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}то есть сумма норм каждой строки.
Подробнее см. в руководстве пользователя.
Добавлено в версии 0.15.
- Параметры:
-
- l1_ratiofloat или список float, по умолчанию=0.5
-
Параметр смешивания ElasticNet, где 0 < l1_ratio <= 1. При l1_ratio = 1 штраф является штрафом L1/L2. При l1_ratio = 0 используется штраф L2. Для
0 < l1_ratio < 1штраф представляет собой комбинацию L1/L2 и 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, при вычислениях свободный член не используется (то есть предполагается, что данные центрированы).
- max_iterint, по умолчанию=1000
-
Максимальное число итераций.
- tolfloat, по умолчанию=1e-4
-
Допуск оптимизации: если обновления меньше или равны
tol, код оптимизации проверяет двойственный разрыв на оптимальность и продолжает работу, пока он не станет меньше или равенtol. - cvint, генератор перекрёстной проверки или итерируемый объект, по умолчанию=None
-
Определяет стратегию разбиения для перекрёстной проверки. Возможные значения cv:
- None — использовать перекрёстную проверку по умолчанию с 5 блоками,
- int — задать число блоков,
- разбиватель перекрёстной проверки,
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для значений int/None используется
KFold.Различные стратегии перекрёстной проверки, которые можно использовать здесь, описаны в руководстве пользователя.
Изменено в версии 0.22:
cvзначение по умолчанию изменено с 3 блоков на 5 блоков. - copy_Xbool, по умолчанию=True
-
Если
True, X будет скопирован; в противном случае он может быть перезаписан. - verbosebool или int, по умолчанию=0
-
Уровень подробности вывода.
- n_jobsint, по умолчанию=None
-
Число ЦП, используемых при перекрёстной проверке. Обратите внимание, что этот параметр используется только при передаче нескольких значений l1_ratio.
Noneозначает 1, кроме контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - random_stateint, экземпляр RandomState, по умолчанию=None
-
Начальное значение генератора псевдослучайных чисел, который выбирает случайный признак для обновления. Используется, если
selection== ‘random’. Передайте int, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий. - selection{‘cyclic’, ‘random’}, по умолчанию=’cyclic’
-
Если задано значение ‘random’, на каждой итерации обновляется случайный коэффициент, а не выполняется обход признаков по порядку, как по умолчанию. Такой режим (значение ‘random’) часто обеспечивает значительно более быструю сходимость, особенно если tol больше 1e-4.
- Атрибуты:
-
- intercept_ndarray формы (n_targets,)
-
Свободный член функции принятия решения.
- coef_ndarray формы (n_targets, n_features)
-
Вектор параметров (W в формуле функции потерь). Обратите внимание, что
coef_хранит транспонированную матрицуW,W.T. - alpha_float
-
Величина регуляризации, выбранная с помощью перекрёстной проверки.
- mse_path_ndarray формы (n_alphas, n_folds) или (n_l1_ratio, n_alphas, n_folds)
-
Среднеквадратичная ошибка на тестовом наборе для каждого блока при различных значениях alpha.
- alphas_ndarray формы (n_alphas,) или (n_l1_ratio, n_alphas)
-
Сетка значений alpha, использованных при обучении, для каждого l1_ratio.
- l1_ratio_float
-
Наилучшее значение l1_ratio, полученное с помощью перекрёстной проверки.
- n_iter_int
-
Число итераций, выполненных решателем на основе покоординатного спуска для достижения заданного допуска при оптимальном значении alpha.
- dual_gap_float
-
Двойственный разрыв в конце оптимизации для оптимального значения alpha.
- n_features_in_int
-
Число признаков, обнаруженных во время обучения.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных во время обучения. Определяется только в том случае, если
Xсодержит названия признаков, представленные строками.Добавлено в версии 1.0.
См. также
MultiTaskElasticNet-
Многозадачная модель ElasticNet с L1/L2-регуляризацией и встроенной перекрёстной проверкой.
ElasticNetCV-
Модель ElasticNet с выбором наилучшей модели с помощью перекрёстной проверки.
MultiTaskLassoCV-
Многозадачная модель Lasso, обученная с нормой L1 в качестве регуляризатора и встроенной перекрёстной проверкой.
Примечания
Для обучения модели используется алгоритм покоординатного спуска.
В
fitпосле того, как с помощью перекрёстной проверки найдены наилучшие параметрыl1_ratioиalpha, модель повторно обучается на всём обучающем наборе.Чтобы избежать ненужного дублирования памяти, аргументы
Xиyметодаfitследует передавать непосредственно в виде массивов numpy с непрерывным хранением в порядке Fortran.Примеры
>>> from sklearn import linear_model >>> clf = linear_model.MultiTaskElasticNetCV(cv=3) >>> clf.fit([[0,0], [1, 1], [2, 2]], ... [[0, 0], [1, 1], [2, 2]]) MultiTaskElasticNetCV(cv=3) >>> print(clf.coef_) [[0.51841231 0.479658] [0.51841231 0.479658]] >>> print(clf.intercept_) [0.001929... 0.001929...]
- fit(X, y, sample_weight=None, **params)[исходный код]
-
Обучить модель с помощью встроенной перекрёстной проверки и покоординатного спуска.
Обучение проводится на сетке значений alpha, а наилучшее значение alpha оценивается с помощью перекрёстной проверки.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные. Передавайте их непосредственно в виде данных с непрерывным хранением в порядке Fortran, чтобы избежать ненужного дублирования памяти. Если y имеет один выход, X может быть разреженным. Обратите внимание, что большие разреженные матрицы и массивы, для которых требуются индексы
int64, не поддерживаются. - yarray-like формы (n_samples,) или (n_samples, n_targets)
-
Целевые значения.
- 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)[исходный код]
-
Вычислить путь ElasticNet с помощью покоординатного спуска.
Функция оптимизации ElasticNet различается для одного и нескольких выходов.
Для задач с одним выходом она имеет вид:
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, передаваемое в ElasticNet (задаёт соотношение штрафов 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-
Модель ElasticNet с итеративным обучением вдоль пути регуляризации.
Примечания
Пример см. в 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$') MultiTaskElasticNetCV[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
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.
- Возвращает:
-
- selfобъект
-
Обновлённый объект.
-
- set_params(**params)[исходный код]
-
Задаёт параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') MultiTaskElasticNetCV[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
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.
- Возвращает:
-
- selfобъект
-
Обновлённый объект.
-
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.MultiTaskElasticNetCV.html