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.
См. также
Ссылки
Примеры
>>> 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
-
MetadataRequestencapsulating 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
-
Обновленный объект.
-
Примеры из галереи
© 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