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