sklearn.svm.NuSVC

class sklearn.svm.NuSVC

Clasificación de Vector Nu-Apoyo.

Similar al SVC pero usa un parámetro para controlar el número de vectores de soporte.

La implementación se basa en libsvm.

Más información en el Manual de usuario.

Parámetros
nuflotante, default=0.5

Un límite superior en la fracción de errores de margen (ver el Manual de Usuario) y un límite inferior en la fracción de vectores de soporte. Debe estar en el intervalo (0, 1].

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 precalcular la matriz del núcleo.

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, y predict_proba podría ser inconsistente con predict. 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_weight{dict, “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 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_stateint, instancia RandomState o None, default=None

Controla la generación de números pseudo-aleatorios para barajear los datos para estimados de probabilidad. Ignorado cuando probability es Falso. Pase un int para salida reproducible a través de múltiples llamadas de función. Ver Glosario.

Atributos
class_weight_ndarray de forma (n_classes,)

Multiplicadores del parámetro C de cada clase. Calculado basado en el parámetro class_weight.

classes_ndarray de forma (n_classes,)

Etiquetas de clase únicas.

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 propiedad de solo lectura derivada de dual_coef_ y support_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 si el algoritmo no converge.

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.

fit_status_entero

0 si se ajusta correctamente, 1 si el algoritmo no converge.

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. Si probability=False, es un arreglo vacio. El escalado de Platt utiliza la función logistica 1 / (1 + exp(decision_value * probA_ + probB_)) donde probA_ y probB_ 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

SVC

Maquina de Vectores de Soporte para clasificación usando libsvm.

LinearSVC

Maquina de Vectores de Soporte escalable lineal para clasificación usando liblinear.

Referencias

1

LIBSVM: A Library for Support Vector Machines

2

Platt, John (1999). «Probabilistic outputs for support vector machines and comparison to regularizedlikelihood methods.»

Ejemplos

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

Métodos

decision_function

Evalúa la función de decisión para las muestras en X.

fit

Ajusta el modelo SVM de acuerdo a los datos de entrenamiento dados.

get_params

Obtiene los parámetros para este estimador.

predict

Realiza la clasificación en las muestras en X.

score

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

set_params

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, 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, 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 de prueba y las etiquetas 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, 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
scoreflotante

Precisión media de self.predict(X) con respecto a y.

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.

Ejemplos usando sklearn.svm.NuSVC