出现报错:coef_ is only available when using a linear kernel

svr = SVR(kernel='rbf', C=100, gamma=0.1)
svr.fit(X_train, y_train)

可以将此时调用的核函数 rbf 改为 linear ,如果只是想使用支持向量回归的话,改成如下形式。

svr = SVR(kernel='linear', C=100, gamma=0.1)
svr.fit(X_train, y_train)

当使用径向基(RBF)核函数时,支持向量回归(SVR)实际上是执行非线性回归。RBF核会将输入数据映射到高维空间中,然后在那里执行线性回归。

coef_属性表示线性回归模型中的系数。但是当使用RBF核时,SVR模型不是一个线性模型,所以 coef_不再可用。

换句话说,coef_只有在使用线性核函数时才存在,因为那时SVR才是一个线性回归模型。当使用非线性核如RBF时,SVR成为一个非线性模型,所以不存在线性回归的coef_。

所以如果在使用RBF核时访问coef_属性,就会出现你看到的错误信息。这不是一个bug,只是提醒你在非线性情况下coef_不再可用。

你可以使用SVR的support_vectors_和dual_coef_属性来代替coef_,它们包含了非线性SVR模型所需的信息。或者你也可以切换到一个线性核来使coef_可用。

支持向量回归(SVR)使用径向基函数(RBF)核和线性核,两者主要的区别如下:1. 原理不同- 线性核实现线性回归,通过超平面拟合数据。- RBF核实现非线性回归,通过核技巧隐射到高维空间进行非线性拟合。2. 灵活性不同- 线性核只能拟合线性模式,对复杂数据拟合效果较差。- RBF核可以拟合线性和复杂非线性模式,更加灵活。3. 参数不同- 线性核主要依赖超参数C来控制过拟合。- RBF核同时依赖超参数C和gamma来控制过拟合和核的宽度。4. 速度不同 - 线性核仅需矩阵运算,计算速度很快。- RBF核需要计算核矩阵,计算较慢。5. 使用场景不同- 线性核更适合线性可分的数据。- RBF核可处理线性和非线性数据,使用更广泛。综上,对于复杂度高的数据,RBF核更为强大和灵活,线性核对线性模式拟合效果较好且速度快。需根据数据特点选择合适的核函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值