机器学习:线性模型-线性回归及对数几率回归(附代码实现)

我的小程序:

待办计划:在不确定中前行
随笔日记:祭那些逝去的时光

线性模型基本形式:f(x)=w1*x1+w2*x2+w3*x3+...+wd*xd+b

向量形式:f(x)=w'x+b(w'指w转置w'=(w1,w2,w3,...,wd))

回归任务最常用均方误差作为性能度量,见下图

广义线性模型:

y=g^-1(w'x+b)(g^-1表示g(.)的逆函数,即g(y)=w'x+b)

如对数线性回归:lny=w'x+b,让e^(w'x+b)逼近y

广义线性模型处理二分类任务

思路:将z=w'x+b转化为0/1值

对数几率函数(s函数):y=1/(1+e^-z),将z映射为0~1之间的值,如下图:

求解w,b步骤如下:

对数几率回归matlab代码实现(梯度下降法,涉及对上图L(w;b)函数的矩阵求导):

function [w,L] = logisticFunc(x,y,iters,lambda)

x_span = [x ones(length(y),1)];

cols_x = size(x,2);
rows_x = size(x,1);

w = zeros(cols_x+1,1);
L = zeros(1,iters);

%梯度下降
for i=1:iters
  grad = zeros(cols_x+1,1);
  for j=1:rows_x
    %计算梯度
    grad += -x_span(j,:)'*(y(j,1)-e^(x_span(j,:)*w)/(1+e^(x_span(j,:)*w)));
    
    %最小化目标,记录值
    L(1,i) += -y(j,1)*x_span(j,:)*w+log(1+e^(x_span(j,:)*w));
  end;
  %更新参数
  w = w - lambda*grad;
end;
待办计划:在不确定中前行
随笔日记:祭那些逝去的时光

参考资料:周志华《机器学习》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值