MultiTaskElasticNet
- classsklearn.linear_model.MultiTaskElasticNet(alpha=1.0, *, l1_ratio=0.5, fit_intercept=True, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, random_state=None, selection='cyclic')[исходный код]
-
Модель MultiTaskElasticNet, обученная с использованием смешанной нормы 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)
то есть сумма норм каждой строки.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- alphafloat, по умолчанию=1.0
-
Константа, умножающая слагаемое L1/L2. По умолчанию равна 1.0.
- l1_ratiofloat, по умолчанию=0.5
-
Параметр смешивания ElasticNet, где 0 < l1_ratio <= 1. При l1_ratio = 1 штраф представляет собой штраф L1/L2. При l1_ratio = 0 это штраф L2. Для
0 < l1_ratio < 1штраф представляет собой комбинацию L1/L2 и L2. - fit_interceptbool, по умолчанию=True
-
Вычислять ли свободный член для этой модели. Если задано значение false, при вычислениях свободный член не используется (т. е. предполагается, что данные центрированы).
- copy_Xbool, по умолчанию=True
-
Если
True, X будет скопирован; в противном случае он может быть перезаписан. - max_iterint, по умолчанию=1000
-
Максимальное количество итераций.
- tolfloat, по умолчанию=1e-4
-
Допуск оптимизации: если обновления меньше или равны
tol, код оптимизации проверяет двойственный разрыв на оптимальность и продолжает работу, пока он не станет меньше или равенtol. - warm_startbool, по умолчанию=False
-
Если задано значение
True, решение предыдущего вызова fit повторно используется в качестве начального приближения; в противном случае предыдущее решение просто удаляется. См. глоссарий. - random_stateint, экземпляр RandomState, по умолчанию=None
-
Начальное значение генератора псевдослучайных чисел, выбирающего случайный признак для обновления. Используется, когда
selection== ‘random’. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий. - selection{‘cyclic’, ‘random’}, по умолчанию=’cyclic’
-
Если задано значение ‘random’, на каждой итерации обновляется случайный коэффициент, а не выполняется последовательный обход признаков, используемый по умолчанию. Такой подход (значение ‘random’) часто значительно ускоряет сходимость, особенно если tol больше 1e-4.
- Атрибуты:
-
- intercept_ndarray формы (n_targets,)
-
Свободный член в функции принятия решения.
- coef_ndarray формы (n_targets, n_features)
-
Вектор параметров (W в формуле функции потерь). Если при вызове fit передано одномерное y (не многозадачный режим),
coef_представляет собой одномерный массив. Обратите внимание, чтоcoef_хранит транспонированную версиюW,W.T. - n_iter_int
-
Количество итераций, выполненных решателем на основе покоординатного спуска для достижения заданного допуска.
- dual_gap_float
-
Двойственный разрыв в конце оптимизации.
- eps_float
-
Допуск, масштабированный по дисперсии целевой переменной
y. -
sparse_coef_разреженная матрица формы (n_features,) или (n_targets, n_features) -
Разреженное представление обученной модели
coef_. - n_features_in_int
-
Количество признаков, обнаруженных при вызове fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, обнаруженных при вызове fit. Определяется только в том случае, если
Xсодержит имена признаков, все из которых являются строками.Добавлено в версии 1.0.
См. также
MultiTaskElasticNetCV-
Многозадачная ElasticNet с нормой L1/L2 и встроенной перекрёстной проверкой.
ElasticNet-
Линейная регрессия с комбинированными априорными распределениями L1 и L2 в качестве регуляризатора.
MultiTaskLasso-
Многозадачная модель Lasso, обученная с использованием смешанной нормы L1/L2 в качестве регуляризатора.
Примечания
Для обучения модели используется алгоритм покоординатного спуска.
Чтобы избежать ненужного дублирования памяти, аргументы X и y метода fit следует передавать напрямую как массивы numpy с порядком хранения Fortran.
Примеры
>>> from sklearn import linear_model >>> clf = linear_model.MultiTaskElasticNet(alpha=0.1) >>> clf.fit([[0,0], [1, 1], [2, 2]], [[0, 0], [1, 1], [2, 2]]) MultiTaskElasticNet(alpha=0.1) >>> print(clf.coef_) [[0.45663524 0.45612256] [0.45663524 0.45612256]] >>> print(clf.intercept_) [0.0872422 0.0872422]
- fit(X, y, sample_weight=None)[исходный код]
-
Обучает модель MultiTaskElasticNet с помощью покоординатного спуска.
- Параметры:
-
- X{ndarray, разреженная матрица, разреженный массив} формы (n_samples, n_features)
-
Данные. Чтобы избежать ненужного дублирования памяти, передавайте данные напрямую в формате с порядком хранения Fortran.
Обратите внимание, что большие разреженные матрицы и массивы, требующие индексов
int64, не поддерживаются. - yndarray формы (n_samples, n_targets)
-
Целевая переменная. При необходимости будет приведена к типу данных X.
- sample_weightfloat или массивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса объектов. Внутри вектор
sample_weightбудет перенормирован так, чтобы его сумма равняласьn_samples.Добавлено в версии 1.9.
- Возвращает:
-
- selfobject
-
Обученный оцениватель.
Примечания
Покоординатный спуск — это алгоритм, который за один раз рассматривает каждый столбец данных, поэтому при необходимости он автоматически преобразует входной массив X в массив numpy с порядком хранения Fortran.
Чтобы избежать перераспределения памяти, рекомендуется сразу выделять память для исходных данных в этом формате.
- get_metadata_routing()[исходный код]
-
Получает сведения о маршрутизации метаданных этого объекта.
Ознакомьтесь с разделом руководства пользователя, чтобы узнать, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- 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{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные. Чтобы избежать ненужного дублирования памяти, передавайте данные напрямую в формате с порядком хранения Fortran. Если
yимеет один выход, тоXможет быть разреженным. - y{массивоподобный объект, разреженная матрица} формы (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 вдоль пути регуляризации.
- 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список значений 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)[исходный код]
-
Выполняет предсказание с помощью линейной модели.
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (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.- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Тестовые образцы. Для некоторых оценивателей это может быть предварительно вычисленная матрица ядра или список универсальных объектов формы
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество образцов, использованных при обучении оценивателя. - yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
Оценка \(R^2\) для
self.predict(X)относительноy.
Примечания
При вызове
scoreдля регрессора оценка \(R^2\) начиная с версии 0.23 используетmultioutput='uniform_average', чтобы соответствовать значению по умолчанию дляr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (за исключениемMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') MultiTaskElasticNet[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных методу
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$') MultiTaskElasticNet[source]
-
Настройте, следует ли запрашивать передачу метаданных методу
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
-
Обновлённый объект.
-
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.MultiTaskElasticNet.html