LassoCV
- classsklearn.linear_model.LassoCV(*, eps=0.001, n_alphas=100, alphas=None, 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')[source]
-
Линейная модель Лассо с итеративной подгонкой вдоль пути регуляризации.
См. запись в глоссарии для эстиматора перекрестной проверки.
Лучшая модель выбирается с помощью перекрестной проверки.
Целевая функция оптимизации для Лассо:
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- epsfloat, по умолчанию=1e-3
-
Длина пути.
eps=1e-3означает, чтоalpha_min / alpha_max = 1e-3. - n_alphasint, по умолчанию=100
-
Количество альфа на пути регуляризации.
- alphasarray-like, по умолчанию=None
-
Список альфа, где вычисляются модели. Если
Noneальфы устанавливаются автоматически. - 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, для указания количества фолдов.
- разделитель CV,
- Итерируемый объект, возвращающий (train, test) разделения как массивы индексов.
Для целочисленных/None входных данных,
KFoldиспользуется.См. Руководство пользователя для различных стратегий перекрестной проверки, которые могут быть здесь использованы.
Изменено в версии 0.22:
cvзначение по умолчанию, если None, изменено с 3-кратного на 5-кратное. - verbosebool или int, по умолчанию=False
-
Уровень подробности.
- n_jobsint, по умолчанию=None
-
Количество ЦП для использования во время перекрестной проверки.
Noneозначает 1, если не вjoblib.parallel_backendконтексте.-1означает использование всех процессоров. См. Глоссарий для получения более подробной информации. - positivebool, по умолчанию=False
-
Если true, ограничить коэффициенты регрессии положительными значениями.
- random_stateint, RandomState instance, по умолчанию=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,)
-
Диапазон альфа, используемых для подгонки.
- dual_gap_float или ndarray формы (n_targets,)
-
Двойная щель в конце оптимизации для оптимальной альфа (
alpha_). - n_iter_int
-
Количество итераций, выполненных решателем координатного спуска, для достижения заданной толерантности для оптимальной альфа.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлена в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определены только когда
Xимеет имена признаков, которые все являются строками.Добавлена в версии 1.0.
См. также
lars_path-
Вычислить путь наименьших углов регрессии или Лассо с помощью алгоритма LARS.
lasso_path-
Вычислить путь Лассо с помощью координатного спуска.
Lasso-
Лассо — линейная модель, которая оценивает разреженные коэффициенты.
LassoLars-
Модель Лассо, подогнанная с помощью регрессии наименьших углов, или LARS.
LassoCV-
Линейная модель Лассо с итеративной подгонкой вдоль пути регуляризации.
LassoLarsCV-
Перекрестная проверка модели Лассо с использованием алгоритма LARS.
Примечания
В
fit, после того как лучший параметрalphaнайден с помощью перекрестной проверки, модель подгоняется снова с использованием всей обучающей выборки.Для избежания ненужного дублирования памяти аргумент
Xметодаfitдолжен быть напрямую передан в виде Fortran-непрерывного массива numpy.Пример см. в примерах/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([-78.4951...])
- fit(X, y, sample_weight=None, **params)[source]
-
Обучение модели Лассо с использованием координатного спуска.
Обучение происходит на сетке альфа-значений, и оптимальное альфа-значение оценивается с помощью перекрестной проверки.
- Параметры:
-
- X{массив, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные. Передаются напрямую как данные в формате Fortran, чтобы избежать ненужного дублирования памяти. Если y имеет моно-выход, X может быть разреженным. Обратите внимание, что большие разреженные матрицы и массивы, требующие
int64индексов, не принимаются. - yмассив формы (n_samples,)
-
Целевые значения.
- sample_weightчисло или массив формы (n_samples,), по умолчанию=None
-
Веса образцов, используемые для обучения и оценки взвешенной средней квадратичной ошибки каждого перекрестно-валидационного сгиба. Обратите внимание, что перекрестно-валидационная MSE, которая в конечном итоге используется для поиска лучшей модели, — это невзвешенное среднее значение MSE каждого тестового сгиба (с учетом весов).
- **paramsсловарь, по умолчанию=None
-
Параметры, которые нужно передать делителю перекрестной проверки.
Добавлен в версии 1.4: Доступен только если
enable_metadata_routing=True, который можно установить, используяsklearn.set_config(enable_metadata_routing=True). См. Руководство пользователя по маршрутизации метаданных для получения дополнительной информации.
- Возвращаемое значение:
-
- selfобъект
-
Возвращает экземпляр обученной модели.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных для данного объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
Добавлен в версии 1.4.
- Возвращаемое значение:
-
- routingMetadataRouter
-
A
MetadataRouterencapsulating routing information.
- get_params(deep=True)[source]
-
Получить параметры данного оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернёт параметры данного оценщика и вложенных под-объектов, являющихся оценщиками.
- Возвращаемое значение:
-
- paramsсловарь
-
Имена параметров, сопоставленные со значениями.
- staticpath(X, y, *, eps=0.001, n_alphas=100, alphas=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, **params)[source]
-
Вычисление пути Лассо с помощью метода координатного спуска.
Функция оптимизации Лассо различается для задач с одним и несколькими выходами.
Для задач с одним выходом она имеет вид:
(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
-
Количество альфа вдоль пути регуляризации.
- alphasarray-like, по умолчанию=None
-
Список альфа, где вычисляются модели. Если
Noneальфы устанавливаются автоматически. - 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,)
-
Альфа вдоль пути, где вычисляются модели.
- coefsndarray формы (n_features, n_alphas) или (n_targets, n_features, n_alphas)
-
Коэффициенты вдоль пути.
- dual_gapsndarray формы (n_alphas,)
-
Двойственные разрывы в конце оптимизации для каждого альфа.
- n_itersсписок int
-
Количество итераций, выполненных оптимизатором координатного спуска для достижения заданной точности для каждого альфа.
См. также
lars_path-
Вычисление пути наименьших углов регрессии или Лассо с помощью алгоритма LARS.
Lasso-
Лассо — линейная модель, которая оценивает разреженные коэффициенты.
LassoLars-
Модель Лассо, обученная методом наименьших углов регрессии (Lars).
LassoCV-
Линейная модель Лассо с итеративным обучением вдоль пути регуляризации.
LassoLarsCV-
Перекрёстная проверка Лассо с использованием алгоритма 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)[source]
-
Предсказание с использованием линейной модели.
- Параметры:
-
- Xarray-like или разреженная матрица, форма (n_samples, n_features)
-
Примеры.
- Возвращаемые значения:
-
- Cмассив, форма (n_samples,)
-
Возвращает предсказанные значения.
- score(X, y, sample_weight=None)[source]
-
Возвращает коэффициент детерминации предсказания.
Коэффициент детерминации \(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для регрессора, используетmultioutput='uniform_average'с версии 0.23 для сохранения согласованности со значением по умолчаниюr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (кромеMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') LassoCV[source]
-
Запрос метаданных, переданных в метод
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Обратитесь к Руководству пользователя за информацией о работе механизма маршрутизации.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются вfitпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вfit. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их. -
str: метаданные должны передаваться мета-оценщику с данным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Параметры:
-
- sample_weightstr, True, False, или None, по умолчанию sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
- set_params(**params)[source]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры в форме<component>__<parameter>, чтобы было возможно обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') LassoCV[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Подробности о механизме маршрутизации см. в Руководстве пользователя.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются вscoreпри наличии. Запрос игнорируется, если метаданные отсутствуют. -
False: метаданные не запрашиваются и мета-оценщик не будет передавать ихscore. -
None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь предоставит их. -
str: метаданные должны быть переданы мета-оценщику с заданным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлена в версии 1.3.
Примечание
Этот метод актуален только в том случае, если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает никакого влияния.- Параметры:
-
- sample_weightstr, True, False, или None, по умолчанию sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращаемое значение:
-
- selfобъект
-
Обновленный объект.
-
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.LassoCV.html