我正在研究SVM,我想找到数据点到超平面的实际距离,这样我就可以尝试选择最接近超平面的点并训练分类器并比较结果 . 在浏览了多篇文章,博客和视频之后,我看到了最相关的文章(下面的链接),但在其中一篇文章中说它无法找到非线性边界的实际距离,正如最后一节所述,有可能的 . 此外,以前我遵循文档并依赖于classifier.decision_function(X),但似乎甚至不准确 . 任何形式的指导都会非常有用 .

SKLearn: Getting distance of each point from decision boundary?

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Dataset = pd.read_csv(r'Ads.csv')
X = Dataset.iloc[:, 2:-1].values

#dependent variable is a categorical variable
y = Dataset.iloc[:, -1].values

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test =train_test_split(X,y,test_size=0.2,random_state=0)
from sklearn.preprocessing import StandardScaler
X_scaler = StandardScaler()
X_train = X_scaler.fit_transform(X_train)
X_test = X_scaler.transform(X_test)
from sklearn.svm import SVC
Classifier = SVC(kernel='linear',  random_state=0)
#Classifier = SVC(kernel='rbf', random_state=0)
Classifier.fit(X_train, y_train)
Distance_points2plane = Classifier.decision_function(X_train)