线性回归(Linear Regression)

标签(空格分隔): 机器学习


此为笔者在学习过程中的读书笔记,文章主要关于机器学习模型的知识与一些个人感受,不妥之处,请予指正。

1. 从一个特征开始

对于银行贷款问题,假如我们要根据顾客的一些属性得到是否可以贷款给顾客,那么二分类问题就可以得到解决。但是试想,如果银行到底应该贷款多少钱给顾客(比如支付宝的蚂蚁花呗)?这个就需要算法的输出的是一个实数值而不是"+1"和"-1"这样的label。

那么银行如何知道一个顾客的贷款额度是多少呢?一个可行的方案就是根据顾客的一些特征(年龄,工资,固定资产等)。我们假设顾客所有的特征集合 X = ( x 1 , x 2 , ⋯   , x d ) X=(x_{1},x_{2},\cdots,x_{d}) X=(x1,x2,,xd)。但是这些特征还应该有主次之分,比如工资的权重应该比年龄更大。于是我们设特征的权重 W = ( w 1 , w 2 , ⋯   , x d ) W=(w_{1},w_{2},\cdots,x_{d}) W=(w1,w2,,xd)。但是我们还是希望可以有一些波动,即偏置 b b b。在 d = 1 d=1 d=1的时候有:
h ( x i ) = w x i + b h(x_{i})=wx_{i}+b h(xi)=wxi+b
并且使得 h ( x i ) h(x_{i}) h(xi)尽量接近于真实值 y i y_{i} yi。上述的公式和PLA算法很像,但是没有带符号函数。

2. 学习

有了上述学习目标之后,接下来面临着一个问题:如何知道学出来的 h ( x i ) h(x_{i}) h(xi)(或者 w w w b b b)好坏?记得刚说过要使得 h ( x i ) h(x_{i}) h(xi)尽量接近于真实值 y i y_{i} yi y i y_{i} yi是真实值(怎么来的?所以我们需训练数据啊!)。注意这里的目标是使得 h ( x i ) h(x_{i}) h(xi)尽量接近于真实值 y i y_{i} yi,但是这个可能会导致过拟合的问题,但在这里我们暂且不考虑。关于如何防止过拟合问题也是一门艺术,有机会再来探讨。

回到正题,要使 h ( x i ) h(x_{i}) h(xi)尽量接近于真实值 y i y_{i} yi,只要找到一个损失函数即可,一般线性回归用的是平方误差: e r r ( y ^ , y ) = ( y ^ − y ) 2 err(\widehat{y},y)=(\widehat{y}-y)^2 err(y ,y)=(y y)2。即:

( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ n = 1 N ( h ( x i ) − y i ) 2 (w^*,b^*)=argmin_{(w,b)}\sum_{n=1}^{N}(h(x_i)-y_i)^2 (w,b)=argmin(w,b)n=1N(h(xi)yi)2,
w ∗ w^* w, b ∗ b^* b表示最优解, N N N代表训练集中的样本个数。
接下来如何使得上述式子最小化的问题了,即线性回归模型的参数估计(周志华《机器学习》P54)。可以分别对于 w w w b b b求导得到:
∂ e r r ∂ w = 2 ( w ∑ i = 1 N x i 2 − ∑ i = 1 N ( y i − b ) x i ) \frac{\partial{err}}{\partial{w}}=2(w\sum\limits_{i=1}^{N}x_{i}^2-\sum\limits_{i=1}^N(y_{i}-b)x_{i}) werr=2(wi=1Nxi2i=1N(yib)xi)
∂ e r r ∂ b = 2 ( N b − ∑ i = 1 N ( y i − w x i ) ) \frac{\partial{err}}{\partial{b}}=2(Nb-\sum\limits_{i=1}^{N}(y_{i}-wx_{i})) berr=2(Nbi=1N(yiwxi))
于是我们就可以得到 w w w b b b的闭式解:
w = ∑ i = 1 N y i ( x i − x ˉ ) ∑ i = 1 N x i 2 − 1 N ( ∑ i = 1 N x i ) 2 w=\frac{\sum\limits_{i=1}^{N}y_i(x_i-\bar{x})}{\sum\limits_{i=1}^Nx_i^2-\frac{1}{N}(\sum\limits_{i=1}^Nx_i)^2} w=i=1Nxi2N1(i=1Nxi)2i=1Nyi(xixˉ)
b = 1 N ∑ i = 1 N ( y i − w x i ) b=\frac{1}{N}\sum\limits_{i=1}^N(y_i-wx_i) b=N1i=1N(yiwxi)

3. 更多的特征

有了之前一维特征的铺垫,那么多维特征就相对简单了,即将一维的变量换成高维的向量。现在假设我们的特征数 d > 1 d>1 d>1,此时我们试图学习: h ( x i ) = w T x i + b h(x_{i})=w^Tx_{i}+b h(xi)=wTxi+b,将 b b b看成 w 0 w_0 w0有:
h ( x i ) = w T x i h(x_{i})=w^Tx_{i} h(xi)=wTxi
由前可知我们的目标为:
minimize E i n ( w ) = 1 N ∑ n = 1 N ( w T x n − y n ) 2 = 1 N ∣ ∣ X w − y ∣ ∣ 2 E_{in}(w)=\frac{1}{N}\sum\limits_{n=1}^{N}(w^Tx_n-y_n)^2=\frac{1}{N}||Xw-y||^2 Ein(w)=N1n=1N(wTxnyn)2=N1Xwy2
其中 y y y N × 1 N\times1 N×1的向量。

w w w求导,可以得到 ∂ e r r ∂ w = 2 N ( X T X w − X T y ) \frac{\partial{err}}{\partial{w}}=\frac{2}{N}(X^TXw-X^Ty) werr=N2(XTXwXTy)
令上式为零,则可以得到最优解:
w ^ = ( X T X ) − 1 X T y \hat{w}=(X^TX)^{-1}X^Ty w^=(XTX)1XTy

注意:
上式的求逆过程必须满足 X T X X^TX XTX为满秩矩阵或正定矩阵,即为可逆矩阵。

使用上述式子就可以求得最佳的 w w w,似乎是一步登天的感觉,我们称这样的解为Analytic Solution。

4. 不止于线性问题

线性回归本质上还是线性的问题,但是假如特征 x x x更复杂一点呢?比如可以加一个线性变换 ϕ ( x ) \phi(x) ϕ(x)使其能够解决更加复杂的问题,此时的形式就为 h ( x i ) = w T ϕ ( x i ) h(x_{i})=w^T\phi(x_{i}) h(xi)=wTϕ(xi),这个实际上是结构化学习中三大问题之一的Evaluation问题。关于这部分的内容,有时间再写一个相关的帖子吧…

转载请标明出处:http://blog.csdn.net/wuzqchom/article/details/57079837

参考资料:

  1. 周志华《机器学习》第三章:线性模型
  2. 林轩田-机器学习基石 Lecture 9: Linear Regression
  3. ``Pattern Recognition and Machine Learning’’ Christopher M. Bishop. Chapter 3.1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值