SGDOneClassSVM#

класс sklearn.linear_model.SGDOneClassSVM(nu=0.5, fit_intercept=True, max_iter=1000, tol=0.001, перемешивание=True, verbose=0, random_state=None, learning_rate='optimal', eta0=0.01, power_t=0.5, warm_start=False, среднее=False)[источник]#

Решает линейную 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).

перемешиваниеbool, по умолчанию=True

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

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

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

random_stateint, экземпляр RandomState или None, по умолчанию=None

Сид генератора псевдослучайных чисел для использования при перемешивании данных. Если int, random_state - это сид, используемый генератором случайных чисел; если экземпляр RandomState, 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.01

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

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

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

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

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

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

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

среднееbool или int, по умолчанию=False

При установке в True вычисляет усредненные веса SGD и сохраняет результат в coef_ атрибут. Если установлено значение int больше 1, усреднение начнется, как только общее количество увиденных образцов достигнет среднего. Так что 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, 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}, форма (n_samples, n_features)

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

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

Значения решающей функции для выборок.

densify()[источник]#

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

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

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

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

fit(X, y=None, coef_init=None, offset_init=None, sample_weight=None)[источник]#

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

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

Параметры:
X{array-like, sparse matrix}, форма (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 указан.

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

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

fit_predict(X, y=None, **kwargs)[источник]#

Выполнить подгонку на X и вернуть метки для X.

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

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

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

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

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

**kwargsdict

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

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

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

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

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

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

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

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

partial_fit(X, y=None, sample_weight=None)[источник]#

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

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

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

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

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

sample_weightarray-like, форма (n_samples,), опционально

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

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

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

predict(X)[источник]#

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

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

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

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

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

score_samples(X)[источник]#

Необработанная функция оценки выборок.

Параметры:
X{array-like, sparse matrix}, форма (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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

offset_initstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_params(**params)[источник]#

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

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

Параметры:
**paramsdict

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

Возвращает:
selfэкземпляр estimator

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

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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

разрежать()[источник]#

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

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

The intercept_ Член не преобразован.

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

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

Примечания

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

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