Spec-Zone.ru › scikit-learn

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

Spec-Zone.ru

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