LassoCV#
- класс sklearn.linear_model.LassoCV(*, eps=0.001, n_alphas='устаревший', альфы='warn', fit_intercept=True, precompute='auto', max_iter=1000, tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=None, положительный=False, random_state=None, выбор='cyclic')[источник]#
Лассо линейная модель с итеративной подгонкой вдоль пути регуляризации.
См. запись в глоссарии для оценщик перекрестной проверки.
Лучшая модель выбирается с помощью перекрестной проверки.
Целевая функция оптимизации для Lasso:
(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
Количество альфа вдоль пути регуляризации.
Устарело с версии 1.7:
n_alphasбыл устаревшим в 1.7 и будет удалён в 1.9. Используйтеalphasвместо этого.- альфыarray-like или int, по умолчанию=None
Значения alphas для тестирования вдоль пути регуляризации. Если int,
alphasзначения генерируются автоматически. Если массивоподобный, список значений alpha для использования.Изменено в версии 1.7:
alphasпринимает целочисленное значение, что устраняет необходимость передачиn_alphas.Устарело с версии 1.7:
alphas=Noneбыл устаревшим в 1.7 и будет удален в 1.9, после чего значение по умолчанию будет установлено на 100.- fit_interceptbool, по умолчанию=True
Вычислять ли свободный член для этой модели. Если установлено false, свободный член не будет использоваться в вычислениях (т.е. ожидается, что данные центрированы).
- precompute'auto', bool или массив формы (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, чтобы указать количество фолдов.
Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.
Для целочисленных/None входов,
KFoldиспользуется.Обратитесь Руководство пользователя для различных стратегий перекрестной проверки, которые можно использовать здесь.
Изменено в версии 0.22:
cvзначение по умолчанию, если None изменено с 3-кратного на 5-кратное.- verbosebool или int, по умолчанию=False
Уровень детализации вывода.
- n_jobsint, default=None
Количество процессоров для использования во время перекрестной проверки.
Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.- положительныйbool, по умолчанию=False
Если положительно, ограничивает коэффициенты регрессии положительными значениями.
- random_stateint, экземпляр RandomState, по умолчанию=None
Сид псевдослучайного генератора чисел, который выбирает случайный признак для обновления. Используется, когда
selection== 'random'. Передайте int для воспроизводимого вывода при множественных вызовах функции. См. Глоссарий.- выбор{‘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)
Среднеквадратичная ошибка для тестового набора на каждом сгибе, варьирующая альфа.
- alphas_ndarray формы (n_alphas,)
Сетка альфа, использованная для подгонки.
- dual_gap_float или ndarray формы (n_targets,)
Двойственный разрыв в конце оптимизации для оптимального альфа (
alpha_).- n_iter_int
Количество итераций, выполняемых решателем координатного спуска для достижения указанного допуска для оптимального alpha.
- n_features_in_int
Количество признаков, замеченных во время fit.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.Добавлено в версии 1.0.
Смотрите также
lars_pathВычислить путь регрессии наименьших углов или Lasso с использованием алгоритма LARS.
lasso_pathВычислить путь Lasso с координатным спуском.
LassoLasso — это линейная модель, которая оценивает разреженные коэффициенты.
LassoLarsМодель Lasso, обученная с использованием метода наименьших углов, также известного как Lars.
LassoCVЛассо линейная модель с итеративной подгонкой вдоль пути регуляризации.
LassoLarsCVПерекрёстно проверенный Lasso с использованием алгоритма LARS.
Примечания
В
fit, как только лучший параметрalphaнаходится с помощью кросс-валидации, модель снова обучается на всем тренировочном наборе.Чтобы избежать ненужного дублирования памяти,
Xаргументfitметод должен быть передан непосредственно как массив numpy с непрерывной памятью в стиле Fortran.Пример см. в examples/linear_model/plot_lasso_model_selection.py.
LassoCVприводит к другим результатам, чем поиск гиперпараметров с использованиемGridSearchCVсLassoмодель. ВLassoCV, модель для заданного штрафаalphaПри многометочной классификации функция возвращает точность подмножества. Если полный набор предсказанных меток для образца строго совпадает с истинным набором меток, то точность подмножества равна 1.0; в противном случае она равна 0.0.Базовый решатель координатного спуска использует правила безопасного скрининга с зазором для ускорения времени подгонки, см. Руководство пользователя по координатному спуску.
Примеры
>>> 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 с координатным спуском.
Подгонка выполняется на сетке альфа, и лучшая альфа оценивается с помощью перекрестной проверки.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Обучающие данные. Передавайте непосредственно как Fortran-contiguous данные, чтобы избежать ненужного дублирования памяти. Если y имеет один выход, X может быть разреженным. Обратите внимание, что большие разреженные матрицы и массивы, требующие
int64индексы не принимаются.- yarray-like формы (n_samples,)
Целевые значения.
- sample_weightfloat или array-like формы (n_samples,), default=None
Веса выборок, используемые для обучения и оценки взвешенной среднеквадратичной ошибки каждого cv-фолда. Обратите внимание, что перекрёстно проверенная MSE, которая в итоге используется для поиска лучшей модели, является невзвешенным средним по (взвешенным) MSE каждого тестового фолда.
- **paramsdict, по умолчанию=None
Параметры, передаваемые разделителю CV.
Добавлено в версии 1.4: Доступно только если
enable_metadata_routing=True, который можно установить с помощьюsklearn.set_config(enable_metadata_routing=True). См. Руководство по маршрутизации метаданных для более подробной информации.
- Возвращает:
- selfobject
Возвращает экземпляр обученной модели.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
Добавлено в версии 1.4.
- Возвращает:
- маршрутизацияMetadataRouter
A
MetadataRouterИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- статический путь(X, y, *, eps=0.001, n_alphas=100, альфы=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, положительный=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, sparse matrix} формы (n_samples, n_features)
Обучающие данные. Передавайте непосредственно как данные с порядком хранения Fortran, чтобы избежать ненужного дублирования памяти. Если
yявляется моно-выходным, тогдаXможет быть разреженным.- y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_targets)
Целевые значения.
- epsfloat, по умолчанию=1e-3
Длина пути.
eps=1e-3означает, чтоalpha_min / alpha_max = 1e-3.- n_alphasint, по умолчанию=100
Количество альфа вдоль пути регуляризации.
- альфыarray-like, default=None
Список альфа, для которых вычисляются модели. Если
Noneпараметры alphas устанавливаются автоматически.- precompute'auto', bool или массив формы (n_features, n_features), по умолчанию='auto'
Использовать ли предварительно вычисленную матрицу Грама для ускорения вычислений. Если установлено в
'auto'пусть мы решим. Матрица Грама также может быть передана в качестве аргумента.- Xyarray-like формы (n_features,) или (n_features, n_targets), default=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
Возвращать ли количество итераций или нет.
- положительныйbool, по умолчанию=False
Если установлено в True, заставляет коэффициенты быть положительными. (Разрешено только когда
y.ndim == 1).- **paramskwargs
Аргументы ключевых слов, передаваемые решателю координатного спуска.
- Возвращает:
- альфыndarray формы (n_alphas,)
Значения alphas вдоль пути, по которому вычисляются модели.
- coefsndarray формы (n_features, n_alphas) или (n_targets, n_features, n_alphas)
Коэффициенты вдоль пути.
- dual_gapsndarray формы (n_alphas,)
Двойные разрывы в конце оптимизации для каждого альфа.
- n_itersсписок целых чисел
Количество итераций, выполненных оптимизатором координатного спуска для достижения указанного допуска для каждого альфа.
Смотрите также
lars_pathВычислить путь регрессии наименьших углов или Lasso с использованием алгоритма LARS.
LassoLasso — это линейная модель, которая оценивает разреженные коэффициенты.
LassoLarsМодель Lasso, обученная с использованием метода наименьших углов, также известного как Lars.
LassoCVЛассо линейная модель с итеративной подгонкой вдоль пути регуляризации.
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)[источник]#
Прогнозирование с использованием линейной модели.
- Параметры:
- Xмассивоподобный или разреженная матрица, форма (n_samples, n_features)
Образцы.
- Возвращает:
- Cмассив, формы (n_samples,)
Возвращает предсказанные значения.
- 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\) of
self.predict(X)относительноy.
Примечания
The \(R^2\) оценка, используемая при вызове
scoreна регрессоре используетmultioutput='uniform_average'с версии 0.23 для сохранения согласованности со значением по умолчанию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.
- Возвращает:
- selfobject
Обновленный объект.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- 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.
- Возвращает:
- selfobject
Обновленный объект.
Примеры галереи#
Распространённые ошибки в интерпретации коэффициентов линейных моделей
Выбор модели Lasso: AIC-BIC / перекрёстная проверка