Spec-Zone.ru › scikit-learn

SVC

classsklearn.svm.SVC(*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', break_ties=False, random_state=None)[source]

C-Разделяющая машина опорных векторов.

Реализация основана на libsvm. Время обучения по меньшей мере квадратично зависит от количества примеров и может быть непрактичным для наборов данных с десятками тысяч примеров. Для больших наборов данных рекомендуется использовать LinearSVC или SGDClassifier, возможно после применения преобразователя Nystroem или других Приближений ядер.

Многоклассовая поддержка обрабатывается по схеме один-против-один.

Подробности о точном математическом определении предоставленных функций ядра и о том, как gamma, coef0 и degree влияют друг на друга, см. соответствующий раздел в описательной документации: Функции ядра.

Чтобы узнать, как настраивать гиперпараметры SVC, см. следующий пример: Вложенная против невложенной кросс-валидации

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

Параметры:
Cfloat, default=1.0

Параметр регуляризации. Сила регуляризации обратно пропорциональна C. Должно быть строго положительным. Штраф представляет собой квадратную l2-штраф. Для интуитивного визуального представления эффектов масштабирования параметра регуляризации C см. Масштабирование параметра регуляризации для SVC.

kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} or callable, default=’rbf’

Определяет тип ядра, используемого в алгоритме. Если не указано, используется ‘rbf’. Если предоставлена вызываемая функция, она используется для предварительного вычисления матрицы ядра из матриц данных; эта матрица должна быть массивом формы (n_samples, n_samples). Для интуитивного визуального представления различных типов ядер см. График границ классификации с разными ядрами SVM.

degreeint, default=3

Степень полиномиального ядра (‘poly’). Должно быть неотрицательным. Игнорируется всеми другими ядрами.

gamma{‘scale’, ‘auto’} or float, default=’scale’

Коэффициент ядра для ‘rbf’, ‘poly’ и ‘sigmoid’.

  • если gamma='scale' (по умолчанию) передается, то он использует 1 / (n_features * X.var()) в качестве значения gamma,
  • если ‘auto’, использует 1 / n_features
  • если float, должно быть неотрицательным.

Изменено в версии 0.22: Значение по умолчанию для gamma изменено с ‘auto’ на ‘scale’.

coef0float, default=0.0

Независимый член в функции ядра. Он значим только в ‘poly’ и ‘sigmoid’.

shrinkingbool, default=True

Использовать ли эвристику сжатия. См. Руководство пользователя.

probabilitybool, default=False

Включить ли оценку вероятности. Это должно быть включено перед вызовом fit, замедлит этот метод, так как он использует 5-кратную перекрестную проверку внутри, и predict_proba может быть несогласован с predict. Подробнее см. в Руководстве пользователя.

tolfloat, default=1e-3

Допуск для критерия остановки.

cache_sizefloat, default=200

Укажите размер кэша ядра (в МБ).

class_weightdict or ‘balanced’, default=None

Установите параметр C класса i в class_weight[i]*C для SVC. Если не указано, предполагается, что все классы имеют вес один. Режим “balanced” использует значения y для автоматической корректировки весов, обратно пропорциональных частотам классов в входных данных, как n_samples / (n_classes * np.bincount(y)).

verbosebool, default=False

Включить подробный вывод. Обратите внимание, что эта настройка использует настройку времени выполнения в libsvm на процесс, которая, если включена, может работать неправильно в многопоточном контексте.

max_iterint, default=-1

Жесткое ограничение на итерации внутри решателя, или -1 для отсутствия ограничения.

decision_function_shape{‘ovo’, ‘ovr’}, default=’ovr’

Возвращать ли функцию принятия решения один-против-остальных (‘ovr’) формы (n_samples, n_classes) как все другие классификаторы, или исходную функцию принятия решения один-против-одного (‘ovo’) из libsvm, которая имеет форму (n_samples, n_classes * (n_classes - 1) / 2). Однако обратите внимание, что внутренне всегда используется стратегия один-против-одного (‘ovo’) для обучения моделей; матрица ovr строится только из матрицы ovo. Параметр игнорируется для бинарной классификации.

Изменено в версии 0.19: decision_function_shape по умолчанию ‘ovr’.

Добавлена в версии 0.17: decision_function_shape=’ovr’ рекомендуется.

Изменено в версии 0.17: Устарели decision_function_shape=’ovo’ и None.

break_tiesbool, default=False

Если True, decision_function_shape='ovr', и число классов > 2, предсказание будет разрывать связи согласно значениям уверенности функции принятия решения; в противном случае возвращается первый класс среди связанных классов. Обратите внимание, что разрыв связей сопряжен с относительно высокой вычислительной сложностью по сравнению с простым предсказанием. См. Пример разрыва связей SVM для примера его использования с decision_function_shape='ovr'.

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

random_stateint, RandomState instance or None, default=None

Управляет генерацией псевдослучайных чисел для перемешивания данных для оценок вероятности. Игнорируется, когда probability равно False. Передайте целое число для воспроизводимого результата при многократном вызове функций. См. Словарь.

Атрибуты:
class_weight_ndarray of shape (n_classes,)

Множители параметра C для каждого класса. Вычисляются на основе параметра class_weight.

classes_ndarray of shape (n_classes,)

Метки классов.

coef_ndarray of shape (n_classes * (n_classes - 1) / 2, n_features)

Веса, присвоенные функциям, когда kernel="linear".

dual_coef_ndarray of shape (n_classes -1, n_SV)

Двойственные коэффициенты опорного вектора в функции принятия решений (см. Математическая формулировка), умноженные на их цели. Для многоклассовой ситуации коэффициент для всех классификаторов один-против-одного. Формат расположения коэффициентов в многоклассовом случае несколько нетривиален. Подробности см. в разделе многоклассовых моделей Руководства пользователя.

fit_status_int

0, если корректно обучено, 1 в противном случае (вызовет предупреждение)

intercept_ndarray of shape (n_classes * (n_classes - 1) / 2,)

Константы в функции принятия решений.

n_features_in_int

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

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

feature_names_in_ndarray of shape (n_features_in_,)

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

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

n_iter_ndarray of shape (n_classes * (n_classes - 1) // 2,)

Количество итераций, выполненных процедурой оптимизации для обучения модели. Форма этого атрибута зависит от количества оптимизированных моделей, которое, в свою очередь, зависит от количества классов.

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

support_ndarray of shape (n_SV)

Индексы опорных векторов.

support_vectors_ndarray of shape (n_SV, n_features)

Опорные векторы. Пустой массив, если ядро является предварительно вычисленным.

n_support_ndarray of shape (n_classes,), dtype=int32

Количество опорных векторов для каждого класса.

probA_ndarray of shape (n_classes * (n_classes - 1) / 2)

Параметр, вычисленный в масштабировании Платта, когда probability=True.

probB_ndarray of shape (n_classes * (n_classes - 1) / 2)

Параметр, вычисленный в масштабировании Платта, когда probability=True.

shape_fit_tuple of int of shape (n_dimensions_of_X,)

Размеры массива тренировочного вектора X.

См. также

SVR

Машина опорных векторов для регрессии, реализованная с использованием libsvm.

LinearSVC

Масштабируемая линейная машина опорных векторов для классификации, реализованная с использованием liblinear. Смотрите раздел «См. также» в LinearSVC для более подробного сравнения.

Ссылки

[1]

LIBSVM: Библиотека для машин опорных векторов

[2]

Platt, John (1999). “Вероятностные выходы для машин опорных векторов и сравнение с методами регуляризованной правдоподобия”

Примеры

>>> import numpy as np
>>> from sklearn.pipeline import make_pipeline
>>> from sklearn.preprocessing import StandardScaler
>>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])
>>> y = np.array([1, 1, 2, 2])
>>> from sklearn.svm import SVC
>>> clf = make_pipeline(StandardScaler(), SVC(gamma='auto'))
>>> clf.fit(X, y)
Pipeline(steps=[('standardscaler', StandardScaler()),
                ('svc', SVC(gamma='auto'))])
>>> print(clf.predict([[-0.8, -1]]))
[1]

Для сравнения SVC с другими классификаторами см.: График вероятности классификации.

свойствоcoef_

Веса, присвоенные признакам, когда kernel="linear".

Возвращает:
массив ndarray формы (n_признаков, n_классов)
decision_function(X)[source]

Вычисление функции принятия решений для образцов в X.

Параметры:
Xпоследовательность массивов формы (n_образцов, n_признаков)

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

Возвращает:
Xмассив ndarray формы (n_образцов, n_классов * (n_классов-1) / 2)

Возвращает функцию принятия решения для каждого класса в модели. Если decision_function_shape=’ovr’, форма (n_образцов, n_классов).

Примечания

Если decision_function_shape=’ovo’, значения функции пропорциональны расстоянию образцов X от разделяющей гиперплоскости. Если требуется точное расстояние, разделите значения функции на норму вектора весов (coef_). См. также вопрос для получения дополнительных подробностей. Если decision_function_shape=’ovr’, функция принятия решений является монотонным преобразованием функции принятия решений ovo.

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

Обучение модели SVM в соответствии с предоставленными обучающими данными.

Параметры:
X{массив, разреженная матрица} формы (n_образцов, n_признаков) или (n_образцов, n_образцов)

Обучающие векторы, где n_samples — количество образцов, а n_features — количество признаков. Для kernel=”precomputed”, ожидаемая форма X — (n_образцов, n_образцов).

yпоследовательность массивов формы (n_образцов,)

Целевые значения (метки классов в классификации, вещественные числа в регрессии).

sample_weightпоследовательность массивов формы (n_образцов,), по умолчанию=None

Веса каждого образца. Изменяет C для каждого образца. Более высокие веса заставляют классификатор уделять больше внимания этим точкам.

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

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

Примечания

Если X и y не являются массивами C-порядка и непрерывными массивами np.float64, и X не является scipy.sparse.csr_matrix, X и/или y могут быть скопированы.

Если X — плотный массив, тогда другие методы не будут поддерживать разреженные матрицы в качестве входных данных.

get_metadata_routing()[source]

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

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

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

MetadataRequest encapsulating routing information.

get_params(deep=True)[source]

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

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

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

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

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

свойствоn_support_

Количество опорных векторов для каждого класса.

predict(X)[source]

Классификация образцов в X.

Для одноклассовой модели возвращаются +1 или -1.

Параметры:
X{массив, разреженная матрица} формы (n_образцов, n_признаков) или (n_образцов_теста, n_образцов_обучения)

Для kernel=”precomputed”, ожидаемая форма X — (n_образцов_теста, n_образцов_обучения).

Возвращает:
y_predмассив ndarray формы (n_образцов,)

Метки классов для образцов в X.

predict_log_proba(X)[source]

Вычислить логарифмические вероятности возможных результатов для выборок в X.

Модель должна иметь вычисленные вероятностные данные во время обучения: обучаться с атрибутом probability установленным в True.

Параметры:
Xмассив-подобный формы (n_samples, n_features) или (n_samples_test, n_samples_train)

Для kernel=”precomputed”, ожидаемая форма X — (n_samples_test, n_samples_train).

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

Возвращает логарифмические вероятности выборки для каждого класса в модели. Столбцы соответствуют классам в отсортированном порядке, так как они появляются в атрибуте classes_.

Примечания

Вероятностная модель создается с использованием перекрестной проверки, поэтому результаты могут немного отличаться от результатов, полученных с помощью predict. Также она даст бессмысленные результаты на очень небольших наборах данных.

predict_proba(X)[source]

Вычислить вероятности возможных результатов для выборок в X.

Модель должна иметь вычисленные вероятностные данные во время обучения: обучаться с атрибутом probability установленным в True.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Для kernel=”precomputed”, ожидаемая форма X — (n_samples_test, n_samples_train).

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

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

Примечания

Вероятностная модель создается с использованием перекрестной проверки, поэтому результаты могут немного отличаться от результатов, полученных с помощью predict. Также она даст бессмысленные результаты на очень небольших наборах данных.

свойствоprobA_

Параметр, вычисленный при масштабировании Платта, когда probability=True.

Возвращает:
массив формы (n_classes * (n_classes - 1) / 2)
свойствоprobB_

Параметр, вычисленный при масштабировании Платта, когда probability=True.

Возвращает:
массив формы (n_classes * (n_classes - 1) / 2)
score(X, y, sample_weight=None)[source]

Возвращает среднюю точность на заданных тестовых данных и метках.

В многоклассовой классификации это точность подмножества, которая является жёсткой метрикой, поскольку для каждой выборки требуется, чтобы каждый набор меток был предсказан правильно.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Тестовые выборки.

yмассив-подобный формы (n_samples,) или (n_samples, n_outputs)

Истинные метки для X.

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

Веса выборок.

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

Средняя точность self.predict(X) по отношению к y.

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

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

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

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

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

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

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

Примечание

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

Параметры:
sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_params(**params)[source]

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

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

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

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

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

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

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

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

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

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

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

Returns:
selfobject

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

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

Основные улучшения scikit-learn 0.24

Основные улучшения scikit-learn 0.22

Сравнение классификаторов

Построение вероятностей классификации

Распознавание рукописных цифр

Построение границ принятия решения VotingClassifier

Распознавание лиц с помощью eigenfaces и SVM

Масштабируемое обучение с приближением полиномиального ядра

Отображение конвейеров

Явное приближение отображения признаков для RBF-ядер

Мультимеченые классификации

Кривая ROC с API визуализации

Сравнение поиска по сетке и последовательного убывания

Матрица неточностей

Настройка стратегии пересчета поиска по сетке с перекрестной проверкой

Вложенная и невложенная перекрестная проверка

Построение кривых обучения и проверка масштабируемости моделей

Кривая ROC (Receiver Operating Characteristic) с перекрестной проверкой

Статистическое сравнение моделей с использованием поиска по сетке

Проверка значимости оценки классификации с помощью перестановок

Объединение нескольких методов извлечения признаков

Дискретизация признаков

Граница принятия решений для полунадзорных классификаторов против SVM на наборе данных Iris

Влияние изменяемого порога для самообучения

Графики разделяющих границ с различными ядрами SVM

График различных классификаторов SVM в наборе данных iris

Параметры RBF SVM

Пример полей SVM

Пример разрыва связей SVM

SVM с настраиваемым ядром

SVM-Аnova: SVM с однофакторным отбором признаков

SVM: Разделяющая гиперплоскость максимального отступа

SVM: Разделяющая гиперплоскость для несбалансированных классов

SVM: Взвешенные образцы

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

Spec-Zone.ru

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