机器学习基石第九讲:linear regression
机器学习基石第十讲介绍线性回归问题(linear regression problem),从这一讲开始课程介绍具体的机器学习算法。后面的大部分内容,博主已经学过,所以笔记可能会简略。
Linear Regression Problem
借助信用卡发放的问题来介绍线性回归,不过这一次不再是分类,而是要让算法根据客户信息给出信用额度。算法为每一个特征赋予一个权重,然后直接计算加权值,以此得到信用额度。
将训练数据集标注在坐标系中,如下图,每一个数据点用一个圈圈来表示(这里为了可视化只列举了x是一维和二维的情况,现实中的x多是高维的),线性回归算法要做的就是找到一条线或者一个超平面能够尽可能好(图中的红色线段长度之和越小越好)的拟合训练数据集。
这里用到的误差度量是平方误差:
本小节测试:
Logistic Regression Error
采用矩阵的方式计算$E_{in}(w)$:
$E{in}(w)$是一个连续可微凸函数,所以现在要做的是找到一个$w{LIN}$使得$\nabla E{in}(w{LIN})=0$。
因为博主前面已经学习了Andrew Ng的Machine Learning,所以推导过程省略。总结起来,线性回归算法要做的事情如下图:
本小节测试:
Gradient of Logisitc Regression Error
线性回归不像前面的PLA一样通过迭代得到最后的hypothesis,更像是通过分析的方法,直接通过公式得到了参数w。线性回归仍属于机器学习算法,因为它做了下面几个工作:
- 对$E_{in}$进行优化,找到其最小值
- 使$E_{out} \approx E_{in}$
- 迭代的过程在pseudo-inverse内部完成
下面我们来讨论一下$\overline{E_{in}}$和$\overline{E_{out}}$的物理意义。
下图给出了$\overline{E_{in}}$和$\overline{E_{out}}$随N的变化情况。
本小节测试:
Gradient Descent
下面比较一下线性回归和线性分类。
尝试使用线性回归来实现线性分类,观察err的变化:
上图得到了一个结论:$err_{0/1} \leq err_{sqr}$。
本小节测试: