Red de conocimiento informático - Problemas con los teléfonos móviles - Preguntas frecuentes sobre SVM

Preguntas frecuentes sobre SVM

¿Cuál es el principio de SVM?

SVM es un modelo de clasificación de dos clases. Su modelo básico es un clasificador lineal que encuentra el hiperplano de separación que maximiza el intervalo en el espacio de características. (La maximización del intervalo es la diferencia entre este y el perceptrón)

(1) Cuando las muestras de entrenamiento son linealmente separables, el clasificador lineal se aprende mediante la maximización estricta del intervalo, es decir, una máquina de vectores de soporte linealmente separable;

(2) Cuando los datos de entrenamiento son aproximadamente linealmente separables, introduzca variables de holgura y aprenda un clasificador lineal, es decir, una máquina de vectores de soporte lineal.

(3) Cuando los datos de entrenamiento aprenden máquinas de vectores de soporte no lineales que utilizan trucos del kernel y maximización suave de intervalos cuando son linealmente inseparables.

Nota: La derivación matemática de cada una de las SVM anteriores debería resultarle familiar: maximización de intervalo estricto (intervalo geométrico) - problema binario de aprendizaje - maximización de intervalo suave (introducción de variables de holgura) - máquinas de vectores de soporte no lineales (truco del núcleo).

¿Por qué SVM utiliza la maximización de intervalos?

Cuando los datos de entrenamiento son linealmente separables, existen innumerables hiperplanos de separación que pueden separar correctamente los dos tipos de datos.

El perceptrón utiliza una estrategia de minimización de clasificación errónea para encontrar el hiperplano de separación, aunque hay infinitas soluciones.

Las máquinas de vectores de soporte linealmente separables utilizan la maximización de intervalos para encontrar el mejor hiperplano de separación, donde la solución es única. Por otro lado, el hiperplano de separación en este momento produce los resultados de clasificación más sólidos y tiene la mejor capacidad de generalización a instancias desconocidas.

Entonces, deberíamos usar este punto para explicar el origen del espaciado geométrico, el espaciado funcional y el método de espaciado máximo--> Minimizar 1/2 ||w||^2 al resolver w y b, es decir , Método de margen máximo del algoritmo de aprendizaje automático de vectores de soporte separables lineales.

¿Por qué convertir el problema original de resolver SVM en su problema dual?

En primer lugar, los problemas duales tienden a ser más fáciles de resolver (cuando buscamos el punto óptimo en presencia de restricciones, la presencia de restricciones reducirá el rango de búsqueda requerido, pero hará que el problema sea más complejo. Para facilitar la resolución del problema, nuestro método consiste en incorporar la función objetivo y las restricciones en una nueva función, a saber, la función lagrangiana, y luego buscar el punto óptimo a través de esta función.

En segundo lugar, es natural introducir funciones del núcleo, que a su vez pueden extenderse a problemas de clasificación no lineal.

¿Por qué SVM introduce funciones del núcleo

cuando las muestras son linealmente inseparables en el espacio original? Cuando, la muestra se puede asignar desde el espacio original a un espacio de características de mayor dimensión, haciendo que la muestra sea linealmente separable en este espacio de características

Presentamos el problema de coincidencia después del mapeo:

Al aprender a predecir, defina solo la función central K (x, y) sin definir explícitamente la función de mapeo ? Dado que la dimensión del espacio de características puede ser alta o incluso infinita, calcular directamente ? (x) - (y) es Muy. Por el contrario, es más fácil calcular K (x, y) directamente (es decir, calcularlo directamente en el espacio original de baja dimensión sin escribir explícitamente el resultado mapeado). K ( x , y ) = < ? ( x ), ? ( y ) >, es decir, el producto interno en el espacio de características es igual al resultado de su cálculo a través de la función nuclear K en el espacio muestral original

< p. > Excepto SVM, cualquier método que exprese el resultado del cálculo como un producto interno de puntos de datos se puede extender de forma no lineal utilizando el método del núcleo

¿Cuál es la fórmula precisa de la función del núcleo SVM RBF? p>

Por otro lado, la función de base radial gaussiana es una función central altamente localizada cuya capacidad de extrapolación disminuye a medida que aumenta el parámetro σ

Este núcleo asigna el espacio original a un espacio de dimensión infinita. Sin embargo, si se elige que σ sea grande, los pesos de las características superiores en realidad decaerán rápidamente, por lo que en realidad corresponde (numéricamente aproximadamente) a un subespacio de baja dimensión, por el contrario, si se elige que σ sea pequeño, es posible. mapear datos arbitrarios en datos linealmente separables; por supuesto, esto no es necesariamente algo bueno, porque causará un problema de sobreajuste muy grave. Pero en general, al ajustar el parámetro σ, el núcleo es realmente muy flexible y uno. de las funciones del kernel más utilizadas.

¿Por qué SVM es sensible a los datos faltantes?

Los llamados datos faltantes significan que faltan algunos datos característicos y los datos vectoriales están incompletos; SVM no tiene una estrategia para manejar los valores faltantes (los árboles de decisión sí los tienen). SVM espera que las muestras sean linealmente separables en el espacio de características, por lo que la calidad del espacio de características es muy importante para el rendimiento de SVM. Los datos de funciones faltantes afectarán la calidad de los resultados del entrenamiento.

¿Qué biblioteca utiliza SVM y qué parámetros se pueden ajustar para SVM en Sklearn/libsvm?

Usando sklearn. Utilice sklearn.svm para configurar los parámetros. La función en sí también se implementa en base a libsvm (nota: el algoritmo para resolver problemas de programación secundaria en libsvm es SMO).

El tiempo de entrenamiento de la función SVC crece con el cuadrado de las muestras de entrenamiento, por lo que no es adecuado para más de 10000 muestras.

Para problemas de clasificación múltiple, SVC utiliza un mecanismo de votación uno a uno, que requiere una clasificación por pares para construir un clasificador, por lo que el tiempo de entrenamiento puede ser mayor.

sklearn.svm.SVC( C=1.0 , kernel='rbf' , grado=3 , gamma='auto' , coef0=0.0 , reducción=Verdadero , probabilidad=Falso , tol=0.001 , tamaño_caché = 200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=None, random_state=None)

Parámetros:

l?C: Parámetro de penalización de C-SVC , C? El valor predeterminado es 1.0

Cuanto mayor sea C, equivale a una penalización por la variable de holgura. Se espera que la variable de holgura esté cerca de 0, es decir, la penalización por clasificación errónea. aumenta, tendiendo al par de casos de puntuación completa del conjunto de entrenamiento, por lo que la precisión es alta cuando se prueba en el conjunto de entrenamiento, pero la capacidad de generalización es débil. Cuanto menor sea el valor C, menor será la penalización por clasificación errónea, lo que permitirá la tolerancia a fallos, lo tratará como un punto de ruido y mayor será la capacidad de generalización. sigmoide', 'precalculado'

0 - lineal: u'v

1 - polinomio: (gamma* u'*v + coef0)^grado

2 - Función RBF: exp(-gamma|u-v|^2)

3 - sigmoide: tanh(gamma*u'*v + coef0)

l grado: función polinómica de polígono La dimensión de , que por defecto es 3, se ignorará al seleccionar otras funciones del kernel.

l gamma: Parámetros de función kernel de "?rbf", "poly" y "sigmoid". El valor predeterminado es "auto", es decir, se selecciona 1/n_features.

l coef0: función del núcleo Término constante Se aplica a "poli" y "sigmoide"

l probabilidad: ¿se debe usar la estimación de probabilidad? El valor predeterminado es Falso

l contracción: si se debe usar la contracción. heurístico, predeterminado es verdadero

l tol: el valor de error para detener el entrenamiento, el valor predeterminado es 1e-3

l cache_size: el tamaño de la memoria caché de la función del núcleo, el valor predeterminado es. 200

l class_weight: el peso de la clase, pasado en forma de diccionario. Establezca el parámetro C de la primera clase en peso*C (C en C-SVC)

l detallado: ¿Permitir salida redundante?

l max_iter: El número máximo de iteraciones -1 es ilimitado.

l decision_function_shape: 'ovo', 'ovr' o Ninguno, default=None3

l random_ state: valor inicial al barajar datos, valor int

El Los principales parámetros que deben ajustarse son C, núcleo, grado, gamma y coef0.

¿Cómo maneja SVM los problemas de clasificación múltiple?

Por lo general, existen dos métodos: uno es el método directo, que modifica directamente la función objetivo y fusiona las soluciones de parámetros de múltiples superficies de clasificación en un problema de optimización. Este método parece simple, pero requiere mucha computación.

Otro método es el método indirecto: combinación de entrenadores. Normalmente, este método se divide en dos tipos: uno a uno y uno a muchos.

Uno a muchos es entrenar un clasificador para cada clase. Es una clasificación binaria a través de svm, por lo que las dos clases del clasificador establecen una clase como la clase objetivo y las clases restantes como otra clase. . De esta manera, se pueden entrenar k clasificadores para k clases. Cuando llega una nueva muestra, estos k clasificadores se utilizan para probar. Si la probabilidad del clasificador es alta, entonces a qué clase pertenece la muestra. Este método no es muy eficaz y tiene grandes desviaciones.

método svm uno contra uno (uno contra uno), entrene un clasificador para dos clases cualesquiera, si hay k clases, entrene un clasificador **** C (2, k), de modo que cuando llegue una nueva muestra, este clasificador C(2,k)? Siempre que se determine que pertenece a una determinada clase, se agrega una clase y finalmente la clase con más votos se identifica como The. clase de la muestra.