线性回归

线性回归使用线性模型去拟合数据集,进行预测。线性回归的预测函数的一般形式为:
numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归

numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_02表示第i个样本的特征,如果样本有m个特征,则numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_02为一个m为特征向量numpy线性回归函数预测儿童升高 线性回归的预测函数_数据集_04。对应的参数numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_05则也为一个m维向量,numpy线性回归函数预测儿童升高 线性回归的预测函数_线性回归_06,则线性回归表达式可以写成矩阵形式:

numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_07

最小二乘估计

numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_08表示为第i个样本,numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_09分别为其特征和真实类别。

线性回归模型中,参数w的最优值为:

numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_10

使用最小二乘法对w和b进行估计。找到一条直线,使得均方误差numpy线性回归函数预测儿童升高 线性回归的预测函数_线性回归_11最小(为了计算方便对其乘了1/2)。对numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_05中的每个参数求偏导数,并令其偏导数为0。

numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_13

将其写为矩阵形式,

numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_14

numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_15

numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_16

线性回归模型中,参数w的最优值为:
numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_17
使用最小二乘法对w和b进行估计。找到一条直线,使得均方误差E最小。

E的期望值为:
numpy线性回归函数预测儿童升高 线性回归的预测函数_数据集_18
要使E的值最小,令其对numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_05的导数为0
numpy线性回归函数预测儿童升高 线性回归的预测函数_数据集_20
numpy线性回归函数预测儿童升高 线性回归的预测函数_数据集_21是满秩矩阵或正定矩阵时,可以对其求逆,此时有:
numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_22
这样的过程称为线性回归模型的最小二乘估计

广义线性模型

广义线性模型中,将原本的线性模型的输出空间进行非线性函数映射。考虑单调可微函数g(·),令
numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_23
这样的模型成为广义线性模型,g(·)称为联系函数。对数线性回归是广义线性模型在g(·)=ln(·)时的特例。

对数几率回归(逻辑回归)

逻辑回归虽然叫做回归,但实际上做是分类。

对数几率函数(对数几率函数属于sigmoid函数):
numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_24
该式可变换为:
numpy线性回归函数预测儿童升高 线性回归的预测函数_线性回归_25
若将y视为样本x为正类的可能性,则1-y就对应x为负类的可能性,因此两者的比值就反映了x为正例的相对可能性,又因为取了对数,因此这个模型称为对数几率模型(logistic regression 或logit regression)。对数函数是任意阶可导的凸函数,有很好的数学性质。

接下来确定逻辑回归的参数w。

首先根据定义,我们有概率:
numpy线性回归函数预测儿童升高 线性回归的预测函数_线性回归_26
将两式合并,得到:
numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_27
于是,我们可以通过极大似然法来来估计w和b的值。
numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_28
对其取对数,得到对数似然函数:
numpy线性回归函数预测儿童升高 线性回归的预测函数_numpy线性回归函数预测儿童升高_29

计算对应的梯度:
numpy线性回归函数预测儿童升高 线性回归的预测函数_线性回归_30

得到最优化问题:
numpy线性回归函数预测儿童升高 线性回归的预测函数_机器学习_31 可以使用梯度下降或牛顿法迭代更新求解该最优化问题。

如果得到的最大似然LL(w,b)取反,则得到
numpy线性回归函数预测儿童升高 线性回归的预测函数_数据集_32
需要求解的优化问题就变成了
numpy线性回归函数预测儿童升高 线性回归的预测函数_逻辑回归_33

仔细观察可以发现,待优化的式子中的项正是交叉熵,即使用最大似然估计求解得到的参数与使用最小化交叉熵所得到的结果一致(两者的思想并不一样)。

读者如果有兴趣推导一下梯度下降的递推式可以发现,逻辑回归与线性回归的梯度下降递推式的形式是一致的。当然,两个递推式的含义不一致。

如果熟悉神经网络还可以发现,逻辑回归的预测函数就是神经网络中常用的神经元激活函数之一,因此逻辑回归可以简单看作只有一个神经元节点的神经网络。