线性回归
睡不醒的鲤鱼 2021-07-06 机器学习 线性回归
一、算法原理
给定数据集 D={(x1,y1),(x2,y2),…,(xm,ym)},其中 xi=(xi1;xi2;…;xid),yi∈R。”线性回归“(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
下面以一个房价预测的例子进行说明,为了方便讨论,此时忽略关于属性的下标。我们先考虑一种最简单的情形,输入属性的数目只有一个,如房屋的面积 x1,其为连续数值,此时的回归方程为
f(xi)=w1x1+b 下面再增加一个有序的多值离散特征:房屋与市中心的距离,取值为“较远”、“始终”、“较近”,可转化为 {1.0,0.5,0.0},此时回归方程为
f(xi)=w1x1+w2x2+b 若属性值间不存在序关系,假定有 k 个属性值,则通常转化为 k 维向量,如房屋的颜色,取值为 “红色”、“灰色”、“白色”,可转化为 (1,0,0),(0,1,0),(0,0,1),此时回归方程为
f(xi)=w1x1+w2x2+w3x3+w4x4+w5x5+b 综上,线性回归试图学得
f(xi)=wTxi+b,使得f(xi)≃yi. 以上就是线性回归的算法原理。
注意
若将无序属性连续化,则会不恰当地引入序关系,对后续处理,如距离计算等造成误导。
二、参数估计方法
2.1 最小二乘估计
基于均方误差最小化来进行模型求解的方法称为“最小二乘法”,均方误差的计算公式如下所示:
E(w,b)=i=1∑m(yi−f(xi))2=i=1∑m(yi−(wxi+b))2=i=1∑m(yi−wxi−b)2 要使均方误差最小化,则 w 和 b 的解的计算公式为:
(w∗,b∗)=(w,b)argmini=1∑m(f(xi)−yi)2=(w,b)argmini=1∑m(yi−wxi−b)2 2.2 极大似然估计
对于线性回归来说,也可以假设其为以下模型
y=wx+b+ϵ 其中 ϵ 为不受控制的随机误差,通常假设其服从均值为 0 的正态分布 ϵ∼N(0,σ2)(高斯提出的,也可以用中心极限定理解释),所以 ϵ 的概率密度函数为
p(ϵ)=2πσ1exp(−2σ2ϵ2) 若将 ϵ 用 y−(wx+b) 等价替换可得
p(y)=2πσ1exp(−2σ2(y−(wx+b))2) 上式显然可以看作 y∼N(wx+b,σ2),下面便可用极大似然估计来估计 w 和 b 的值,似然函数为
L(w,b)=i=1∏mp(yi)=i=1∏m2πσ1exp(−2σ2(yi−(wxi+b))2) 为了方便求解,将其转换为对数似然函数为
lnL(w,b)=i=1∑mln2πσ1exp(−2σ2(yi−wxi−b)2)=i=1∑mln2πσ1+i=1∑mlnexp(−2σ2(yi−wxi−b)2)=mln2πσ1−2σ21i=1∑m(yi−wxi−b)2 其中 m,σ 均为常数,所以最大化 lnL(w,b) 等价于最小化 ∑i=1m(yi−wxi−b)2,即
(w∗,b∗)=(w,b)argmaxlnL(w,b)=(w,b)argmini=1∑m(yi−wxi−b)2 由此可知,极大似然估计与最小二乘估计的结果相同。
三、求解 w 和 b
(w∗,b∗)=(w,b)argmini=1∑m(yi−wxi−b)2 求解 w 和 b 其本质上是一个多元函数求最值(点)的问题,更具体点是凸函数求最值的问题,推导思路分为以下两个步骤:
- 证明 E(w,b)=∑i=1m(yi−wxi−b)2 是关于 w 和 b 的凸函数;
- 用凸函数求最值的思路求解出 w 和 b。
3.1 凸集和凸函数
3.2 梯度
3.3 Hessian 矩阵
3.4 凸函数证明
3.5 求解 w 和 b