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
-
Обновлённый объект.
-
Примеры из галереи
© 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