我尝试拟合一个明显的 5 次多项式函数。令我绝望sklearn
的是,直接拒绝匹配多项式,而是输出一个类似 0 度的函数。
这是代码。您只需要知道这sp_tr
是一个m
特征n
矩阵n
,我将第一列 ( i_x
) 作为输入数据,将第二列 ( )i_y
作为输出数据。
x_min = sp_tr[:,i_x].min()
x_max = sp_tr[:,i_x].max()
xs = numpy.arange( x_min, x_max, (x_max - x_min)/100 )
sp_clf = SVR( degree=5 )
sp_clf.fit( sp_tr[:,[i_x]], sp_tr[:,i_y] )
ys = sp_clf.predict( numpy.transpose([xs]) )
然后我将 xs、ys 绘制为红线,并将从蓝点 ( sp_tr[:,i_x]
to sp_tr[:,i_y]
) 中学到的数据绘制出来。这是我得到的结果,首先是核脊方法,其次是 SVR。
发生了什么 ?SVR 和 Kernel Ridge 怎么会如此错误地相信这种关系是恒定的?可以做些什么来获得更令人满意的东西?谢谢你的帮助。