吴恩达机器学习练习五

 

1.     线性回归正则化的代价函数和梯度计算

 

predictions = X*theta;

sigma=predictions-y;

J= sigma'*sigma/(2*m);

J=J+lambda*(theta(2:end)'*theta(2:end))/(2*m);

grad=(predictions-y)'*X./m;

grad(2:end)=grad(2:end)'+lambda.*theta(2:end)./m;

%=========================================================================

grad = grad(:);

 

2.     学习曲线:

for i=1:m

  [theta] = trainLinearReg(X(1:i, :), y(1:i),lambda);

[error_train(i),dummy] =linearRegCostFunction(X(1:i, :), y(1:i), theta, 0);

[error_val(i),dummy] =linearRegCostFunction(Xval, yval, theta, 0);

end

学习曲线的练习时,需要注意,计算训练集时用1:i的子集训练theta(因为要画出样本数量对学习模型的影响),而学习到的theta要计算验证集时,需要计算整个验证集。以此判断不同的样本数量对学习到的模型的影响。

 

3.     欠拟合

欠拟合时考虑增加特征数量

%将每一行的特征扩展到p个特征。

for i=1:p

X_poly(:,i)=X.^i;

End

4.     lambda与学习曲线关系

lambda_vec = [0 0.001 0.003 0.01 0.03 0.1 0.3 1 3 10]';

for i =1:length(lambda_vec)

[theta] = trainLinearReg(X, y, lambda_vec(i));

[error_train(i),dummy] =linearRegCostFunction(X, y, theta, lambda_vec(i));

[error_val(i),dummy] =linearRegCostFunction(Xval, yval, theta, lambda_vec(i));

end


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值