Spec-Zone.ru › scikit-learn

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

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

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

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

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

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

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

© 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

Spec-Zone.ru

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