Las máquinas de vectores de soporte (SVM) son un potente algoritmo de aprendizaje supervisado que se utiliza para tareas de clasificación y regresión. El objetivo principal de una SVM es encontrar el hiperplano óptimo que separe mejor los puntos de datos de diferentes clases en un espacio de alta dimensión. La clasificación de un conjunto de características en SVM está profundamente ligada a la función de decisión, particularmente a su signo, que juega un papel importante a la hora de determinar en qué lado del hiperplano cae un punto de datos determinado.
Función de decisión en SVM
La función de decisión para una SVM se puede expresar como:
dónde:
– es el vector de peso que define la orientación del hiperplano.
– es el vector de características del punto de datos que se está clasificando.
– es el término de sesgo que desplaza el hiperplano.
Para clasificar un punto de datos , se utiliza el signo de la función de decisión:
Este signo determina el lado del hiperplano en el que se encuentra el punto de datos.
Papel de la clasificación de inicio de sesión
El signo de la función de decisión () determina directamente la etiqueta de clase asignada al punto de datos
. Así es como funciona:
1. Signo positivo: Si , el signo de la función de decisión es positivo. Esto significa que el punto de datos
se encuentra en el lado del hiperplano donde se encuentra la clase positiva. Por lo tanto,
se clasifica como perteneciente a la clase positiva (generalmente denotada como +1).
2. Signo negativo: Si , el signo de la función de decisión es negativo. Esto indica que el punto de datos
se encuentra en el lado del hiperplano donde se encuentra la clase negativa. Por eso,
se clasifica como perteneciente a la clase negativa (generalmente denotada como -1).
3. Cero: En el raro caso de que , el punto de datos
se encuentra exactamente en el hiperplano. Este escenario es teóricamente posible pero prácticamente raro debido a la naturaleza continua de los datos de valor real.
Interpretación geométrica
La interpretación geométrica de la función de decisión es esencial para comprender cómo las SVM clasifican los puntos de datos. El hiperplano definido por actúa como límite de decisión entre las dos clases. La orientación y posición de este hiperplano están determinadas por el vector de peso.
y el término de sesgo
.
1. Margen: El margen es la distancia entre el hiperplano y los puntos de datos más cercanos de cada clase. SVM pretende maximizar este margen para garantizar que el hiperplano no sólo separe las clases sino que lo haga a la mayor distancia posible de los puntos de datos más cercanos. Estos puntos de datos más cercanos se conocen como vectores de soporte.
2. Vectores de apoyo: Los vectores de soporte son los puntos de datos más cercanos al hiperplano. Son fundamentales para definir la posición y orientación del hiperplano. Cualquier cambio en la posición de estos vectores de soporte alteraría el hiperplano.
Ejemplo
Considere un ejemplo simple en el que tenemos un espacio de características bidimensional con puntos de datos de dos clases. Denotemos la clase positiva con +1 y la clase negativa con -1. Supongamos que el vector de peso y el término de sesgo
.
Para un punto de datos , podemos calcular la función de decisión de la siguiente manera:
Since , el signo de la función de decisión es positivo y, por tanto, el punto de datos
se clasifica como perteneciente a la clase positiva (+1).
Para otro punto de datos , calculamos la función de decisión como:
Una vez más, , entonces el signo es positivo, y
se clasifica como perteneciente a la clase positiva (+1).
Ahora, considere un punto de datos :
En este caso, , entonces el signo es negativo, y
se clasifica como perteneciente a la clase negativa (-1).
Formulación matemática
La formulación matemática de SVM implica resolver un problema de optimización para encontrar el óptimo. y
que maximizan el margen mientras clasifican correctamente los datos de entrenamiento. El problema de optimización se puede expresar como:
donde es la etiqueta de clase del punto de datos
, y la restricción garantiza que todos los puntos de datos estén clasificados correctamente con un margen de al menos 1.
Truco del núcleo
En muchas aplicaciones prácticas, es posible que los datos no se puedan separar linealmente en el espacio de características original. Para solucionar esto, las SVM se pueden ampliar a una clasificación no lineal utilizando el truco del kernel. Una función del núcleo implícitamente asigna los datos a un espacio de dimensiones superiores donde es posible una separación lineal. Las funciones del núcleo comúnmente utilizadas incluyen el núcleo polinómico, el núcleo de función de base radial (RBF) y el núcleo sigmoide.
La función de decisión en la SVM kernelizada se convierte en:
donde son los multiplicadores de Lagrange obtenidos de la forma dual del problema de optimización.
Implementación de Python
En Python, la biblioteca `scikit-learn` proporciona una implementación sencilla de SVM a través de la clase `SVC`. A continuación se muestra un ejemplo de cómo utilizar `SVC` para clasificar un conjunto de datos:
python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # Load the dataset iris = datasets.load_iris() X = iris.data y = iris.target # Select only two classes for binary classification X = X[y != 2] y = y[y != 2] # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Create an SVM classifier with a linear kernel clf = SVC(kernel='linear') # Train the classifier clf.fit(X_train, y_train) # Predict the class labels for the test set y_pred = clf.predict(X_test) # Calculate the accuracy of the classifier accuracy = accuracy_score(y_test, y_pred) print(f'Accuracy: {accuracy * 100:.2f}%')
En este ejemplo, la clase `SVC` se utiliza para crear un clasificador SVM con un núcleo lineal. El clasificador se entrena en el conjunto de entrenamiento y la precisión se evalúa en el conjunto de prueba. La clasificación de un conjunto de características en SVM depende fundamentalmente del signo de la función de decisión. . El signo determina en qué lado del hiperplano se encuentra un punto de datos, asignándolo así a la clase correspondiente. La función de decisión, el proceso de optimización para encontrar el hiperplano óptimo y el uso potencial de funciones del núcleo para manejar la separabilidad no lineal son componentes importantes de las SVM. Comprender estos aspectos proporciona una visión integral de cómo funcionan las SVM y su aplicación en diversas tareas de aprendizaje automático.
Otras preguntas y respuestas recientes sobre Aprendizaje automático EITC/AI/MLP con Python:
- ¿Cómo se calcula el parámetro b en la regresión lineal (la intersección y de la línea de mejor ajuste)?
- ¿Qué papel juegan los vectores de soporte en la definición del límite de decisión de una SVM y cómo se identifican durante el proceso de capacitación?
- En el contexto de la optimización SVM, ¿cuál es el significado del vector de peso "w" y el sesgo "b" y cómo se determinan?
- ¿Cuál es el propósito del método "visualizar" en una implementación SVM y cómo ayuda a comprender el rendimiento del modelo?
- ¿Cómo determina el método "predecir" en una implementación SVM la clasificación de un nuevo punto de datos?
- ¿Cuál es el objetivo principal de una máquina de vectores de soporte (SVM) en el contexto del aprendizaje automático?
- ¿Cómo se pueden utilizar bibliotecas como scikit-learn para implementar la clasificación SVM en Python y cuáles son las funciones clave involucradas?
- Explique la importancia de la restricción (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) en la optimización SVM.
- ¿Cuál es el objetivo del problema de optimización SVM y cómo se formula matemáticamente?
- ¿Cuál es el papel de la ecuación del hiperplano (mathbf{x} cdot mathbf{w} + b = 0) en el contexto de las máquinas de vectores de soporte (SVM)?
Vea más preguntas y respuestas en EITC/AI/MLP Aprendizaje automático con Python