岭参数\正则化参数的选取方法

背景

在最小二乘解不稳定的情况下,利用岭估计解决类似L = A*X-e的观测方程,A的阶数为m*n(m>=n,rank(A) = n),cond(A'A)数量级较大

估计准则由||AX-L||^{2}=min转为||AX-L||^{2}+\alpha ||X||^{2}=min

其中\alpha为岭参数,目前常用岭参数确定方法包括岭迹法、L曲线法、GCV法、最小均方误差法。

1、岭迹法

通过取不同的岭参数,根据式X = (A'PA+\alpha *I)^{-1}A'PL得到对应的岭估计值,画出(a,X(i))的函数图像(i = 1,2……m),使得任一X(i)都趋于稳定的a值即为岭参数。这样的选取方法具有随意性,受人为影响较大。

2、L-Curve

由Hansen提出,在岭估计的准则||AX-L||p^2+a*||X||p^2 = min中,残差范数与解范数可以看作关于a的函数。在关于(||AX- L||,||X||)的图像中,曲率最大值点即为岭参数。在实际求解中,通常取对数n = lg(||AX- L||^2),p = lg(||X||^2),n',n'',p',p''分别为n,p关于a的一阶与二阶导数,则有:

\alpha = max(2*\frac{n'*p''-p'*n''}{(n'^{2}+p'^{2})^{3/2}})

根据L曲线取得的岭参数并非最优解,只是近似最优。

 3、GCV(generalized cross validation)

GCV确定正则化参数的理论依据为使验后单位权中误差最小,即最大程度信任观测值。由此构造出GCV函数,当GCV函数取得最小值时,对应的a即为岭参数。GCV函数如下:

GCV=\frac{\frac{1}{n}||L-H(\alpha )L||}{(\frac{1}{n}Trace(I-H(\alpha )))^{2}}

 其中:H(\alpha )=A(A'A+\alpha I)^{-1}A'

 当GCV函数最小值存在时,GCV函数能取得最优岭参数,但当函数单调递减(虽然收敛,但只能取得所设置的边界值),并不能取得最优岭参数。

4、最小均方误差法(minimum mean square error)

当方程病态时,方差基本已不能形容解的精确度,此时提出一个评价指标MSE(mean square error)对解的精度确度进行评估。

MSE\left ( \hat{x} \right ) = E\left ( {\left ( \hat{x}-\bar{x} \right )}' \cdot\left ( \hat{x}-\bar{x} \right ) \right )

均方误差与方差的关系式如下:

MSE\left ( \hat{x} \right ) = trace(D\left (\hat{ x} \right ))+b_{\hat{x}}^{'}\cdot b_{\hat{x}}

b_{\hat{x}} = E\left ( \hat{x} \right )-\bar{x}

显然,当仍采用最小二乘时,未知参数的期望就是其真值,偏差bx为0,均方误差即等于方差取迹(此时偏差虽为0,但方差极大)。但采用岭估计时,此时解有偏,bx不为0。对均方误差的描述如上,以下介绍通过均方误差最小确定正则化的思路。

(1)由于未知参数真值未知,用其近似值代替。先设一个初始正则化参数a,也可由前面几种方法得到,得到一个未知参数估值。

(2)再令正则化参数为0~1(范围根据病态程度确定,不一定为0~1)。步长h根据所需精度设置。以第一步得到的近似解代替真值,求出正则化参数为0:h:1时的均方误差。

(3)得到均方误差最小时对应的参数amin,再令a = amin。

(4)重复步骤(1)~(3)。直至满足

\left |a-amin \right |<\sigma或者\left |minMSE \right |<\lambda

其中σ与λ是人为设置的迭代终止条件。

经上述步骤即可得到由均方误差最小法对应的正则化参数。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Python中,可以使用交叉验证来选择最佳的正则化参数。交叉验证是一种评估统计分析模型的方法,它可以通过将数据集分成训练集和测试集来进行模型选择。在交叉验证中,我们可以使用不同的正则化参数来训练模型,并在测试集上评估模型的性能。通过比较不同正则化参数下的模型性能,我们可以选择最佳的正则化参数。 具体来说,可以使用Python中的sklearn库中的GridSearchCV函数来进行交叉验证。GridSearchCV函数可以帮助我们在指定的参数范围内搜索最佳的正则化参数。例如,对于回归模型,可以使用以下代码来选择最佳的正则化参数: ``` from sklearn.linear_model import Ridge from sklearn.model_selection import GridSearchCV # 定义回归模型 ridge = Ridge() # 定义正则化参数的范围 param_range = [0.001, 0.01, 0.1, 1, 10, 100, 1000] # 定义参数网格 param_grid = [{'alpha': param_range}] # 定义交叉验证对象 gs = GridSearchCV(estimator=ridge, param_grid=param_grid, scoring='neg_mean_squared_error', cv=10) # 训练模型 gs.fit(X_train, y_train) # 输出最佳的正则化参数 print(gs.best_params_) ``` 在上面的代码中,我们首先定义了一个回归模型,然后定义了正则化参数的范围和参数网格。接下来,我们定义了一个交叉验证对象,并使用GridSearchCV函数在指定的参数范围内搜索最佳的正则化参数。最后,我们输出了最佳的正则化参数

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值