LassoCV
- classsklearn.linear_model.LassoCV(*, eps=0.001, alphas=100, fit_intercept=True, precompute='auto', max_iter=1000, tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=None, positive=False, random_state=None, selection='cyclic')[исходный код]
-
Линейная модель Lasso с итеративным обучением вдоль пути регуляризации.
См. запись в глоссарии для оценщика с перекрёстной проверкой.
Лучшая модель выбирается с помощью перекрёстной проверки.
Целевая функция оптимизации для Lasso:
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
Подробнее см. в руководстве пользователя.
- Параметры:
-
- epsfloat, по умолчанию=1e-3
-
Длина пути.
eps=1e-3означает, чтоalpha_min / alpha_max = 1e-3. - alphasarray-like или int, по умолчанию=100
-
Значения alpha для проверки вдоль пути регуляризации. Если задано целое число,
alphasзначения генерируются автоматически. Если задано значение типа array-like, используется список значений alpha.Изменено в версии 1.7:
alphasпринимает целочисленное значение, поэтому больше не нужно передаватьn_alphas. - fit_interceptbool, по умолчанию=True
-
Следует ли вычислять свободный член для этой модели. Если задано значение false, при вычислениях свободный член не используется (то есть предполагается, что данные центрированы).
- precompute‘auto’, bool или array-like формы (n_features, n_features), по умолчанию=’auto’
-
Следует ли использовать предварительно вычисленную матрицу Грама для ускорения вычислений. Если задано значение
'auto', выбор остаётся за нами. Матрицу Грама также можно передать в качестве аргумента. - max_iterint, по умолчанию=1000
-
Максимальное количество итераций.
- tolfloat, по умолчанию=1e-4
-
Допуск оптимизации: если обновления меньше или равны
tol, код оптимизации проверяет двойственный разрыв на оптимальность и продолжает работу, пока он не станет меньше или равнымtol. - copy_Xbool, по умолчанию=True
-
Если
True, будет скопированX; в противном случае он может быть перезаписан. - cvint, генератор перекрёстной проверки или итерируемый объект, по умолчанию=None
-
Определяет стратегию разбиения для перекрёстной проверки. В качестве cv можно указать:
- None, чтобы использовать перекрёстную проверку по умолчанию с 5 блоками,
- int, чтобы задать количество блоков,
- разбиватель для перекрёстной проверки,
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для значений int/None используется
KFold.Различные стратегии перекрёстной проверки, которые можно использовать здесь, описаны в руководстве пользователя.
Изменено в версии 0.22: значение по умолчанию
cvпри None изменено с 3 блоков на 5. - verbosebool или int, по умолчанию=False
-
Уровень подробности вывода.
- n_jobsint, по умолчанию=None
-
Количество процессоров, используемых при перекрёстной проверке.
Noneозначает 1, если только выполнение не происходит в контекстеjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - positivebool, по умолчанию=False
-
Если задано значение positive, коэффициенты регрессии ограничиваются положительными значениями.
- random_stateint, экземпляр RandomState, по умолчанию=None
-
Начальное значение генератора псевдослучайных чисел, который выбирает случайный признак для обновления. Используется, если
selection== ‘random’. Передайте целое число, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий. - selection{‘cyclic’, ‘random’}, по умолчанию=’cyclic’
-
Если задано значение ‘random’, на каждой итерации обновляется случайный коэффициент, вместо последовательного перебора признаков, используемого по умолчанию. Такой режим (‘random’) часто значительно ускоряет сходимость, особенно если tol больше 1e-4.
- Атрибуты:
-
- alpha_float
-
Величина регуляризации, выбранная с помощью перекрёстной проверки.
- coef_ndarray формы (n_features,) или (n_targets, n_features)
-
Вектор параметров (w в формуле функции стоимости).
- intercept_float или ndarray формы (n_targets,)
-
Свободный член функции принятия решения.
- mse_path_ndarray формы (n_alphas, n_folds)
-
Среднеквадратичная ошибка на тестовой выборке для каждого блока при разных значениях alpha.
- alphas_ndarray формы (n_alphas,)
-
Сетка значений alpha, использованная при обучении.
- dual_gap_float или ndarray формы (n_targets,)
-
Двойственный разрыв в конце оптимизации для оптимального значения alpha (
alpha_). - n_iter_int
-
Количество итераций, выполненных решателем на основе покоординатного спуска для достижения заданного допуска при оптимальном значении alpha.
- n_features_in_int
-
Количество признаков, обнаруженных во время обучения.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных во время обучения. Определяется только в том случае, если
Xимеет названия признаков, представленные строками.Добавлено в версии 1.0.
См. также
lars_path-
Вычисляет путь метода регрессии наименьших углов или Lasso с помощью алгоритма LARS.
lasso_path-
Вычисляет путь Lasso с помощью покоординатного спуска.
Lasso-
Lasso — линейная модель, оценивающая разреженные коэффициенты.
LassoLars-
Модель Lasso, обученная методом регрессии наименьших углов, также известным как Lars.
LassoCV-
Линейная модель Lasso с итеративным обучением вдоль пути регуляризации.
LassoLarsCV-
Lasso с перекрёстной проверкой на основе алгоритма LARS.
Примечания
В
fitпосле того, как с помощью перекрёстной проверки найден наилучший параметрalpha, модель повторно обучается на всей обучающей выборке.Чтобы избежать ненужного дублирования данных в памяти, аргумент
Xметодаfitследует передавать непосредственно в виде массива numpy с порядком Fortran.Пример см. в examples/linear_model/plot_lasso_model_selection.py.
LassoCVдаёт результаты, отличающиеся от результатов поиска гиперпараметров с помощьюGridSearchCVи моделиLasso. ВLassoCVмодель для заданного значения штрафаalphaинициализируется коэффициентами ближайшей модели (обученной на предыдущей итерации) на пути регуляризации. Это, как правило, ускоряет поиск гиперпараметров.В используемом решателе на основе покоординатного спуска применяются безопасные правила отсева по разрыву, ускоряющие обучение; см. руководство пользователя по покоординатному спуску.
Примеры
>>> from sklearn.linear_model import LassoCV >>> from sklearn.datasets import make_regression >>> X, y = make_regression(noise=4, random_state=0) >>> reg = LassoCV(cv=5, random_state=0).fit(X, y) >>> reg.score(X, y) 0.9993 >>> reg.predict(X[:1,]) array([-79.4755331])
- fit(X, y, sample_weight=None, **params)[исходный код]
-
Обучает модель Lasso с помощью покоординатного спуска.
Обучение проводится на сетке значений alpha, а наилучшее значение alpha оценивается с помощью перекрёстной проверки.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные. Передавайте их непосредственно в виде данных с порядком Fortran, чтобы избежать ненужного дублирования в памяти. Если y имеет один выход, X может быть разреженным. Обратите внимание, что большие разреженные матрицы и массивы, для которых требуются индексы
int64, не поддерживаются. - yarray-like формы (n_samples,)
-
Целевые значения.
- sample_weightfloat или array-like формы (n_samples,), по умолчанию=None
-
Веса образцов, используемые при обучении и вычислении взвешенной среднеквадратичной ошибки для каждого блока перекрёстной проверки. Обратите внимание, что среднеквадратичная ошибка с перекрёстной проверкой, которая в итоге используется для выбора наилучшей модели, представляет собой невзвешенное среднее взвешенных ошибок для каждого тестового блока.
- **paramsdict, по умолчанию=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, по умолчанию=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, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные. Передавайте их непосредственно в виде данных с порядком Fortran, чтобы избежать ненужного дублирования в памяти. Если
yимеет один выход,Xможет быть разреженным. - y{array-like, разреженная матрица} формы (n_samples,) или (n_samples, n_targets)
-
Целевые значения.
- epsfloat, по умолчанию=1e-3
-
Длина пути.
eps=1e-3означает, чтоalpha_min / alpha_max = 1e-3. - n_alphasint, по умолчанию=100
-
Количество значений alpha вдоль пути регуляризации.
- alphasarray-like, по умолчанию=None
-
Список значений alpha, для которых вычисляются модели. Если
None, значения alpha задаются автоматически. - precompute‘auto’, bool или array-like формы (n_features, n_features), по умолчанию=’auto’
-
Следует ли использовать предварительно вычисленную матрицу Грама для ускорения вычислений. Если задано значение
'auto', выбор остаётся за нами. Матрицу Грама также можно передать в качестве аргумента. - Xyarray-like формы (n_features,) или (n_features, n_targets), по умолчанию=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
-
Следует ли возвращать количество итераций.
- positivebool, по умолчанию=False
-
Если задано значение True, коэффициенты ограничиваются положительными значениями. (Допускается только при
y.ndim == 1.) - **paramskwargs
-
Именованные аргументы, передаваемые решателю на основе покоординатного спуска.
- Возвращает:
-
- alphasndarray формы (n_alphas,)
-
Значения alpha вдоль пути, для которых вычисляются модели.
- coefsndarray формы (n_features, n_alphas) или (n_targets, n_features, n_alphas)
-
Коэффициенты вдоль пути.
- dual_gapsndarray формы (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 или разреженная матрица формы (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.- Параметры:
-
- 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для регрессора, начиная с версии 0.23 используетmultioutput='uniform_average', чтобы соответствовать значению по умолчаниюr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (за исключениемMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') LassoCV[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
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.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
- set_params(**params)[исходный код]
-
Задает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') LassoCV[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
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.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.LassoCV.html