LinearSVR
- classsklearn.svm.LinearSVR(*, epsilon=0.0, tol=0.0001, C=1.0, loss='epsilon_insensitive', fit_intercept=True, intercept_scaling=1.0, dual='auto', verbose=0, random_state=None, max_iter=1000)[исходный код]
-
Линейная регрессия на опорных векторах.
Подобно SVR с параметром kernel=’linear’, но реализована на основе liblinear, а не libsvm, поэтому предоставляет больше гибкости при выборе штрафов и функций потерь и лучше масштабируется для большого числа выборок.
Основные различия между
LinearSVRиSVRзаключаются в используемой по умолчанию функции потерь и обработке регуляризации свободного члена в этих двух реализациях.Этот класс поддерживает как плотные, так и разреженные входные данные.
Подробнее см. в руководстве пользователя.
Добавлено в версии 0.16.
- Параметры:
-
- epsilonfloat, default=0.0
-
Параметр epsilon в функции потерь, нечувствительной к epsilon. Обратите внимание, что значение этого параметра зависит от масштаба целевой переменной y. Если вы не уверены, задайте
epsilon=0. - tolfloat, default=1e-4
-
Допуск для критерия остановки.
- Cfloat, default=1.0
-
Параметр регуляризации. Сила регуляризации обратно пропорциональна C. Значение должно быть строго положительным.
- loss{‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, default=’epsilon_insensitive’
-
Задает функцию потерь. Функция потерь, нечувствительная к epsilon (стандартная SVR), является функцией потерь L1, а квадратичная функция потерь, нечувствительная к epsilon (‘squared_epsilon_insensitive’), — функцией потерь L2.
- fit_interceptbool, default=True
-
Нужно ли подбирать свободный член. Если задано значение True, вектор признаков расширяется за счет свободного члена:
[x_1, ..., x_n, 1], где 1 соответствует свободному члену. Если задано значение False, свободный член не будет использоваться в вычислениях (то есть предполагается, что данные уже центрированы). - intercept_scalingfloat, default=1.0
-
Если
fit_interceptравно True, вектор экземпляра x становится[x_1, ..., x_n, intercept_scaling], то есть к вектору экземпляра добавляется «синтетический» признак с постоянным значениемintercept_scaling. Свободный член равен intercept_scaling * весу синтетического признака. Обратите внимание, что liblinear внутри алгоритма штрафует свободный член, рассматривая его как любой другой элемент вектора признаков. Чтобы уменьшить влияние регуляризации на свободный член, параметруintercept_scalingможно задать значение больше 1; чем выше значениеintercept_scaling, тем меньше влияние регуляризации на него. В этом случае веса становятся[w_x_1, ..., w_x_n, w_intercept*intercept_scaling], гдеw_x_1, ..., w_x_nобозначают веса признаков, а вес свободного члена масштабируется с помощьюintercept_scaling. Такое масштабирование позволяет задать для свободного члена поведение регуляризации, отличающееся от поведения для остальных признаков. - dual“auto” or bool, default=”auto”
-
Выбирает алгоритм для решения двойственной или прямой задачи оптимизации. Если n_samples > n_features, предпочтительно использовать dual=False.
dual="auto"автоматически выберет значение параметра на основе значенийn_samples,n_featuresиloss. Еслиn_samples<n_featuresи оптимизатор поддерживает выбранное значениеloss, то dual будет установлено в True, в противном случае — в False.Изменено в версии 1.3: Параметр
"auto"добавлен в версии 1.3 и станет значением по умолчанию в версии 1.5. - verboseint, default=0
-
Включает подробный вывод. Обратите внимание: эта настройка использует параметр времени выполнения liblinear, действующий в пределах процесса; при включении он может работать некорректно в многопоточном контексте.
- random_stateint, RandomState instance or None, default=None
-
Управляет генерацией псевдослучайных чисел для перемешивания данных. Передайте целое число, чтобы получать воспроизводимый результат при нескольких вызовах функции. См. глоссарий.
- max_iterint, default=1000
-
Максимальное число итераций.
- Атрибуты:
-
- coef_ndarray of shape (n_features) if n_classes == 2 else (n_classes, n_features)
-
Веса, присвоенные признакам (коэффициенты в прямой задаче).
coef_— это свойство только для чтения, производное отraw_coef_и соответствующее внутреннему расположению данных в памяти liblinear. - intercept_ndarray of shape (1) if n_classes == 2 else (n_classes)
-
Константы в функции принятия решений.
- n_features_in_int
-
Число признаков, обнаруженных во время обучения.
Добавлено в версии 0.24.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, обнаруженных во время обучения. Определяется только в том случае, если
Xсодержит имена признаков, представленные строками.Добавлено в версии 1.0.
- n_iter_int
-
Максимальное число итераций, выполненных для всех классов.
См. также
LinearSVC-
Реализация классификатора на основе машины опорных векторов с использованием той же библиотеки, что и этот класс (liblinear).
SVR-
Реализация регрессии на основе машины опорных векторов с использованием libsvm: ядро может быть нелинейным, но алгоритм SMO не масштабируется для большого числа выборок так же хорошо, как
LinearSVR. sklearn.linear_model.SGDRegressor-
SGDRegressor может оптимизировать ту же функцию стоимости, что и LinearSVR, если настроить параметры штрафа и функции потерь. Кроме того, ему требуется меньше памяти, он поддерживает инкрементальное (онлайн-)обучение и реализует различные функции потерь и режимы регуляризации.
Примеры
>>> from sklearn.svm import LinearSVR >>> from sklearn.pipeline import make_pipeline >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.datasets import make_regression >>> X, y = make_regression(n_features=4, random_state=0) >>> regr = make_pipeline(StandardScaler(), ... LinearSVR(random_state=0, tol=1e-5)) >>> regr.fit(X, y) Pipeline(steps=[('standardscaler', StandardScaler()), ('linearsvr', LinearSVR(random_state=0, tol=1e-05))])>>> print(regr.named_steps['linearsvr'].coef_) [18.582 27.023 44.357 64.522] >>> print(regr.named_steps['linearsvr'].intercept_) [-4.] >>> print(regr.predict([[0, 0, 0, 0]])) [-2.384]
- fit(X, y, sample_weight=None)[исходный код]
-
Обучает модель на заданных обучающих данных.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Обучающий вектор, где
n_samples— число выборок, аn_features— число признаков. - yarray-like of shape (n_samples,)
-
Целевой вектор, соответствующий X.
- sample_weightarray-like of shape (n_samples,), default=None
-
Массив весов, присваиваемых отдельным выборкам. Если не задан, каждой выборке присваивается единичный вес.
Добавлено в версии 0.18.
- Возвращает:
-
- selfobject
-
Экземпляр оценщика.
- get_metadata_routing()[исходный код]
-
Возвращает настройки маршрутизации метаданных этого объекта.
Информацию о работе механизма маршрутизации см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Возвращает параметры этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если значение True, возвращает параметры этого оценщика и содержащихся в нем объектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров и соответствующие им значения.
- predict(X)[исходный код]
-
Выполняет предсказание с помощью линейной модели.
- Параметры:
-
- Xarray-like or sparse matrix of shape (n_samples, n_features)
-
Выборки.
- Возвращает:
-
- Cndarray of shape (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 of shape (n_samples, n_features)
-
Тестовые выборки. Для некоторых оценщиков вместо этого может быть предварительно вычисленная матрица ядра или список произвольных объектов формы
(n_samples, n_samples_fitted), гдеn_samples_fitted— число выборок, использованных при обучении оценщика. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like of shape (n_samples,), default=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$') LinearSVR[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
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, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- set_params(**params)[исходный код]
-
Задает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют формат<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') LinearSVR[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
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, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.svm.LinearSVR.html