次梯度的matlab程序,机器学习中线性回归关于次梯度方法的编程

1,这是我写的次梯度下降函数

%% 梯度下降法计算方法

function [fintheta0,fintheta1] = gradien(A,B,e,thetat,J)

syms theta0 theta1 x;

numA = length(A);

numB = length(B);

grad0 = diff(J,theta0);   % 求J关于变量theta0的偏导数表达式

grad1 = diff(J,theta1);   % 求J关于变量theta1的偏导数表达式

flag = 1;

lrate = 0.1;  %  设置学习率(步长)为0.1

k = 0;  % 循环次数

while(flag)

if numA == numB

disp begin!

value0 = subs(grad0,theta0,thetat(1));

value0 = subs(value0,theta1,thetat(2));  % 求将grad0的表达式中的符号替换为设定的thetat中的数值,求出此刻grad0的数值

value1 = subs(grad1,theta1,thetat(2));

value1 = subs(value1,theta0,thetat(1));  % 求将grad1的表达式中的符号替换为设定的thetat中的数值,求出此刻grad1的数值

valuee = [value0;value1];

if  norm(valuee) > e   % 判断梯度方向的范数是否小于门槛(精度)e

fintheta0 = thetat(1)-lrate*value0; 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值