(二)一元线性回归
文章目录
本篇将介绍一类经典的有监督学习算法——线性回归(Linear Regression)。
回顾:有监督学习从有标记的训练数据中推导出预测函数,即给定数据集 ( x , y ) (x,y) (x,y),能够基于 x x x 预测 y y y。
回归这个词的意思是,我们在试着推测出一系列连续值属性。回归分析是一种预测性的建模技术,这种技术通常用于预测分析、时间序列模型以及发现变量之间的因果关系,通常使用直线或曲线来拟合数据点。
假设您是一家餐饮连锁店的 CEO,并且正在考虑在城市A(人口12万)或城市B中(人口15万)选择一个开设新的门店,需要事先预估一下在不同城市开设分店的预期利润额。您已经搜集到了97个城市的人口数据和门店利润数据1。如何依据这组数据决定在哪个城市开设分店呢?
观测值 # | 人口( X X X) | 利润( Y Y Y) |
---|---|---|
1 | 61,101 | $ 17,592 |
2 | 55,278 | $ 91,302 |
3 | 85,186 | $ 13,662 |
4 | 70,032 | $ 11,854 |
… | … | … |
97 | 54,901 | $ 42,630 |
以上97组观测值表示在图中即为下图1左散点图,其中,横轴为城市人口数,纵轴为门店利润额。最直观的想法是,找到一条直线或曲线(下称,拟合线)来拟合图中数据点,目标是使拟合线到数据点的距离差异最小。由此,对于给定城市人口数,即可对应到拟合线上一点,进而估计出大致的利润额。
线性回归假设目标值与特征之间线性相关,即可以通过一条直线来拟合目标值(即,门店利润额)和特征值(即,城市人口数)之间的关系,即如下图右所示。
一元线性回归(Univariate Linear Regression)
在上面的例子中,我们仅使用一个特征值(即,城市人口数)来预测门店利润额,因此,这属于一元线性回归问题。
模型形式和基本假设
上图1中的蓝色直线即为我们建立的模型,其建立了输入 x x x 与输出 y y y 之间的函数关系。模型有时也被称之为假设(hypothesis),用 h ( x ) h(x) h(x) 表示。
h ( x ) h(x) h(x) 的函数表达形式如下:
h θ ( x ) = θ 0 + θ 1 ⋅ x h_\theta(x) = \theta_0 + \theta_1 \cdot x hθ(x)=θ0+θ1⋅x
其中,
x x x 代表输入变量(特征)
θ 0 \theta_0 θ0 代表偏置参数,即直线与 Y Y Y 轴交点的纵坐标(即,当 x = 0 x = 0 x=0 时, h θ ( x ) h_\theta(x) hθ(x) 的取值)
θ 1 \theta_1 θ1 代表权重参数,即直线的斜率(如上图2中表达式所示)
h h h 代表学习算法的解决方案或函数
y y y 代表目标值
此例中,存在 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 两个参数(Parameters),其取值不同对应于一条不同的直线,是我们算法需要学习出的参数。
损失函数(Cost Function)
我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度。当存在多条拟合直线时(即如下图3所示),我们该如何选出最佳的那条?
求解最佳参数,需要一个标准来对结果进行衡量,为此我们需要定量化一个目标函数式,使得计算机可以在求解过程中不断地优化。针对任何模型求解问题,都是最终可以得到一组预测值 y ^ \hat y y^ ,对比已有的真实值 y y y 。我们的目标便是不断调整 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1 的取值,最终使得 y ^ \hat y y^ 与 y y y 之间误差最小。 由此,便引出了损失函数(Cost Function)的概念。
对于回归问题,其损失函数的表达式如下所示:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0, \theta_1) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1∑m(hθ(x(i)</