Spec-Zone.ru › scikit-learn

SGDOneClassSVM

classsklearn.linear_model.SGDOneClassSVM(nu=0.5, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, random_state=None, learning_rate='optimal', eta0=0.01, power_t=0.5, warm_start=False, average=False)[исходный код]

Решает задачу линейного одно-классового SVM с помощью стохастического градиентного спуска.

Эта реализация предназначена для использования с методом аппроксимации ядра (например, sklearn.kernel_approximation.Nystroem), чтобы получать результаты, аналогичные sklearn.svm.OneClassSVM, который по умолчанию использует гауссово ядро.

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

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

Параметры:
nufloat, default=0.5

Параметр nu одно-классового SVM: верхняя граница доли ошибок при обучении и нижняя граница доли опорных векторов. Должен находиться в интервале (0, 1]. По умолчанию используется значение 0.5.

fit_interceptbool, default=True

Следует ли оценивать свободный член. По умолчанию True.

max_iterint, default=1000

Максимальное число проходов по обучающим данным (также называемых эпохами). Этот параметр влияет только на поведение метода fit, но не partial_fit. По умолчанию равен 1000. Значения должны находиться в диапазоне [1, inf).

tolfloat or None, default=1e-3

Критерий остановки. Если значение не равно None, итерации будут прекращены, когда (loss > previous_loss - tol). По умолчанию равен 1e-3. Значения должны находиться в диапазоне [0.0, inf).

shufflebool, default=True

Следует ли перемешивать обучающие данные после каждой эпохи. По умолчанию True.

verboseint, default=0

Уровень подробности вывода.

random_stateint, RandomState instance or None, default=None

Начальное значение генератора псевдослучайных чисел, используемого для перемешивания данных. Если задано целое число, random_state — это начальное значение генератора случайных чисел; если задан экземпляр RandomState, random_state — это генератор случайных чисел; если задано None, используется экземпляр RandomState, применяемый генератором случайных чисел в np.random.

learning_rate{‘constant’, ‘optimal’, ‘invscaling’, ‘adaptive’}, default=’optimal’

Расписание скорости обучения для fit. (При использовании partial_fit скорость обучения необходимо задавать напрямую.)

  • ‘constant’: eta = eta0
  • ‘optimal’: eta = 1.0 / (alpha * (t + t0)), где t0 выбирается с помощью эвристики, предложенной Леоном Боту.
  • ‘invscaling’: eta = eta0 / pow(t, power_t)
  • ‘adaptive’: eta = eta0, пока функция потерь при обучении продолжает уменьшаться. Каждый раз, когда n_iter_no_change последовательных эпох не позволяют уменьшить потери при обучении на tol или повысить оценку на валидации на tol, если early_stopping имеет значение True, текущая скорость обучения делится на 5.
eta0float, default=0.01

Начальная скорость обучения для расписаний ‘constant’, ‘invscaling’ или ‘adaptive’. Значение по умолчанию равно 0.0, однако обратите внимание, что eta0 не используется при расписании скорости обучения ‘optimal’, установленном по умолчанию. Значения должны находиться в диапазоне (0.0, inf).

power_tfloat, default=0.5

Показатель степени для обратного масштабирования скорости обучения. Значения должны находиться в диапазоне [0.0, inf).

Устарело с версии 1.8: Отрицательные значения для power_t считаются устаревшими начиная с версии 1.8 и вызовут ошибку в версии 1.10. Вместо них используйте значения в диапазоне [0.0, inf).

warm_startbool, default=False

Если задано True, решение предыдущего вызова fit повторно используется в качестве начального приближения; в противном случае предыдущее решение удаляется. См. глоссарий.

Повторные вызовы fit или partial_fit при warm_start=True могут привести к результату, отличающемуся от результата однократного вызова fit, из-за способа перемешивания данных. При использовании динамической скорости обучения она корректируется в зависимости от числа уже обработанных примеров. Вызов fit сбрасывает этот счётчик, тогда как вызов partial_fit увеличивает его текущее значение.

averagebool or int, default=False

Если задано True, вычисляются усреднённые веса SGD, и результат сохраняется в атрибуте coef_. Если задано целое число больше 1, усреднение начинается, когда общее число просмотренных примеров достигает значения average. Например, average=10 начнёт усреднение после просмотра 10 примеров.

Атрибуты:
coef_ndarray of shape (1, n_features)

Веса, присвоенные признакам.

offset_ndarray of shape (1,)

Смещение, используемое для определения функции принятия решения по исходным оценкам. Выполняется соотношение: decision_function = score_samples - offset.

n_iter_int

Фактическое число итераций, выполненных до достижения критерия остановки.

t_int

Число обновлений весов, выполненных во время обучения. Совпадает с (n_iter_ * n_samples + 1).

n_features_in_int

Число признаков, полученных во время обучения.

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

feature_names_in_ndarray of shape (n_features_in_,)

Названия признаков, полученные во время обучения. Определяется, только если X содержит названия признаков, представленные строками.

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

См. также

sklearn.svm.OneClassSVM

Обнаружение выбросов без учителя.

Примечания

Вычислительная сложность этого оценивателя линейно зависит от числа обучающих примеров, поэтому для наборов данных с большим числом обучающих примеров (например, > 10 000) он подходит лучше, чем реализация sklearn.svm.OneClassSVM.

Примеры

>>> import numpy as np
>>> from sklearn import linear_model
>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
>>> clf = linear_model.SGDOneClassSVM(random_state=42, tol=None)
>>> clf.fit(X)
SGDOneClassSVM(random_state=42, tol=None)
>>> print(clf.predict([[4, 4]]))
[1]
decision_function(X)[исходный код]

Знаковое расстояние до разделяющей гиперплоскости.

Знаковое расстояние положительно для объекта, принадлежащего к нормальным данным, и отрицательно для выброса.

Параметры:
X{array-like, sparse matrix}, shape (n_samples, n_features)

Тестовые данные.

Возвращает:
decarray-like, shape (n_samples,)

Значения функции принятия решения для примеров.

densify()[исходный код]

Преобразует матрицу коэффициентов в плотный массив.

Преобразует атрибут coef_ обратно в numpy.ndarray. Это формат по умолчанию для coef_, необходимый для обучения, поэтому этот метод требуется вызывать только для моделей, которые ранее были преобразованы в разреженный формат; в остальных случаях он ничего не делает.

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

Обученный оцениватель.

fit(X, y=None, coef_init=None, offset_init=None, sample_weight=None)[исходный код]

Обучает линейный одно-классовый SVM с помощью стохастического градиентного спуска.

Решает эквивалентную задачу оптимизации исходной задачи оптимизации одно-классового SVM и возвращает вектор весов w и смещение rho, такие что функция принятия решения задаётся выражением <w, x> - rho.

Параметры:
X{array-like, sparse matrix}, shape (n_samples, n_features)

Обучающие данные.

yIgnored

Не используется; параметр присутствует по соглашению для единообразия API.

coef_initarray, shape (n_classes, n_features)

Начальные коэффициенты для продолжения оптимизации с предыдущего результата.

offset_initarray, shape (n_classes,)

Начальное смещение для продолжения оптимизации с предыдущего результата.

sample_weightarray-like, shape (n_samples,), optional

Веса отдельных примеров. Если не заданы, предполагаются одинаковые веса. Если задан параметр class_weight, эти веса будут умножены на class_weight (переданный при создании объекта).

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

Возвращает обученный экземпляр self.

fit_predict(X, y=None, **kwargs)[исходный код]

Обучает модель на X и возвращает метки для X.

Возвращает -1 для выбросов и 1 для объектов, принадлежащих к нормальным данным.

Параметры:
X{array-like, sparse matrix} of shape (n_samples, n_features)

Входные примеры.

yIgnored

Не используется; параметр присутствует по соглашению для единообразия API.

**kwargsdict

Аргументы, передаваемые в fit.

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

Возвращает:
yndarray of shape (n_samples,)

1 для объектов, принадлежащих к нормальным данным, -1 для выбросов.

get_metadata_routing()[исходный код]

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

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

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

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

get_params(deep=True)[исходный код]

Получает параметры этого оценивателя.

Параметры:
deepbool, default=True

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

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

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

partial_fit(X, y=None, sample_weight=None)[исходный код]

Обучает линейный одно-классовый SVM с помощью стохастического градиентного спуска.

Параметры:
X{array-like, sparse matrix}, shape (n_samples, n_features)

Подмножество обучающих данных.

yIgnored

Не используется; параметр присутствует по соглашению для единообразия API.

sample_weightarray-like, shape (n_samples,), optional

Веса отдельных примеров. Если не заданы, предполагаются одинаковые веса.

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

Возвращает обученный экземпляр self.

predict(X)[исходный код]

Возвращает метки примеров (1 — нормальный объект, -1 — выброс).

Параметры:
X{array-like, sparse matrix}, shape (n_samples, n_features)

Тестовые данные.

Возвращает:
yarray, shape (n_samples,)

Метки примеров.

score_samples(X)[исходный код]

Вычисляет исходные оценки примеров.

Параметры:
X{array-like, sparse matrix}, shape (n_samples, n_features)

Тестовые данные.

Возвращает:
score_samplesarray-like, shape (n_samples,)

Несмещённые значения функции оценки для примеров.

set_fit_request(*, coef_init:bool|None|str='$UNCHANGED$', offset_init:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') → SGDOneClassSVM[исходный код]

Настраивает, следует ли запрашивать передачу метаданных методу fit.

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

Для каждого параметра доступны следующие варианты:

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

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

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

Параметры:
coef_initstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра coef_init метода fit.

offset_initstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра offset_init метода fit.

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_partial_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → SGDOneClassSVM[исходный код]

Настраивает, следует ли запрашивать передачу метаданных методу partial_fit.

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

Для каждого параметра доступны следующие варианты:

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

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

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

Параметры:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

sparsify()[исходный код]

Преобразует матрицу коэффициентов в разреженный формат.

Преобразует член coef_ в матрицу scipy.sparse, которая для моделей с регуляризацией L1 может быть гораздо эффективнее с точки зрения использования памяти и хранения, чем обычное представление numpy.ndarray.

Член intercept_ не преобразуется.

Предупреждение

Этот метод не поддерживается для оценщиков, обученных с входными данными Array API (то есть когда используется sklearn.config_context с array_api_dispatch=True). Вызов может выполниться успешно, но последующие вызовы predict и других методов, которым передаются массивы, могут вызвать исключение или вернуть неожиданные результаты.

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

Обученный оценщик.

Примечания

Для моделей без разреженности, то есть когда в coef_ мало нулей, этот метод может фактически увеличить использование памяти, поэтому применяйте его с осторожностью. Как правило, количество нулевых элементов, которое можно вычислить с помощью (coef_ == 0).sum(), должно превышать 50%, чтобы получить значительные преимущества.

После вызова этого метода дальнейшее обучение с помощью метода partial_fit (если он есть) будет невозможно, пока вы не вызовете densify.

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

One-Class SVM и One-Class SVM со стохастическим градиентным спуском

Сравнение алгоритмов обнаружения аномалий для выявления выбросов на учебных наборах данных

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.SGDOneClassSVM.html

Spec-Zone.ru

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