所谓一元线性回归模型,恰如其名,其自变量只有一个,因变量是与自变量存在线性关系的数值变量。本节将以一个案例为基础,介绍模型、模型参数、模型训练过程及模型的评价指标。
梅花鹿是我国的保护动物之一,其健康状况值得人们研究。如表2.1所示为14组不同性别、不同身体状况的梅花鹿体重-湿重数据。
表2.1 梅花鹿体重与发酵肠湿重数据
为了方便表述,这里使用( x i , y i )表示梅花鹿 i 的体重与湿重,其中 i ∈(1,2,…,14)。根据1.1.2节所述,机器学习区别于统计学习的一点是,它使用测试集来评价模型。因此需要把数据集按7∶3的比例拆分为训练集和测试集,如表2.2和表2.3所示。
表2.2 训练集
表2.3 测试集
猜测 x i , y i 之间存在线性关系,并根据猜想提出一元线性回归模型:
为了在训练模型时使观测值
y
i
具备“指导”作用,我们提出风险函数
来表征实际输出和模型输出的误差:
很明显,最理想的参数 ω 0 , ω 1 应使得风险函数的取值最小:
在统计学中,将风险函数设置为平方差的形式,以其值最小为目标的方法称为最小二乘法,式(2.2)的值称为均方误差(MSE)。
为了使用模型,需要求出未知参数
ω
0
,
ω
1
(有时也叫超参数
)。将表2.2的训练集数据代入式(2.1)中可得方程组:
将上式改写成矩阵的形式,将训练集表示成矩阵:
矩阵中的数值1代表式(2.1)中的截距项,将参数表示为向量 ω =( ω 0 , ω 1 ) T ,从而得到式(2.1)的矩阵形式为:
y = Xω
将观测值 y i 用一个列向量表示: y =( y 1 , y 2 ,…, y 10 ) T ,便可将式(2.2)改写为:
要使得上式取得最小值,根据高等数学的方法,只要对上述等式求导并令其为0即可:
从而可以得到:
将数据代入式(2.4)中可得:
ω =(−0.3115,0.0735) T
因此线性回归模型为:
画出回归直线与观测数据,如图2.1所示。从图2.1中可以看出,模型的效果一般。为了更直观地看出模型的效果,下面使用几个指标量化地度量模型的拟合优度。
图2.1 回归直线与观测数据
一般,评价一个回归模型在当前数据集中的拟合优度的指标有很多,下面给出常用的指标。
SSE:残差平方和,用以表征预测值与实测值的差距。计算公式如下:
其中,
m
为数据集的样本个数,在本例中,训练集
m
=10;测试集
m
=4;
表示第
i
个样本个体的模型估算值。下面式子中的
m
、
的含义相同。
MSE:均方误差,用以表征预测值与实测值的平均差距。计算公式如下:
RMSE:均方根误差,以欧氏距离的方式度量估计值和实际值之间的偏差。计算公式如下:
R
2
:也叫
R
方、拟合优度、可决系数、决定系数。无论统计学习还是机器学习的学者们,都经常用
R
方来量化地评价模型的拟合优度。在本书中统一将
R
2
称为
R
方,其计算公式如下:
其中,
为数据集中的实际输出
y
的均值。显而易见,
R
方越接近1,则模型的估算值与实际值的差距越小,模型拟合效果越好。
adjust−
R
2
:也叫调整
R
方、调整后拟合优度、调整后决定系数等。当输入的自变量个数过多时,将影响到回归方程解释的变异比例
,会导致
R
方接近1,造成拟合效果偏高的假象。因此,统计学家们提出了不随自变量个数变化而变化的调整
R
方:
其中, n 为自变量的个数。
如1.1.2节所述,评价一个机器学习模型需要用到测试集。但在此之前,有必要在训练集上先观察模型是否合理。将训练集中的体重项代入式(2.5)中可得发酵肠的湿重预测结果:
将
代入式(2.7)和式(2.8)中,可分别得出均方误差和均方根误差为:MSE=1.6705,RMSE=1.2925。
由于每一个个体的估计值与观测值的偏差平均为1.3左右,这个数字结合量纲来看似乎并非好的结论。为了进一步评价模型,可以考虑计算模型在训练集中的 R 方,求出均值后代入式(2.9)中可得: R 2 =0.5713<0.6。很明显,模型的拟合优度较低,从图2.1中也可以看出这一点。此时应该放弃线性回归模型,改用其他模型解决该问题。但是为了方便读者了解机器学习的全过程,这里继续研究下去。
假设我们采纳了该模型,之后应该用测试集来评价模型的效果。将测试集
x
'=(59.9,53.5,63.5,45.4)
T
(见表2.3)代入模型
,可得
。根据公式分别计算MSE、RMSE、
R
方:
可以看出,该模型在测试集中的结果实在乏善可陈。至此,应完全淘汰线性回归模型。