MultiTaskLassoCV
- classsklearn.linear_model.MultiTaskLassoCV(*, eps=0.001, alphas=100, fit_intercept=True, max_iter=1000, tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=None, random_state=None, selection='cyclic')[исходный код]
-
Модель Multi-task Lasso, обученная с регуляризатором в виде смешанной нормы L1/L2.
См. статью глоссария о оценщике с перекрёстной проверкой.
Целевая функция оптимизации для MultiTaskLasso:
(1 / (2 * n_samples)) * ||Y - XW||^Fro_2 + alpha * ||W||_21
где:
||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}то есть сумма норм каждой строки.
Подробнее см. в руководстве пользователя.
Добавлено в версии 0.15.
- Параметры:
-
- epsfloat, default=1e-3
-
Длина пути.
eps=1e-3означает, чтоalpha_min / alpha_max = 1e-3. - alphasarray-like or int, default=None
-
Значения alpha для проверки вдоль пути регуляризации. Если задано целое число,
alphasзначения генерируются автоматически. Если задано значение типа array-like, используется список значений alpha.Изменено в версии 1.7:
alphasпринимает целочисленное значение, благодаря чему больше не требуется передаватьn_alphas. - fit_interceptbool, default=True
-
Вычислять ли свободный член для этой модели. Если задано значение false, свободный член не будет использоваться в вычислениях (то есть предполагается, что данные центрированы).
- max_iterint, default=1000
-
Максимальное число итераций.
- tolfloat, default=1e-4
-
Допуск оптимизации: если обновления меньше или равны
tol, код оптимизации проверяет двойственный разрыв на оптимальность и продолжает работу, пока он не станет меньше или равенtol. - copy_Xbool, default=True
-
Если
True, X будет скопирован; в противном случае он может быть перезаписан. - cvint, cross-validation generator or iterable, default=None
-
Определяет стратегию разбиения для перекрёстной проверки. Возможные значения cv:
- None — использовать перекрёстную проверку по умолчанию с 5 блоками,
- int — задать число блоков,
- разбиватель для перекрёстной проверки,
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для значений типа int/None используется
KFold.Описание различных стратегий перекрёстной проверки, доступных здесь, см. в руководстве пользователя.
Изменено в версии 0.22: значение по умолчанию для
cvпри None изменено с 3 блоков на 5. - verbosebool or int, default=False
-
Уровень подробности вывода.
- n_jobsint, default=None
-
Число процессоров, используемых при перекрёстной проверке. Обратите внимание: этот параметр используется только при передаче нескольких значений l1_ratio.
Noneозначает 1, если только не используется контекстjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - random_stateint, RandomState instance, default=None
-
Начальное значение генератора псевдослучайных чисел, который выбирает случайный признак для обновления. Используется, когда
selection== ‘random’. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий. - selection{‘cyclic’, ‘random’}, default=’cyclic’
-
Если задано значение ‘random’, на каждой итерации обновляется случайный коэффициент, а не выполняется последовательный перебор признаков, используемый по умолчанию. Такой выбор (‘random’) часто существенно ускоряет сходимость, особенно если tol больше 1e-4.
- Атрибуты:
-
- intercept_ndarray of shape (n_targets,)
-
Свободный член функции принятия решений.
- coef_ndarray of shape (n_targets, n_features)
-
Вектор параметров (W в формуле функции потерь). Обратите внимание, что
coef_хранит транспонированную матрицуW,W.T. - alpha_float
-
Величина регуляризации, выбранная с помощью перекрёстной проверки.
- mse_path_ndarray of shape (n_alphas, n_folds)
-
Среднеквадратичная ошибка на тестовом наборе для каждого блока при разных значениях alpha.
- alphas_ndarray of shape (n_alphas,)
-
Сетка значений alpha, использованная при обучении.
- n_iter_int
-
Число итераций, выполненных решателем на основе покоординатного спуска для достижения заданного допуска при оптимальном значении alpha.
- dual_gap_float
-
Двойственный разрыв в конце оптимизации при оптимальном значении alpha.
- n_features_in_int
-
Число признаков, обнаруженных при вызове fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, обнаруженных при вызове fit. Определяется только в том случае, если
Xсодержит имена признаков, представленные строками.Добавлено в версии 1.0.
См. также
MultiTaskElasticNet-
Модель Multi-task ElasticNet, обученная с регуляризатором в виде смешанной нормы L1/L2.
ElasticNetCV-
Модель Elastic Net с выбором наилучшей модели посредством перекрёстной проверки.
MultiTaskElasticNetCV-
Multi-task ElasticNet с регуляризацией L1/L2 и встроенной перекрёстной проверкой.
Примечания
Для обучения модели используется алгоритм покоординатного спуска.
В
fitпосле того, как с помощью перекрёстной проверки найден наилучший параметрalpha, модель повторно обучается на всём обучающем наборе.Чтобы избежать ненужного дублирования памяти, аргументы
Xиyметодаfitследует передавать непосредственно в виде массивов numpy с порядком хранения Fortran.Примеры
>>> from sklearn.linear_model import MultiTaskLassoCV >>> from sklearn.datasets import make_regression >>> from sklearn.metrics import r2_score >>> X, y = make_regression(n_targets=2, noise=4, random_state=0) >>> reg = MultiTaskLassoCV(cv=5, random_state=0).fit(X, y) >>> r2_score(y, reg.predict(X)) 0.9994 >>> reg.alpha_ np.float64(0.4321...) >>> reg.predict(X[:1,]) array([[153.7971, 94.9015]])
- fit(X, y, sample_weight=None, **params)[исходный код]
-
Обучает модель с внутренней перекрёстной проверкой и покоординатным спуском.
Обучение выполняется на сетке значений alpha, а наилучшее значение alpha оценивается с помощью перекрёстной проверки.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Обучающие данные. Передавайте их непосредственно в виде данных с порядком хранения Fortran, чтобы избежать ненужного дублирования памяти. Если y содержит одну выходную переменную, X может быть разреженным. Обратите внимание, что большие разреженные матрицы и массивы, для которых требуются индексы
int64, не поддерживаются. - yarray-like of shape (n_samples,) or (n_samples, n_targets)
-
Целевые значения.
- sample_weightfloat or array-like of shape (n_samples,), default=None
-
Веса объектов, используемые при обучении и вычислении взвешенной среднеквадратичной ошибки для каждого блока перекрёстной проверки. Обратите внимание, что среднеквадратичная ошибка с перекрёстной проверкой, которая в итоге используется для выбора наилучшей модели, представляет собой невзвешенное среднее значений (взвешенной) среднеквадратичной ошибки для каждого тестового блока.
- **paramsdict, default=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, default=True
-
Если True, возвращает параметры этого оценщика и вложенных объектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- staticpath(X, y, *, 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, **params)[исходный код]
-
Вычисляет путь Lasso с помощью покоординатного спуска.
Функция оптимизации Lasso различается для одной и нескольких выходных переменных.
Для задач с одной выходной переменной она имеет вид:
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
Для задач с несколькими выходными переменными она имеет вид:
(1 / (2 * n_samples)) * ||Y - XW||^2_Fro + alpha * ||W||_21
где:
||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}то есть сумма норм каждой строки.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Обучающие данные. Передавайте их непосредственно в виде данных с порядком хранения Fortran, чтобы избежать ненужного дублирования памяти. Если
yсодержит одну выходную переменную,Xможет быть разреженным. - y{array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_targets)
-
Целевые значения.
- epsfloat, default=1e-3
-
Длина пути.
eps=1e-3означает, чтоalpha_min / alpha_max = 1e-3. - n_alphasint, default=100
-
Число значений alpha вдоль пути регуляризации.
- alphasarray-like, default=None
-
Список значений alpha, для которых следует вычислить модели. Если
None, значения alpha задаются автоматически. - precompute‘auto’, bool or array-like of shape (n_features, n_features), default=’auto’
-
Использовать ли предварительно вычисленную матрицу Грама для ускорения вычислений. Если задано значение
'auto', выбор предоставляется нам. Матрицу Грама также можно передать в качестве аргумента. - Xyarray-like of shape (n_features,) or (n_features, n_targets), default=None
-
Xy = np.dot(X.T, y), это значение можно вычислить заранее. Оно полезно только при предварительном вычислении матрицы Грама.
- copy_Xbool, default=True
-
Если
True, X будет скопирован; в противном случае он может быть перезаписан. - coef_initarray-like of shape (n_features, ), default=None
-
Начальные значения коэффициентов.
- verbosebool or int, default=False
-
Уровень подробности вывода.
- return_n_iterbool, default=False
-
Возвращать ли число итераций.
- positivebool, default=False
-
Если задано значение True, коэффициенты принудительно делаются положительными. (Допускается только при условии
y.ndim == 1.) - **paramskwargs
-
Именованные аргументы, передаваемые решателю на основе покоординатного спуска.
- Возвращает:
-
- alphasndarray of shape (n_alphas,)
-
Значения alpha вдоль пути, для которых вычисляются модели.
- coefsndarray of shape (n_features, n_alphas) or (n_targets, n_features, n_alphas)
-
Коэффициенты вдоль пути.
- dual_gapsndarray of shape (n_alphas,)
-
Двойственные разрывы в конце оптимизации для каждого значения alpha.
- n_iterslist of int
-
Число итераций, выполненных оптимизатором на основе покоординатного спуска для достижения заданного допуска для каждого значения alpha.
См. также
lars_path-
Вычисляет путь регрессии наименьших углов или Lasso с помощью алгоритма LARS.
Lasso-
Lasso — линейная модель, оценивающая разреженные коэффициенты.
LassoLars-
Модель Lasso, обученная методом регрессии наименьших углов (Lars).
LassoCV-
Линейная модель Lasso с итеративным обучением вдоль пути регуляризации.
LassoLarsCV-
Lasso с перекрёстной проверкой на основе алгоритма LARS.
sklearn.decomposition.sparse_encode-
Оценщик, который можно использовать для преобразования сигналов в разреженную линейную комбинацию атомов из фиксированного набора.
Примечания
Пример см. в разделе examples/linear_model/plot_lasso_lasso_lars_elasticnet_path.py.
Чтобы избежать ненужного дублирования памяти, аргумент X метода fit следует передавать непосредственно в виде массива numpy с порядком хранения Fortran.
Обратите внимание, что в некоторых случаях решатель Lars может значительно быстрее выполнять эту задачу. В частности, для получения коэффициентов модели между значениями, возвращёнными функцией lars_path, можно использовать линейную интерполяцию.
Для ускорения обучения базовый решатель на основе покоординатного спуска использует правила безопасного отсева по разрыву; см. руководство пользователя по покоординатному спуску.
Примеры
Сравнение lasso_path и lars_path с интерполяцией:
>>> import numpy as np >>> from sklearn.linear_model import lasso_path >>> X = np.array([[1, 2, 3.1], [2.3, 5.4, 4.3]]).T >>> y = np.array([1, 2, 3.1]) >>> # Use lasso_path to compute a coefficient path >>> _, coef_path, _ = lasso_path(X, y, alphas=[5., 1., .5]) >>> print(coef_path) [[0. 0. 0.46874778] [0.2159048 0.4425765 0.23689075]]
>>> # Now use lars_path and 1D linear interpolation to compute the >>> # same path >>> from sklearn.linear_model import lars_path >>> alphas, active, coef_path_lars = lars_path(X, y, method='lasso') >>> from scipy import interpolate >>> coef_path_continuous = interpolate.interp1d(alphas[::-1], ... coef_path_lars[:, ::-1]) >>> print(coef_path_continuous([5., 1., .5])) [[0. 0. 0.46915237] [0.2159048 0.4425765 0.23668876]]
- predict(X)[исходный код]
-
Выполняет предсказание с помощью линейной модели.
- Параметры:
-
- Xarray-like or sparse matrix of shape (n_samples, n_features)
-
Образцы.
- Возвращает:
-
- Cndarray of shape (n_samples,) or (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 of shape (n_samples, n_features)
-
Тестовые образцы. Для некоторых оценщиков вместо этого могут передаваться предварительно вычисленная матрица ядра или список произвольных объектов с формой
(n_samples, n_samples_fitted), гдеn_samples_fitted— число образцов, использованных при обучении оценщика. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
Значение \(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$') MultiTaskLassoCV[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных методу
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, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[исходный код]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). Последние имеют параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценивателя.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') MultiTaskLassoCV[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
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, or None, default=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.MultiTaskLassoCV.html