MultiTaskElasticNetCV#

класс sklearn.linear_model.MultiTaskElasticNetCV(*, l1_ratio=0.5, eps=0.001, n_alphas='устаревший', альфы='warn', fit_intercept=True, max_iter=1000, tol=0.0001, cv=None, copy_X=True, verbose=0, n_jobs=None, random_state=None, выбор='cyclic')[источник]#

Многозадачный 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

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

Устарело с версии 1.7: n_alphas был устаревшим в 1.7 и будет удалён в 1.9. Используйте alphas вместо этого.

альфыarray-like или int, по умолчанию=None

Значения альфа для тестирования вдоль пути регуляризации, используемые для каждого l1_ratio. Если int, alphas значения генерируются автоматически. Если массивоподобный, список значений alpha для использования.

Изменено в версии 1.7: alphas принимает целочисленное значение, что устраняет необходимость передачи n_alphas.

Устарело с версии 1.7: alphas=None был устаревшим в 1.7 и будет удален в 1.9, после чего значение по умолчанию будет установлено на 100.

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

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

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

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

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

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

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

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

  • None, чтобы использовать стандартную 5-кратную перекрестную проверку,

  • int, чтобы указать количество фолдов.

  • CV splitter,

  • Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.

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

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

Изменено в версии 0.22: cv значение по умолчанию, если None изменено с 3-кратного на 5-кратное.

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

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

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

Уровень детализации вывода.

n_jobsint, default=None

Количество процессоров для использования во время перекрестной проверки. Обратите внимание, что это используется только если задано несколько значений для l1_ratio. None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

random_stateint, экземпляр RandomState, по умолчанию=None

Сид псевдослучайного генератора чисел, который выбирает случайный признак для обновления. Используется, когда selection == 'random'. Передайте int для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.

выбор{‘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)

Среднеквадратичная ошибка для тестового набора на каждом сгибе, варьирующая альфа.

alphas_ndarray формы (n_alphas,) или (n_l1_ratio, n_alphas)

Сетка значений alpha, используемых для обучения, для каждого l1_ratio.

l1_ratio_float

Лучший l1_ratio, полученный с помощью перекрестной проверки.

n_iter_int

Количество итераций, выполняемых решателем координатного спуска для достижения указанного допуска для оптимального alpha.

dual_gap_float

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

n_features_in_int

Количество признаков, замеченных во время fit.

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

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, наблюдаемых во время fit. Определено только когда X имеет имена признаков, которые все являются строками.

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

Смотрите также

MultiTaskElasticNet

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

ElasticNetCV

Модель эластичной сети с лучшим выбором модели путем перекрестной проверки.

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.51841231 0.479658]
 [0.51841231 0.479658]]
>>> print(clf.intercept_)
[0.001929... 0.001929...]
fit(X, y, **params)[источник]#

Обучение модели MultiTaskElasticNet с координатным спуском.

Подгонка выполняется на сетке альфа, и лучшая альфа оценивается с помощью перекрестной проверки.

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

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

yndarray формы (n_samples, n_targets)

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

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

Параметры, передаваемые разделителю CV.

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

Возвращает:
selfobject

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

6332()[источник]#

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

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

Возвращает:
маршрутизацияMetadataRouter

A MetadataRouter Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

статический путь(X, y, *, l1_ratio=0.5, eps=0.001, n_alphas=100, альфы=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, положительный=False, check_input=True, **params)[источник]#

Вычисление пути эластичной сети с координатным спуском.

Функция оптимизации elastic net различается для одно- и многомерных выходов.

Для задач с одним выходом это:

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} формы (n_samples, n_features)

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

y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_targets)

Целевые значения.

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

Число от 0 до 1, передаваемое в elastic net (масштабирование между штрафами l1 и l2). l1_ratio=1 соответствует Lasso.

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

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

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

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

альфыarray-like, default=None

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

precompute'auto', bool или массив формы (n_features, n_features), по умолчанию='auto'

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

Xyarray-like формы (n_features,) или (n_features, n_targets), default=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

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

положительныйbool, по умолчанию=False

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

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

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

**paramskwargs

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

Возвращает:
альфыndarray формы (n_alphas,)

Значения alphas вдоль пути, по которому вычисляются модели.

coefsndarray формы (n_features, n_alphas) или (n_targets, n_features, n_alphas)

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

dual_gapsndarray формы (n_alphas,)

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

n_itersсписок целых чисел

Количество итераций, выполненных оптимизатором координатного спуска для достижения указанного допуска для каждого альфа. (Возвращается, когда return_n_iter установлено в True).

Смотрите также

MultiTaskElasticNet

Многозадачная модель ElasticNet, обученная с L1/L2 смешанной нормой как регуляризатором.

MultiTaskElasticNetCV

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

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, n_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)

Образцы.

Возвращает:
Cмассив, формы (n_samples,)

Возвращает предсказанные значения.

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\) of self.predict(X) относительно y.

Примечания

The \(R^2\) оценка, используемая при вызове score на регрессоре использует multioutput='uniform_average' с версии 0.23 для сохранения согласованности со значением по умолчанию 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.

Возвращает:
selfobject

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

set_params(**params)[источник]#

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

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

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

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

Возвращает:
selfэкземпляр estimator

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

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.

Возвращает:
selfobject

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