Spec-Zone.ru › scikit-learn

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

Spec-Zone.ru

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