机器学习基石第九讲:linear regression

博客已经迁移至Marcovaldo’s blog (http://marcovaldong.github.io/)

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

Linear Regression Problem

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

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

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

本小节测试:

Logistic Regression Error

采用矩阵的方式计算 Ein(w)

Ein(w) 是一个连续可微凸函数,所以现在要做的是找到一个 wLIN 使得 Ein(wLIN)=0

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

本小节测试:

Gradient of Logisitc Regression Error

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

  • Ein 进行优化,找到其最小值
  • 使 EoutEin
  • 迭代的过程在pseudo-inverse内部完成

下面我们来讨论一下 Ein¯¯¯¯¯ Eout¯¯¯¯¯¯ 的物理意义。

下图给出了 Ein¯¯¯¯¯ Eout¯¯¯¯¯¯ 随N的变化情况。

本小节测试:

Gradient Descent

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

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

上图得到了一个结论: err0/1errsqr

本小节测试:

你可能感兴趣的:(机器学习,机器学习基石笔记,机器学习)