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.
- ‘constant’:
- 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.
Примеры из галереи
© 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