LinearSVR实现了线性回归支持向量机,他是根据liblinear实现的,其函数原型为:
sklearn.svm.SVR(kernel='rbf', degree=3, gamma='auto', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1. skrinking=True, cache_size=200, verbose=False, max_iter=-1 )
参数说明:
C:一个浮点数,为惩罚项参数。
epsilon:一个浮点数,及参数epsilon的值
kernel:一个字符串,指定核系数;当其值为linear时,表示使用的是线性核;当值为poly,表示使用的是多项式核;当值为rbf(默认值)时,表示使用的是高斯核;值为sigmoid时表示的是正切函数核;为precomputed时表示提供了kernel matiix,或者提供了一个可调用的对象,该对象用于计算kernel martrix。
degree:一个整数,指定当核函数是多项式时,多项式的系数,对于其他类型的核函数,改参数无效。
gamma:一个浮点数,用于指定核函数是rbf、poly、sigmoid时,核函数的系数,如果为auto,则系数表示为1/n_features。
coef0:浮点数,用于指定和函数中的自由项。只有当核函数是poly和sigmoid时有效。
probability:布尔值,如果为True,则会进行概率估计,它必须在训练之前设置好,同时概率估计会拖慢运行速度。
shrinking:布尔值,如果为True,则使用启发式收缩(shrinking heuristic)。
tol:浮点数,指定终止迭代的阈值。
cache_size:浮点值,制定了kernel缓存的大小,单位为MB。
verbose:一个整数,表示是否开启verbose输出
max_iter:一个整数,指定最大的迭代次数。
属性说明:
support_:一个数组,形状为[n_SV],支持向量的下标。
support_vector:一个数组,形状为[n_SV, n_features],支持向量。
n_support:一个数组-like,形状为[n_class]。每个分类的支持向量个数。
dual_coef_:一个数组,形状为[n_class-1, n_SV],对偶问题中,在分类决策函数中每个支持向量的系数。
coef_:一个数组,形状为[n_class-1, n_features],原始问题中,每个特征的系数,只有在线性核中有效(该属性是一个只读属性,从dual_coef_和support_vectors中计算而来)。
intercept_:一个数组,形状为(n_samples, n_classes*(n_classes-1)/2),即决策函数中的常数项。
方法说明:
fit(x, y[,sample_weight]):训练模型。
predict(x):用模型进行预测,返回预测值
score(x,y[,sample_weight]):返回(x,y)上预测的准确率(测试分数不超过1,但是可能为负数(当预测效果太差的时候),score值越接近1,说明预测效果越好)。
代码实例(对应加载的数据可见上一节):
def test_linear_SVR(*data):