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)[source]

Линейная регрессия опорных векторов.

Аналогично SVR с параметром kernel=’linear’, но реализована с использованием liblinear вместо libsvm, поэтому она обладает большей гибкостью в выборе штрафов и функций потерь и должна лучше масштабироваться на большие объёмы выборок.

Основные различия между LinearSVR и SVR заключаются в функции потерь, используемой по умолчанию, и в обработке регуляризации перехвата между этими двумя реализациями.

Этот класс поддерживает как плотные, так и разреженные входные данные.

Подробнее см. в Руководстве пользователя.

Добавлен в версии 0.16.

Параметры:
epsilonfloat, по умолчанию=0.0

Параметр epsilon в функции потерь epsilon-нечувствительной. Обратите внимание, что значение этого параметра зависит от масштаба целевой переменной y. Если не уверены, установите epsilon=0.

tolfloat, по умолчанию=1e-4

Допуск для критерия остановки.

Cfloat, по умолчанию=1.0

Параметр регуляризации. Сила регуляризации обратно пропорциональна C. Должно быть строго положительным.

loss{‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, по умолчанию=’epsilon_insensitive’

Определяет функцию потерь. Функция потерь epsilon-нечувствительная (стандартный SVR) — это потеря L1, а функция потерь squared epsilon-нечувствительная (‘squared_epsilon_insensitive’) — это потеря L2.

fit_interceptbool, по умолчанию=True

Включает или отключает подгонку перехвата. Если установлено True, вектор признаков расширяется, чтобы включить член перехвата: [x_1, ..., x_n, 1], где 1 соответствует перехвату. Если установлено False, при расчётах не будет использоваться перехват (т.е. ожидается, что данные уже центрированы).

intercept_scalingfloat, по умолчанию=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” или bool, по умолчанию=”auto”

Выбирает алгоритм для решения двойственной или исходной задачи оптимизации. Рекомендуется использовать dual=False, когда n_samples > n_features. dual="auto" автоматически выберет значение параметра на основе значений n_samples, n_features и loss. Если n_samples < n_features и оптимизатор поддерживает выбранный loss, то dual будет установлено в True, в противном случае в False.

Изменено в версии 1.3: Опция "auto" добавлена в версии 1.3 и станет значением по умолчанию в версии 1.5.

verboseint, по умолчанию=0

Включает подробную информацию об отладке. Обратите внимание, что это настройка использует настройку времени выполнения в liblinear на уровне процесса, которая, если она включена, может не работать должным образом в многопоточном контексте.

random_stateint, RandomState instance или None, по умолчанию=None

Управляет генерацией псевдослучайных чисел для перемешивания данных. Передайте целое число для воспроизводимого результата при нескольких вызовах функции. См. Словарь.

max_iterint, по умолчанию=1000

Максимальное количество итераций.

Атрибуты:
coef_массив формы (n_features) если n_classes == 2 иначе (n_classes, n_features)

Присвоенные весам признаков (коэффициенты в исходной задаче).

coef_ — это только для чтения свойство, полученное из raw_coef_, которое соответствует внутреннему расположению памяти в liblinear.

intercept_массив формы (1) если n_classes == 2 иначе (n_classes)

Постоянные в функции принятия решений.

n_features_in_int

Количество признаков, увиденных во время fit.

Добавлен в версии 0.24.

feature_names_in_массив формы (n_features_in_,)

Имена признаков, увиденные во время fit. Определяется только тогда, когда 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)[source]

Обучает модель по заданным обучающим данным.

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

Вектор обучения, где n_samples — количество выборок, а n_features — количество признаков.

yarray-like формы (n_samples,)

Вектор целей, относящийся к X.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Массив весов, присваиваемых отдельным выборкам. Если не указано, каждая выборка получает единичный вес.

Добавлен в версии 0.18.

Возвращает:
selfобъект

Экземпляр оценщика.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, ознакомьтесь с Руководством пользователя по тому, как работает механизм маршрутизации.

Возвращает:
routingMetadataRequest

Объект MetadataRequest содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, вернет параметры этого оценщика и вложенных под-объектов, являющихся оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные со значениями.

predict(X)[source]

Предсказание с помощью линейной модели.

Параметры:
Xмассив-подобный объект или разреженная матрица, форма (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.

Параметры:
Xмассив-подобный объект формы (n_samples, n_features)

Тестовые образцы. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядер или список общих объектов вместо неё с формой (n_samples, n_samples_fitted), где n_samples_fitted — количество образцов, используемых при подгонке для оценщика.

yмассив-подобный объект формы (n_samples,) или (n_samples, n_outputs)

Истинные значения для X.

sample_weightмассив-подобный объект формы (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$') → LinearSVR[source]

Запрос метаданных, переданных методу fit.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). См. Руководство пользователя о том, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются fit при наличии. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их fit.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит.
  • str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет вам изменить запрос для некоторых параметров, а не для других.

Добавлена в версии 1.3.

Примечание

Этот метод актуален только если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри Pipeline. Иначе он не имеет эффекта.

Параметры:
sample_weightстрока, 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$') → LinearSVR[source]

Запрос метаданных, передаваемых методу score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Подробности о механизме маршрутизации см. в Руководстве пользователя.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются методу score, если они предоставлены. Запрос игнорируется, если метаданные отсутствуют.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их методу score.
  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит.
  • str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо исходного имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только в случае использования данного оценщика как под-оценщика мета-оценщика, например, внутри Pipeline. В противном случае он не оказывает никакого влияния.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Returns:
selfobject

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

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.svm.LinearSVR.html

Spec-Zone.ru

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