Spec-Zone.ru › scikit-learn

Многозадачный ElasticNetCV

классsklearn.linear_model.MultiTaskElasticNetCV(*, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, max_iter=1000, tol=0.0001, cv=None, copy_X=True, verbose=0, n_jobs=None, random_state=None, selection='cyclic')[source]

Многозадачный L1/L2 ElasticNet с встроенной кросс-валидацией.

См. запись в глоссарии для оценки кросс-валидации.

Целевая функция оптимизации для 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.

n_alphasint, по умолчанию=100

Количество альфа вдоль пути регуляризации.

alphasarray-like, по умолчанию=None

Список альфа, где нужно вычислить модели. Если не указано, устанавливается автоматически.

fit_interceptbool, по умолчанию=True

Вычислять ли свободный член для этой модели. Если установлено в значение false, свободный член не будет использоваться в расчётах (т.е. данные предполагаются центрированными).

max_iterint, по умолчанию=1000

Максимальное количество итераций.

tolfloat, по умолчанию=1e-4

Допуск для оптимизации: если обновления меньше tol, код оптимизации проверяет двойственную разницу для оптимальности и продолжает, пока она не станет меньше tol.

cvint, генератор кросс-валидации или итерируемый объект, по умолчанию=None

Определяет стратегию разделения кросс-валидации. Возможные входные данные для cv:

  • None, чтобы использовать стандартную 5-кратную кросс-валидацию,
  • int, чтобы указать количество фолдов.
  • объект-разделитель кросс-валидации,
  • Итерируемый объект, возвращающий (train, test) разделения в виде массивов индексов.

Для целочисленных/None входных данных используется KFold.

См. Руководство пользователя для различных стратегий кросс-валидации, которые могут быть здесь использованы.

Изменено в версии 0.22: cv значение по умолчанию, если None, изменено с 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’. Передайте целое число для воспроизводимых результатов при многократном вызове функции. См. Глоссарий.

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)

Диапазон альфа, используемых для подгонки, для каждого 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

Многозадачный L1/L2 ElasticNet с встроенной кросс-валидацией.

ElasticNetCV

Модель Elastic Net с лучшим выбором модели с помощью кросс-валидации.

MultiTaskLassoCV

Многозадачная модель Lasso, обученная с L1 нормой в качестве регуляризатора и встроенной кросс-валидацией.

Примечания

Алгоритм, используемый для обучения модели, — метод координатного спуска.

В fit, после того как лучшие параметры l1_ratio и alpha найдены с помощью кросс-валидации, модель обучается заново с использованием всего набора обучающих данных.

Для избежания ненужного дублирования памяти аргументы X и y метода fit должны быть непосредственно переданы в виде Fortran-непрерывных массивов NumPy.

Примеры

>>> 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.52875032 0.46958558]
 [0.52875032 0.46958558]]
>>> print(clf.intercept_)
[0.00166409 0.00166409]
fit(X, y, **params)[source]

Обучить многозадачную модель ElasticNet с помощью метода координатного спуска.

Обучение на сетке альфа и оценка лучшей альфа с помощью кросс-валидации.

Параметры:
Xndarray формы (n_samples, n_features)

Обучающие данные.

yndarray формы (n_samples, n_targets)

Целевая переменная обучения. Будет преобразована к типу X, если необходимо.

**paramsdict, по умолчанию=None

Параметры, которые нужно передать разделителю кросс-валидации.

Добавлен в версии 1.4: Доступен только если enable_metadata_routing=True, что можно задать, используя sklearn.set_config(enable_metadata_routing=True). См. Руководство пользователя по маршрутизации метаданных для получения более подробной информации.

Возвращаемые значения:
selfobject

Возвращает экземпляр MultiTaskElasticNet.

END_OF_DOCUMENT_MARKER
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{array-like, sparse matrix} of shape (n_samples, n_features)

Данные обучения. Передаются напрямую как данные Fortran-contiguous для избежания ненужного дублирования памяти. Если y является задачей с одним выходом, то X может быть разреженной.

y{array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_targets)

Значения целевой переменной.

l1_ratiofloat, по умолчанию=0.5

Число от 0 до 1, передаваемое в эластичную сеть (масштабирование между L1 и L2 штрафами). l1_ratio=1 соответствует LASSO.

epsfloat, по умолчанию=1e-3

Длина пути. eps=1e-3 означает, что alpha_min / alpha_max = 1e-3.

n_alphasint, по умолчанию=100

Число альфа на пути регуляризации.

alphasarray-like, по умолчанию=None

Список альфа, где нужно вычислить модели. Если None, альфы устанавливаются автоматически.

precompute‘auto’, bool or array-like of shape (n_features, n_features), по умолчанию=’auto’

Использовать ли предварительно вычисленную матрицу Грама для ускорения вычислений. Если установлено 'auto' , то мы решим это сами. Матрица Грама также может быть передана в качестве аргумента.

Xyarray-like of shape (n_features,) or (n_features, n_targets), по умолчанию=None

Xy = np.dot(X.T, y), которое можно предварительно вычислить. Оно полезно только при предварительном вычислении матрицы Грама.

copy_Xbool, по умолчанию=True

Если True, X будет скопирован; в противном случае он может быть перезаписан.

coef_initarray-like of shape (n_features, ), по умолчанию=None

Начальные значения коэффициентов.

verbosebool or int, по умолчанию=False

Уровень подробности.

return_n_iterbool, по умолчанию=False

Возвращать количество итераций или нет.

positivebool, по умолчанию=False

Если True, то коэффициенты будут положительными. (Допустимо только, когда y.ndim == 1).

check_inputbool, по умолчанию=True

Если False, проверки входных данных пропущены (включая матрицу Грама, если она предоставлена). Предполагается, что они обрабатываются вызывающей стороной.

**paramskwargs

Параметры, передаваемые решателю координатного спуска.

Возвращает:
alphasndarray of shape (n_alphas,)

Альфа вдоль пути, где вычисляются модели.

coefsndarray of shape (n_features, n_alphas) or (n_targets, n_features, n_alphas)

Коэффициенты вдоль пути.

dual_gapsndarray of shape (n_alphas,)

Двойные разрывы в конце оптимизации для каждого альфа.

n_iterslist of int

Количество итераций, необходимых оптимизатору координатного спуска для достижения заданной точности для каждого альфа. (Возвращается, когда 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]

Предсказание с использованием линейной модели.

Параметры:
Xarray-like или разреженная матрица, форма (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$') → MultiTaskElasticNetCV[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 или None, по умолчанию sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

Возвращаемые значения:
selfобъект

Обновленный объект.

set_params(**params)[source]

Устанавливает параметры этого оценщика.

Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как Pipeline). Последние имеют параметры в формате <component>__<parameter>, чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращаемые значения:
selfэкземпляр оценщика

Экземпляр оценщика.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → MultiTaskElasticNetCV[source]

Запрос метаданных, передаваемых методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Подробную информацию о механизме маршрутизации см. в Руководстве пользователя.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются методу score если предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-эстиматор не передаст их методу score.
  • None: метаданные не запрашиваются, и мета-эстиматор выведет ошибку, если пользователь предоставит их.
  • str: метаданные должны быть переданы мета-эстиматору с указанным псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запросы для некоторых параметров, а не для всех.

Добавлена в версии 1.3.

Примечание

Этот метод актуален только если данный эстиматор используется в качестве подэстиматора мета-эстиматора, например, внутри Pipeline. В противном случае он не имеет эффекта.

Параметры:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
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.MultiTaskElasticNetCV.html

Spec-Zone.ru

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