机器学习基石第十讲介绍线性回归问题(linear regression problem),从这一讲开始课程介绍具体的机器学习算法。后面的大部分内容,博主已经学过,所以笔记可能会简略。

Linear Regression Problem

借助信用卡发放的问题来介绍线性回归,不过这一次不再是分类,而是要让算法根据客户信息给出信用额度。算法为每一个特征赋予一个权重,然后直接计算加权值,以此得到信用额度。

9_1

将训练数据集标注在坐标系中,如下图,每一个数据点用一个圈圈来表示(这里为了可视化只列举了x是一维和二维的情况,现实中的x多是高维的),线性回归算法要做的就是找到一条线或者一个超平面能够尽可能好(图中的红色线段长度之和越小越好)的拟合训练数据集。

9_2

这里用到的误差度量是平方误差:

9_3

本小节测试:

9_4

Logistic Regression Error

采用矩阵的方式计算$E_{in}(w)$:

9_5

$E{in}(w)$是一个连续可微凸函数,所以现在要做的是找到一个$w{LIN}$使得$\nabla E{in}(w{LIN})=0$。

9_6

9_7

因为博主前面已经学习了Andrew Ng的Machine Learning,所以推导过程省略。总结起来,线性回归算法要做的事情如下图:

9_8

本小节测试:

9_9

Gradient of Logisitc Regression Error

线性回归不像前面的PLA一样通过迭代得到最后的hypothesis,更像是通过分析的方法,直接通过公式得到了参数w。线性回归仍属于机器学习算法,因为它做了下面几个工作:

  • 对$E_{in}$进行优化,找到其最小值
  • 使$E_{out} \approx E_{in}$
  • 迭代的过程在pseudo-inverse内部完成

下面我们来讨论一下$\overline{E_{in}}$和$\overline{E_{out}}$的物理意义。

9_10

9_11

9_12

下图给出了$\overline{E_{in}}$和$\overline{E_{out}}$随N的变化情况。

9_13

本小节测试:

9_14

Gradient Descent

下面比较一下线性回归和线性分类。

9_15

尝试使用线性回归来实现线性分类,观察err的变化:

9_16

上图得到了一个结论:$err_{0/1} \leq err_{sqr}$。

9_17

本小节测试:

9_18