I am using SKLearn to run SVC on my data.
from sklearn import svm
svc = svm.SVC(kernel='linear', C=C).fit(X, y)
I want to know how I can get the distance of each data point in X from the decision boundary?
For linear kernel, the decision boundary is y = w * x + b, the distance from point x to the decision boundary is y/||w||.
y = svc.decision_function(x)
w_norm = np.linalg.norm(svc.coef_)
dist = y / w_norm
For non-linear kernels, there is no way to get the absolute distance. But you can still use the result of decision_funcion
as relative distance.