gpt4 book ai didi

matlab - 为什么当 lambda 为负时岭回归可以最小化测试成本

转载 作者:行者123 更新时间:2023-11-30 08:44:20 25 4
gpt4 key购买 nike

我正在使用岭回归处理一组数据。当将学习到的函数应用于数据时,我发现了一个非常有趣的现象。即当岭参数从零开始增大时,测试误差不断增大。但如果我们惩罚小系数(设置参数<0),测试误差甚至可以更小。

这是我的 matlab 代码:

for i = 1:100
beta = ridgePolyRegression(ty_train,tX_train,lambda(i));
sqridge_train_cost(i) = computePolyCostMSE(ty_train,tX_train,beta);
sqridge_test_cost(i) = computePolyCostMSE(ty_valid,tX_valid,beta);
end
plot(lambda,sqridge_test_cost,'color','b');

lambda 是岭参数。 ty_train是训练数据的输出,tX_train是训练数据的输入。此外,我们在这里使用二次函数回归。

function [ beta ] = ridgePolyRegression( y,tX,lambda )
X = tX(:,2:size(tX,2));
tX2 = [tX,X.^2];
beta = (tX2'*tX2 + lambda * eye(size(tX2,2))) \ (tX2'*y);
end

绘制的图片为:plot

为什么当 lambda 为负数时误差最小?这是拟合不足的迹象吗?

最佳答案

您不应使用负 lambda。

从(概率)理论的角度来看,lambda与参数先验分布的方差的倒数有关,并且方差不能为负。

从计算的角度来看,它可以(假设小于协方差矩阵的最小特征值)将正定形式转变为不定形式,这意味着您将没有最大值,而是有一个鞍点。这也意味着在某些点上,您的目标函数可以像您想要的一样小(或一样大),因此您可以无限期地减少损失,并且根本不存在最小值/最大值。

你的优化算法只给你一个驻点,当且仅当形式是正定的时,它才是全局最大值。

关于matlab - 为什么当 lambda 为负时岭回归可以最小化测试成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com