sklearn.svm
.SVC¶
- class sklearn.svm.SVC¶
Clasificación de Vector C-Apoyo.
La implementación se basa en libsvm. El tiempo de ajuste se escala al menos cuadráticamente con el número de muestras y puede ser poco práctico más allá de decenas de miles de muestras. Para conjuntos de datos mas grandes consideré usar
LinearSVC
oSGDClassifier
en su lugar, posiblemente después de un transformadorNystroem
.El soporte multiclase se gestiona de acuerdo a un esquema uno contra uno.
Para detalles sobre la formulación matemática precisa de las funciones de núcleo y como
gamma
,coef0
ydegree
se afectan unos a otros, ver la sección correspondiente en la documentación narrativa: Funciones del núcleo.Más información en el Manual de usuario.
- Parámetros
- Cflotante, default=1.0
Parámetro de regularización. La fuerza de la regularización es inversamente proporcional a C. Debe ser estrictamente positiva. La penalidad es una penalidad l2 cuadrática.
- kernel{“linear”, “poly”, “rbf”, “sigmoid”, “precomputed”}, default=”rbf”
Especifica el tipo de núcleo a ser usado en el algoritmo. Debe ser uno de “linear”, “poly”, “rby”, “sigmoid”, “precomputed” o un invocable. Si no se da ninguna, se utilizará “rbf”. Si un invocable es dado se utilizara para pre-calcular la matriz del núcleo)``. Sí un invocable es dado es utilizado para pre-calcular la matriz de núcleo de las matrices de los datos; esa matriz debería ser un arreglo de forma
(n_samples, n_samples)
.- degreeentero, default=3
Grado de la función de núcleo polinómico (“poly”). Ignorado por todos los otros núcleos.
- gamma{“scale”, “auto”} o flotante, default=”scale”
Coeficiente de núcleo para “rbf”, “poly” y “sigmoid”.
si se pasa
gamma='scale'
(valor predeterminado), entonces se usa 1 / (n_features * X.var()) como valor de gamma,si es “auto”, utiliza 1 / n_features.
Distinto en la versión 0.22: El valor predeterminado de
gamma
cambió de “auto” a “scale”.- coef0flotante, default=0.0
Término independiente en la función del núcleo. Sólo es significativo en “poly” y “sigmoid”.
- shrinkingbooleano, default=True
Si se usa o no la heurística de reducción. Ver el Manual de usuario.
- probabilitybooleano, default=False
Si se habilitan los estimados de probabilidad. Esto se debe habilitar antes de llamar
fit
, ralentizará ese método ya que internamente utiliza la validación cruzada de 5 pliegues, ypredict_proba
podría ser inconsistente conpredict
. Lea más en el Manual de Usuario.- tolflotante, default=1e-3
Tolerancia para el criterio de parada.
- cache_sizeflotante, default=200
Específica el tamaño del caché del núcleo (en MB).
- class_weightdict or “balanced”, default=None
Establece el parámetro C de la clase i a class_weight[i]*C para SVC. Si no es dado, todas las clases se suponen que tienen peso uno. El modo «balanced» utiliza los valores de y para ajustar automáticamente los ponderados inversamente proporcionales a las frecuencias de clase en los datos de entrada como
n_samples / (n_classes * np.bincount(y))
- verbosebooleano, default=False
Activar salida detallada. Ten en cuenta que esta configuración toma ventaja de una configuración por proceso en el tiempo de ejecución en libsvm que, si está habilitada, puede no funcionar correctamente en un contexto multihilo.
- max_iterint, default=-1
Limite fuerte en iteraciones dentro del solucionador, o -1 para ningún límite.
- decision_function_shape{“ovo”, “ovr”}, default=”ovr”
Devolver o no una función de decisión uno contra el resto (“ovr”) de la forma (n_samples, n_classes) como todos los demás clasificadores, o la función original uno contra uno (“ovo”) de la función de decisión de libsvm que tiene forma (n_samples, n_classes * (n_classes - 1) / 2). Sin embargo, uno contra uno (“ovo”) siempre se utiliza como estrategia de multiclase. El parámetro se ignora para la clasificación binaria.
Distinto en la versión 0.19: decision_function_shape es “ovr” por defecto.
Nuevo en la versión 0.17: decision_function_shape=”ovr” es recomendado.
Distinto en la versión 0.17: decision_function_shape=”ovo” and None se ha hecho obsoleto.
- break_tiesbooleano, default=False
Si es verdadero,
decision_function_shape='ovr'
, y el número de clases > 2, predict romperá vínculos de acuerdo a los valores de confianza de decision_function; de lo contrario se devuelve la primera clase entre las clases enlazadas. Por favor note que romper enlaces tiene un costo computacional relativamente alto comparado a una predicción simple.Nuevo en la versión 0.22.
- random_stateentero, instancia de RandomState o None, por defecto=None
Controla la generación de números pseudo-aleatorios para barajear los datos para estimados de probabilidad. Ignorado cuando
probability
es Falso. Pasa un int para salida reproducible a través de múltiples llamadas de función. Ver Glosario.
- Atributos
- class_weight_arreglo de forma (n_classes,)
Multiplicadores del parámetro C para cada clase. Calculado basado en el parámetro
class_weight
.- classes_arreglo de forma (n_classes,)
Las etiquetas de las clases.
- coef_ndarray de forma (n_classes * (n_classes - 1) / 2, n_features)
Ponderaciones asignadas a las características (coeficientes en el problema primario). Esto solo está disponible en el caso de un kernel lineal.
coef_
es una propiedad de solo lectura derivada dedual_coef_
ysupport_vectors_
.- dual_coef_ndarray de forma (n_classes -1, n_SV)
Coeficientes duales del vector de apoyo en la función de decisión (ver Formulación matemática), multiplicado por sus objetivos. Para la multiclase, coeficiente para todos los clasificadores 1-vs-1. El diseño de los coeficientes en el caso multiclase es algo no-trivial. Ver la sección multiclase del Manual de Usuario para más detalles.
- fit_status_entero
0 si se ajusta correctamente, 1 en caso contrario (producirá una advertencia)
- intercept_ndarray de forma (n_classes * (n_classes - 1) / 2,)
Constantes en la función de decisión.
- support_ndarray de forma (n_SV)
Indices de vectores de apoyo.
- support_vectors_ndarray de forma (n_SV, n_features)
Vectores de apoyo.
- n_support_ndarray de forma (n_classes,), dtype=int32
Número de vectores de soporte para cada clase.
- probA_ndarray de forma (n_classes * (n_classes - 1) / 2)
- probB_ndarray de forma (n_classes * (n_classes - 1) / 2)
Si
probability=True
, corresponde a los parámetros aprendidos en el escalado de Platt para producir estimados de probabilidad de los valores de decisión. Siprobability=False
, es un arreglo vacio. El escalado de Platt utiliza la función logistica1 / (1 + exp(decision_value * probA_ + probB_))
dondeprobA_
yprobB_
son aprendidos del conjunto de datos [2]. Para más información en el caso multiclase y el procedimiento de entrenamiento ver la sección 8 de [1].- shape_fit_tupla de int de la forma (n_dimensions_of_X,)
Dimensiones del arreglo del vector de entrenamiento
X
.
Ver también
Referencias
Ejemplos
>>> 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]
Métodos
Evalúa la función de decisión para las muestras en X.
Ajusta el modelo SVM de acuerdo a los datos de entrenamiento dados.
Obtiene los parámetros para este estimador.
Realiza la clasificación en las muestras en X.
Devuelve la precisión media en los datos y etiquetas de prueba dados.
Establece los parámetros de este estimador.
- decision_function()¶
Evalúa la función de decisión para las muestras en X.
- Parámetros
- Xarray-like de forma (n_samples_X, n_features)
- Devuelve
- Xndarray de forma (n_samples, n_classes * (n_classes-1) / 2)
Devuelve la función de decisión de la muestra para cada clase en el modelo. Si decision_function_shape=”ovr”, la forma es (n_samples, n_classes).
Notas
Si decision_function_shape=”ovo”, los valores de función son proporcionales a la distancia de las muestras X al hiperplano separador. Si las distancias exactas son requeridas, divida los valores de función por la norma del vector de ponderado (
coef_
). Ver también esta pregunta para más detalles. Si decision_function_shape=”ovr”, la función de decisión es una transformación monotónica de la función de decisión ovo.
- fit()¶
Ajusta el modelo SVM de acuerdo a los datos de entrenamiento dados.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features) o (n_samples, n_samples)
Vectores de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características. Para kernel=»precomputed», la forma esperada de X es (n_samples, n_samples).
- yarray-like de forma (n_samples,)
Valores objetivo (etiquetas de clase en clasificación, números reales en regresión).
- sample_weightarray-like de forma (n_samples,), default=None
Ponderados por muestra. Reescalado de C por muestra. Los ponderados más altos obligan al clasificador a poner más énfasis en estos puntos.
- Devuelve
- selfobject
Notas
Si X y y no son arreglos contiguos y C-ordenados de np.float64 y X no es un scipy.sparse.csr_matrix, X y/o y pueden ser copiados.
Si X es un arreglo denso, entonces los otros métodos no soportaran matrices dispersas como entrada.
- get_params()¶
Obtiene los parámetros para este estimador.
- Parámetros
- deepbooleano, default=True
Si es True, devolverá los parámetros para este estimador y los sub objetos contenidos que son estimadores.
- Devuelve
- paramsdict
Nombres de parámetros mapeados a sus valores.
- predict()¶
Realiza la clasificación en las muestras en X.
Para un modelo de una clase, se devuelve +1 o -1.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features) o (n_samples_test, n_samples_train)
Para kernel=»precomputed», la forma esperada de X es (n_samples_test, n_samples_train).
- Devuelve
- y_predndarray de forma (n_samples,)
Etiquetas de clase para las muestras en X.
- property predict_log_proba¶
Calcula las probabilidades log de los posibles resultados de las muestras en X.
El modelo necesita tener información de probabilidad calculada en el tiempo de entrenamiento: ajustar con el atributo
probabilidad
establecido como True.- Parámetros
- Xarray-like de forma (n_samples, n_features) o (n_samples_test, n_samples_train)
Para kernel=»precomputed», la forma esperada de X es (n_samples_test, n_samples_train).
- Devuelve
- Tndarray de forma (n_samples, n_classes)
Devuelve las probabilidades logarítmica de las muestras para cada clase del modelo. Las columnas corresponden a las clases ordenadas, tal y como aparecen en el atributo classes_.
Notas
El modelo de probabilidad es creado utilizando la validación cruzada, así que los resultados pueden ser ligeramente diferentes que aquellos obtenidos mediante predict. También producirá resultandos sin sentido en conjuntos de datos muy pequeños.
- property predict_proba¶
Calcula las probabilidades de los posibles resultados de las muestras en X.
El modelo necesita tener información de probabilidad calculada en el tiempo de entrenamiento: ajustar con el atributo
probabilidad
establecido como True.- Parámetros
- Xarray-like de forma (n_samples_X, n_features)
Para kernel=»precomputed», la forma esperada de X es (n_samples_test, n_samples_train).
- Devuelve
- Tndarray de forma (n_samples, n_classes)
Devuelve la probabilidad de las muestras para cada clase del modelo. Las columnas corresponden a las clases ordenadas, tal y como aparecen en el atributo classes_.
Notas
El modelo de probabilidad es creado utilizando la validación cruzada, así que los resultados pueden ser ligeramente diferentes que aquellos obtenidos mediante predict. También producirá resultandos sin sentido en conjuntos de datos muy pequeños.
- score()¶
Devuelve la precisión media en los datos y etiquetas de prueba dados.
En la clasificación multietiqueta, se trata de la precisión del subconjunto que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.
- Parámetros
- Xarray-like de forma (n_samples_X, n_features)
Muestras de prueba.
- yarray-like de forma (n_samples,) o (n_samples, n_outputs)
Etiquetas True para
X
.- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de la muestra.
- Devuelve
- scorede punto flotante (float)
Precisión media de
self.predict(X)
con respecto ay
.
- set_params()¶
Establece los parámetros de este estimador.
El método funciona tanto con estimadores simples como en objetos anidados (como
Pipeline
). Estos últimos tienen parámetros de la forma<component>__<parameter>
para que sea posible actualizar cada componente de un objeto anidado.- Parámetros
- **paramsdict
Parámetros del estimador.
- Devuelve
- selfinstancia del estimador
Instancia de estimador.