Spark-ml LinearRegression

 

参数说明:

参数elasticNetParam:

        取值范围[0,1], 取值1用的是L1正则化,取值0用的是L2正则化,否则取值是elasticNet正则化,源码如下:

// LinearRegression的train方法中

val effectiveL1RegParam = $(elasticNetParam) * effectiveRegParam
val effectiveL2RegParam = (1.0 - $(elasticNetParam)) * effectiveRegParam

参数loss:使用square error还是huber

// default是SquaredError,可以设置为Huber
def setLoss(value: String): this.type = set(loss, value)
setDefault(loss -> SquaredError)

补充:

  • 线性回归,是利用回归方程(函数)一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式:\bar{y} = WX+b,其优化的目标是最小化损失函数,

  • 可以用mean square error 均方误差(MSE)L= min MSE = min(\frac{1}{2n}\sum_{i=1}^{n} (\omega ^{i}x^i - y^i))^2,引入正则项,为防止过拟合,一般需要加入正则项,有三种:

    • L1正则项,此时线性回归又叫Lasso回归L= min(MSE + \alpha\sum_{j=1}^{n}\left \| \omega ^j \right \|)
    • L2正则项,此时线性回归又叫岭回归L=min(MSE+\alpha\sum_{j=1}^{n}\left \| \omega ^{j} \right \| ^2)
    • elastic Net 弹性网络,是在岭回归和Lasso回归中进行了折中,通过混合比 elasticNetParam :L = min(MSE + \lambda (\frac{1-\alpha }{\alpha }\left \| \omega\right \|^2+\alpha \left \| \omega \right \|)) = \min_{w}\frac{1}{2n}{\sum_{i=1}^n(X_{i}w - y_{i})^{2} + \lambda\left[\frac{1-\alpha}{2}{||w||_{2}}^{2} + \alpha{||w||_{1}}\right]}
  • 也可以用 Huber,方程是:\min_{w, \sigma}\frac{1}{2n}{\sum_{i=1}^n\left(\sigma + H_m\left(\frac{X_{i}w - y_{i}}{\sigma}\right)\sigma\right) + \frac{1}{2}\lambda {||w||_2}^2},其中:H_m(z) = \begin{cases} z^2, & \text {if } |z| < \epsilon, \\ 2\epsilon|z| - \epsilon^2, & \text{otherwise} \end{cases}
    • Fitting with huber loss only supports none and L2 regularization. 只支持L2正则。
  •  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值