Red de conocimiento de divisas - Preguntas y respuestas sobre viajes - Detalles de la prueba SVM

Detalles de la prueba SVM

¿Cuáles son los principios de SVM?

SVM es un modelo de clasificación de dos niveles. El modelo básico es encontrar un clasificador lineal en el espacio de características para separar el hiperplano con el margen más grande. (La mayor diferencia es que es diferente del perceptrón).

(1) Cuando las muestras de entrenamiento son linealmente separables, se aprende un clasificador lineal maximizando el intervalo estricto, es decir, un soporte linealmente separable. máquina de vectores;

(2) Cuando los datos de entrenamiento son aproximadamente linealmente separables, se introducen variables de holgura y se aprende un clasificador lineal maximizando el intervalo suave, es decir, una máquina de vectores de soporte lineal

(3) Al entrenar Cuando los datos son linealmente inseparables, se utilizan técnicas de kernel y maximización de intervalos suaves para aprender máquinas de vectores de soporte no lineales.

Nota: La derivación matemática del SVM anterior debería ser familiar: maximización de intervalo estricto (intervalo geométrico) - problema dual de aprendizaje - maximización de intervalo suave (introduciendo variables de holgura) - máquina de vectores de soporte no lineal (técnica del kernel) ).

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

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

El perceptrón utiliza la estrategia de clasificación errónea mínima para obtener el hiperplano de separación, pero existen infinitas soluciones en este momento.

Las máquinas de vectores de soporte linealmente separables obtienen el hiperplano de separación óptimo maximizando el intervalo. En este punto, la solución es única. Por otro lado, los resultados de clasificación producidos por el hiperplano separado en este momento son los más sólidos y tienen la mayor capacidad de generalización a muestras desconocidas.

Entonces deberíamos aprovechar esta oportunidad para explicar los intervalos geométricos, los intervalos de funciones y los intervalos de funciones de dependencia. Resuelva para w y b minimizando 1/2 ||| w || Ese es el origen del algoritmo de aprendizaje automático de vectores de soporte linealmente separables: el método de intervalo máximo.

¿Por qué el problema original de SVM debería transformarse en su problema dual?

En primer lugar, los problemas duales suelen ser más fáciles de resolver (cuando encontramos el punto óptimo en presencia de restricciones, aunque la existencia de restricciones reduce el alcance de la búsqueda, hace que el problema sea más complejo. Para hacer el problema es fácil de manejar, nuestro método es integrar la función objetivo y las restricciones en una nueva función, la función lagrangiana, y luego encontrar el punto óptimo a través de esta función)

En segundo lugar, se introduce naturalmente el kernel. función y luego generalizarla a problemas de clasificación no lineal.

¿Por qué SVM introduce la función del kernel?

Cuando la muestra es linealmente inseparable en el espacio original, la muestra se puede asignar desde el espacio original a un espacio de características de mayor dimensión, de modo que la muestra sea linealmente separable en el espacio de características.

Presentando el problema dual después del mapeo;

En el aprendizaje de la predicción, solo se define la función del núcleo K (x, y), pero la función de mapeo no está claramente definida. . Debido a que la dimensionalidad del espacio de características puede ser muy alta o incluso infinita, ¿cómo se puede calcular directamente? (incógnita)? (y) más difícil. Por el contrario, es más fácil calcular K(x,y) directamente (es decir, directamente en el espacio original de baja dimensión sin escribir explícitamente el resultado del mapeo).

La definición de la función del núcleo: k (x, y) = 1

Además de SVM, cualquier método que exprese el cálculo como un producto interno de puntos de datos se puede extender de forma no lineal por el método del núcleo.

¿Cuál es la fórmula específica de la función del kernel svm RBF?

La función de base radial gaussiana es una función kernel altamente localizada y su capacidad de extrapolación disminuye a medida que aumenta el parámetro σ.

Este núcleo asignará el espacio original a un espacio de dimensión infinita. Pero si σ se elige muy grande, el peso de las características de alto orden en realidad decae muy rápidamente, por lo que en realidad (aproximadamente numéricamente) es equivalente a un subespacio de baja dimensión; por el contrario, si σ se elige muy pequeño, puede poner cualquier El; los datos se asignan para que sean linealmente separables; por supuesto, esto no es necesariamente algo bueno, ya que puede ser un problema de sobreajuste muy grave. Sin embargo, en términos generales, al ajustar el parámetro σ, el núcleo gaussiano es en realidad bastante flexible y también es una de las funciones del núcleo más utilizadas.

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

Los datos faltantes aquí se refieren a datos de características faltantes y datos vectoriales incompletos. SVM no tiene una estrategia para lidiar con los valores faltantes (los árboles de decisión sí la 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. La falta de datos de características afectará la calidad de los resultados del entrenamiento.

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

Está implementado por sklearn. Utilice los parámetros establecidos por sklearn.svm.SVC. Esta función en sí también se implementa en base a libsvm (PD: el algoritmo para resolver problemas de programación cuadrática en libsvm es SMO).

El tiempo de entrenamiento de la función SVC aumenta con el cuadrado de las muestras de entrenamiento, por lo que no es adecuada para muestras superiores a 10.000.

Para problemas de clasificación múltiple, SVC utiliza un mecanismo de votación uno a uno, que requiere dos o más clases para establecer un clasificador, y 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=Ninguno, detallado=Falso, max_iter=-1, decision_function_shape=Ninguno, random_state=Ninguno)

Parámetros:

l? ¿Parámetro de penalización de C:C C:C-SVC? El valor predeterminado es 1,0.

Cuanto mayor sea C, el equivalente a penalizar 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 aumentará y el conjunto de entrenamiento tenderá a estar completamente emparejado, de esta manera, la precisión del conjunto de entrenamiento de prueba será alta. pero la capacidad de generalización será débil. Un valor c pequeño reduce la penalización por clasificación errónea, permite tolerancia a errores, los trata como puntos de ruido y tiene una gran capacidad de generalización.

Núcleo L: Función del kernel, el valor predeterminado es rbf, puede ser 'lineal', 'poly', 'RBF', 'sigmoid' y 'precomputed'.

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+ coef 0)

L grado: la dimensión de la función polinómica, el valor predeterminado es 3, ignorado al seleccionar otras funciones del kernel.

lGamma:? Parámetros de la función kernel para 'RBF', 'Poly' y 'Sigmoid'. El valor predeterminado es "auto", que seleccionará 1/n_features.

L coef0: el término constante de la función kernel. Útil para "poli" y "sigmoide".

l Probabilidad: ¿Se utiliza la estimación de probabilidad? . El valor predeterminado es Falso.

lShrink: si se utiliza la heurística de contracción, el valor predeterminado es verdadero.

L tol: valor de error para detener el entrenamiento; el valor predeterminado es 1e-3.

L cache_size: el tamaño de caché de la función del kernel, el valor predeterminado es 200.

L class_weight: El peso de la categoría, pasado en forma de diccionario. ¿Qué parámetro C se establece en peso * C (C en C-SVC)?

L detallado: ¿Permitir salida redundante?

L max_iter: Número máximo de iteraciones. -1 Sin límite.

l decision_function_shape: 'ovo', 'ovr' o Ninguno, valor predeterminado =None3

Llrandom_state: valor inicial al mezclar datos, valor int.

Los principales parámetros de ajuste son: c, kernel, grado, gamma, coef0.

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

Generalmente existen dos métodos: uno es el método directo, que modifica directamente la función objetivo y combina las soluciones de parámetros de múltiples superficies de clasificación en un problema de optimización. Parece simple, pero requiere mucho cálculo.

Otro método es el método indirecto: combinar entrenadores. Los típicos son uno a uno y uno a muchos.

Uno a muchos, es decir, se entrena un clasificador para cada clase. SVM es una clasificación binaria, por lo que los dos clasificadores se configuran en una clase de la clase objetivo y las otras clases se configuran. a la otra clase. De esta forma, se pueden entrenar clasificadores K para clases K. Cuando llegue una nueva muestra, utilice estos clasificadores K para probarla. ¿Qué clasificador tiene una alta probabilidad y luego a qué clase pertenece esta muestra? Este método no es muy eficaz y tiene un gran sesgo.

El método uno a uno de Svm entrena un clasificador para dos clases cualesquiera. Si hay K clases y se ha entrenado un total de clasificadores C (2, K), cuando llegue una nueva muestra, ¿se utilizará este C (2, K)? Se utiliza un clasificador para realizar la prueba. Cada vez que se considera que pertenece a una determinada categoría, la categoría se incrementa en uno y la categoría con más votos se identifica como la categoría de la muestra.

上篇: Un pequeño problema en el modelado matemático 下篇: ¿De qué álbum es "mr.simple" de superjunior?
Artículos populares