目录
1 核函数参数的选取
Kernel的参数我们上次就已经讲解过了:
机器学习Sklearn——核函数、核函数在不同数据集上的表现、核函数的优势和缺点_chelsea_tongtong的博客-CSDN博客
在知道如何选取核函数之外,我们还要观察一下除了Kernel以外的核函数相关的参数 ,对于线性核函数,kernel是唯一能影响他的参数,但是对于其他三种非线性核函数,他们还受到参数gamma ,degree,coef0的影响,其中多项式核函数受到三个参数的影响,而高斯径向基受到gamma的影响。
从核函数的公式来说,很难界定每个参数如何影响SVM。核函数本身不是单调的,所以我们想推导核函数的参数变化如何影响核函数从而影响预测函数,从而影响决策边界,是很困难的。
所以想探究这些参数变化如何影响核函数,可以用学习曲线或者网格搜索来帮助我们查找最佳参数组合。
我们此次依旧使用乳腺癌数据集。
1.1 rbf调节gamma——绘制学习曲线
score = []
gamma_range = np.logspace(-10,1,50) # 对数刻度上均匀间隔的数字,从-10到1取五十个等间隔的对数
for i in gamma_range:
clf = SVC(kernel='rbf', gamma=i, cache_size=1000).fit(x_train, y_train)
score.append(clf.score(x_test,y_test))
print(max(score), gamma_range[score.index(max(score))])
plt.plot(gam