Spec-Zone.ru › scikit-learn

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объект

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

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

Объединение прогнозов с помощью стекинга

Распространенные ошибки при интерпретации коэффициентов линейных моделей

Модели на основе L1 для разреженных сигналов

Выбор модели Lasso: AIC-BIC / кросс-валидация

© 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

Spec-Zone.ru

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