Я использую классификатор опорных векторов из sklearn (в Python), чтобы найти оптимальную границу между набором данных, помеченных цифрами «0» и «1».
См .: https://scikit -learn.org / stable / modules / Генерируемый / sklearn.svm.SVC.html
Однако я хочу выполнить некоторый анализ после поворота данных о граничной линии, и поэтому мне нужно вернуть свойства, которые позволят мне определить линию, с которой нужно начинать.
Я выполняю SVC следующим образом:
Соответствующий импорт:
from sklearn import svm
import numpy as np
import matplotlib.pyplot as plt
Я определяю классификатор как:
clf = svm.SVC(kernel='linear',C = 1e-3 ,class_weight='balanced')
Что затем соответствует данным тренировки:
clf.fit(f_train, labels_train)
После чего линейную границу класса можно просмотреть с помощью:
plt.figure()
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()
xx = np.linspace(xlim[0], xlim[1], 30)
yy = np.linspace(ylim[0], ylim[1], 30)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel()]).T
Z = clf.decision_function(xy).reshape(XX.shape)
ax.contour(XX, YY, Z, colors='k', levels=[-1, 0, 1], alpha=0.5,
linestyles=['--', '-', '--'])
Как видно из: https://scikit -learn.org / stable / auto_examples / svm / plot_separating_hyperplane.html
Но при звонке:
clf.support_vectors_.shape
Я не уверен, как интерпретировать выходные данные как релевантные, если пытаюсь описать линейную границу, поскольку выходные данные имеют форму (4485, 2)
Будем весьма благодарны за любую помощь в возврате чего-либо, что позволит мне определить границу!