Spec-Zone.ru › scikit-learn

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

Spec-Zone.ru

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