
76
|
第
2
章
数据点之间的距离由高斯核给出:
k
rbf
(
x
1
,
x
2
) = exp (
-
γ
‖
x
1
-
x
2
‖
2
)
这里
x
1
和
x
2
是数据点,
‖
x
1
-
x
2
‖
表示欧氏距离,
γ
(
gamma
)是控制高斯核宽度的参数。
图
2-41
是支持向量机对一个二维二分类数据集的训练结果。决策边界用黑色表示,支持向
量是尺寸较大的点。下列代码将在 forge 数据集上训练
SVM
并创建此图:
In[81]:
from sklearn.svm import SVC
X, y = mglearn.tools.make_handcrafted_dataset()
svm = SVC(kernel='rbf', C=10, gamma=0.1).fit(X, y)
mglearn.plots.plot_2d_separator(svm, X, eps=.5)
mglearn.discrete_scatter(X[:, 0], X[:, 1], y)
# 画出支持向量
sv = svm.support_vectors_
# 支持向量的类别标签由dual_coef_的正负号给出
sv_labels = svm.dual_coef_.ravel() > 0
mglearn.discrete_scatter(sv[:, 0], sv[:, 1], sv_labels, s=15, markeredgewidth=3)
plt.xlabel("Feature 0")
plt.ylabel("Feature 1")
图 2-41 ...