GOOGLE ADS

lunes, 2 de mayo de 2022

SKLearn: ¿Obtener la distancia de cada punto desde el límite de decisión?

Estoy usando SKLearn para ejecutar SVC en mis datos.

from sklearn import svm
svc = svm.SVC(kernel='linear', C=C).fit(X, y)

Quiero saber cómo puedo obtener la distancia de cada punto de datos en X desde el límite de decisión.


Solución del problema

Resulta que estoy haciendo la tarea 1 de un curso llamado Técnicas de aprendizaje automático. Y sucede que hay un problema sobre la distancia del punto al hiperplano incluso para el núcleo RBF.

Primero sabemos que SVM es encontrar un w "óptimo" para un hiperplano wx + b = 0.

Y el hecho es que

w = \sum_{i} \alpha_i \phi(x_i)

donde esos x son los llamados vectores de soporte y esos alfa son coeficientes de ellos. Tenga en cuenta que hay un phi() fuera de la x; es la función de transformación que transforma x en un espacio de dimensión alta (para RBF, es una dimensión infinita). Y sabemos que

[\phi(x_1)\phi(x_2) = K(x_1, x_2)][2]

para que podamos calcular

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

entonces podemos obtener w. Por lo tanto, la distancia que desea debe ser

svc.decision_function(x) / w_norm

donde w_norm es la norma calculada anteriormente.

(StackOverflow no me permite publicar más de 2 enlaces, así que renderice el látex usted mismo, bah).

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...