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.0, power_t=0.5, warm_start=False, average=False)[source]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

learning_rate{‘constant’, ‘optimal’, ‘invscaling’, ‘adaptive’}, по умолчанию=’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, по умолчанию=0.0

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

power_tfloat, по умолчанию=0.5

Экспонента для обратной шкалы скорости обучения. Значения должны быть в диапазоне (-inf, inf).

warm_startbool, по умолчанию=False

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

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

averagebool или int, по умолчанию=False

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

Атрибуты:
coef_ndarray формы (1, n_features)

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

offset_ndarray формы (1,)

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

n_iter_int

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

t_int

Количество обновлений весов, выполненных во время обучения. То же, что и (n_iter_ * n_samples + 1).

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, увиденные во время fit. Определены только тогда, когда у X есть имена признаков, которые все являются строками.

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

См. также

sklearn.svm.OneClassSVM

Неконтролируемое обнаружение выбросов.

Примечания

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

Примеры

>>> 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)
>>> clf.fit(X)
SGDOneClassSVM(random_state=42)
>>> print(clf.predict([[4, 4]]))
[1]
decision_function(X)[source]

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

Подписанное расстояние положительно для инлайнера и отрицательно для выброса.

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

Тестирующие данные.

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

Значения функции принятия решений образцов.

densify()[source]

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

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

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

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

fit(X, y=None, coef_init=None, offset_init=None, sample_weight=None)[source]

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

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

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

Данные обучения.

yИгнорируется

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

coef_initмассив, форма (n_classes, n_features)

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

offset_initмассив, форма (n_classes,)

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

sample_weightarray-like, форма (n_samples,), необязательно

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

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

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

fit_predict(X, y=None, **kwargs)[source]

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

Возвращает -1 для выбросов и 1 для инлайнеров.

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

Входные образцы.

yИгнорируется

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

**kwargsсловарь

Аргументы для передачи в fit.

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

Возвращает:
yмассив формы (n_samples,)

1 для инлайнеров, -1 для выбросов.

get_metadata_routing()[source]

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

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

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

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

get_params(deep=True)[source]

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

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

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

Возвращает:
paramsсловарь

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

partial_fit(X, y=None, sample_weight=None)[source]

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

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

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

yИгнорируется

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

sample_weightarray-like, форма (n_samples,), необязательно

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

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

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

predict(X)[source]

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

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

Тестируемые данные.

Возвращает:
yмассив, форма (n_samples,)

Метки образцов.

score_samples(X)[source]

Сырая функция оценки образцов.

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

Тестируемые данные.

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

Значения функции оценки образцов без сдвига.

set_fit_request(*, coef_init:bool|None|str='$UNCHANGED$', offset_init:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') → SGDOneClassSVM[source]

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

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

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

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

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

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

Примечание

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

Parameters:
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.

Returns:
selfobject

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

set_params(**params)[source]

Устанавливает параметры данного оценщика.

Метод работает как с простыми оценщиками, так и со вложенными объектами (такими как Pipeline). Последние имеют параметры вида <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Parameters:
**paramsdict

Параметры оценщика.

Returns:
selfestimator instance

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

set_partial_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → SGDOneClassSVM[source]

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

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

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

  • True: метаданные запрашиваются и передаются методу partial_fit при их наличии. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их методу partial_fit.
  • 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 в методе partial_fit.

Returns:
selfobject

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

sparsify()[source]

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

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

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

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

Обученная модель.

Примечания

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

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

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

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

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

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

Spec-Zone.ru

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