Spec-Zone.ru › scikit-learn

MultiTaskLasso

classsklearn.linear_model.MultiTaskLasso(alpha=1.0, *, fit_intercept=True, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, random_state=None, selection='cyclic')[исходный код]

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

Целевая функция оптимизации для Lasso:

(1 / (2 * n_samples)) * ||Y - XW||^2_Fro + alpha * ||W||_21

Где:

||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}

то есть сумма норм каждой строки.

Подробнее см. в руководстве пользователя.

Параметры:
alphaвещественное число, по умолчанию=1.0

Константа, умножающая член L1/L2. По умолчанию равна 1.0.

fit_interceptлогическое значение, по умолчанию=True

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

copy_Xлогическое значение, по умолчанию=True

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

max_iterцелое число, по умолчанию=1000

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

tolвещественное число, по умолчанию=1e-4

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

warm_startлогическое значение, по умолчанию=False

Если задано значение True, повторно использовать решение предыдущего вызова fit в качестве начального приближения; в противном случае предыдущее решение просто удаляется. См. глоссарий.

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

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

selection{‘cyclic’, ‘random’}, по умолчанию=’cyclic’

Если задано значение ‘random’, на каждой итерации обновляется случайный коэффициент, а не выполняется последовательный перебор признаков, принятый по умолчанию. Этот режим (значение ‘random’) часто обеспечивает значительно более быструю сходимость, особенно если tol больше 1e-4.

Атрибуты:
coef_ndarray формы (n_targets, n_features)

Вектор параметров (W в формуле функции стоимости). Обратите внимание, что coef_ хранит транспонированную матрицу W, W.T.

intercept_ndarray формы (n_targets,)

Свободный член функции принятия решения.

n_iter_целое число

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

dual_gap_ndarray формы (n_alphas,)

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

eps_вещественное число

Допуск, масштабированный с учетом дисперсии целевой переменной y.

sparse_coef_разреженная матрица формы (n_features,) или (n_targets, n_features)

Разреженное представление обученной модели coef_.

n_features_in_целое число

Количество признаков, полученных при обучении.

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

См. также

Lasso

Линейная модель, обученная с априорным распределением L1 в качестве регуляризатора (также известная как Lasso).

MultiTaskLassoCV

Линейная модель для нескольких задач с регуляризацией L1 и встроенной перекрёстной проверкой.

MultiTaskElasticNetCV

ElasticNet для нескольких задач с регуляризацией L1/L2 и встроенной перекрёстной проверкой.

Примечания

Для обучения модели используется алгоритм покоординатного спуска.

Чтобы избежать ненужного дублирования памяти, аргументы X и y метода fit следует передавать непосредственно как массивы numpy с непрерывным по Fortran размещением.

Примеры

>>> from sklearn import linear_model
>>> clf = linear_model.MultiTaskLasso(alpha=0.1)
>>> clf.fit([[0, 1], [1, 2], [2, 4]], [[0, 0], [1, 1], [2, 3]])
MultiTaskLasso(alpha=0.1)
>>> print(clf.coef_)
[[0.         0.60809415]
[0.         0.94592424]]
>>> print(clf.intercept_)
[-0.41888636 -0.87382323]
fit(X, y, sample_weight=None)[исходный код]

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

Параметры:
X{ndarray, разреженная матрица, разреженный массив} формы (n_samples, n_features)

Данные. Чтобы избежать ненужного дублирования памяти, передавайте их непосредственно в формате с непрерывным по Fortran размещением.

Обратите внимание, что большие разреженные матрицы и массивы, которым требуются индексы int64, не поддерживаются.

yndarray формы (n_samples, n_targets)

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

sample_weightвещественное число или объект, подобный массиву, формы (n_samples,), по умолчанию=None

Веса образцов. Внутри вектор sample_weight будет масштабирован так, чтобы его сумма равнялась n_samples.

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

Возвращает:
selfобъект

Обученный оцениватель.

Примечания

Покоординатный спуск — это алгоритм, который за раз рассматривает каждый столбец данных, поэтому при необходимости он автоматически преобразует входной X в массив numpy с непрерывным по Fortran размещением.

Чтобы избежать перераспределения памяти, рекомендуется сразу выделять память для исходных данных в этом формате.

get_metadata_routing()[исходный код]

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

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

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

Объект MetadataRequest, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

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

Параметры:
deepлогическое значение, по умолчанию=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)[исходный код]

Вычислить путь elastic net с помощью покоординатного спуска.

Функция оптимизации 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}

то есть сумма L2-норм каждой строки (задачи) (i — признак, j — задача).

Подробнее см. в руководстве пользователя.

Параметры:
X{объект, подобный массиву, разреженная матрица} формы (n_samples, n_features)

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

y{объект, подобный массиву, разреженная матрица} формы (n_samples,) или (n_samples, n_targets)

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

l1_ratioвещественное число, по умолчанию=0.5

Число от 0 до 1, передаваемое в elastic net (задаёт соотношение штрафов L1 и L2). l1_ratio=1 соответствует Lasso.

epsвещественное число, по умолчанию=1e-3

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

n_alphasцелое число, по умолчанию=100

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

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

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

precompute‘auto’, логическое значение или объект, подобный массиву, формы (n_features, n_features), по умолчанию=’auto’

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

Xyобъект, подобный массиву, формы (n_features,) или (n_features, n_targets), по умолчанию=None

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

copy_Xлогическое значение, по умолчанию=True

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

coef_initобъект, подобный массиву, формы (n_features, ), по умолчанию=None

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

verboseлогическое значение или целое число, по умолчанию=False

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

return_n_iterлогическое значение, по умолчанию=False

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

positiveлогическое значение, по умолчанию=False

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

check_inputлогическое значение, по умолчанию=True

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

**paramsименованные аргументы

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

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

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

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

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

dual_gapsndarray формы (n_alphas,)

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

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

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

Веса образцов.

Возвращает:
scoreвещественное число

Значение \(R^2\) для self.predict(X) относительно y.

Примечания

При вызове score для регрессора оценка \(R^2\) использует multioutput='uniform_average' начиная с версии 0.23, чтобы соответствовать значению по умолчанию для r2_score. Это влияет на метод score всех регрессоров с несколькими выходами (кроме MultiOutputRegressor).

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → MultiTaskLasso[исходный код]

Настроить, следует ли запрашивать передачу метаданных в метод fit.

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

Для каждого параметра доступны следующие варианты:

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

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

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

Параметры:
sample_weightстрока, 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$') → MultiTaskLasso[исходный код]

Настройте, следует ли запрашивать передачу метаданных в метод 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

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

Примеры из галереи

Совместный отбор признаков с помощью многозадачного Lasso

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.MultiTaskLasso.html

Spec-Zone.ru

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