作者简介:前审计|现风控模型工程师|数据挖掘
如上图所示,以一元线性回归为例。我们的目的就是寻找一条直线来最大程度地拟合与之间的关系。
如何度量我们拟合程度的好坏呢?首先我们从单个样本点A来看。假设我们找到了一条直线,那么对于点A,其预测值为
,其真值为,则真值与预测值之间的差距可以有以下几种方式表示:
(1);这种衡量方式,可能会因为正负相互抵消的问题,使得在更多的样本点加入时,总体的差距被相互中和。
(2);这种衡量方式,由于绝对值并不是处处可导,不便于求解最优解。
(3);(√)
考虑所有样本后,拟合直线和真实样本之间的差距可以表示为:
由于,因此上式可以变形为:
因此我们的目标就是找到和,使得尽可能小。令:
我们称为损失函数(在有的地方也用表示损失函数)。我们的目的就是最优化损失函数(或效用函数),近乎所有参数学习算法都是
这样的套路,包括:线性回归、逻辑回归、SVM、神经网络等。
最优化,即求解:
(1)对求导:
令,得:
(2)对求导:
(3)综上得,当:
损失函数最优
因此:
可以转换成向量点乘运算:
公式有一个问题是会改变量纲。因为公式平方了,比如说值的单位是万元,计算出来的是万元的平方,对于这个值难以解释它的含义。所以为了消除量纲的影响,我们可以对这个开方,从而得出:
综上:①就是统一量纲后的;②相较于,放大了差异中较大的部分(因为是先平方再开方),因此我们尽量使较小为佳。
、、都难以在解决不同问题的模型中有一个统一的评判尺度。例如:对于预测房价的模型,上述指标可能为10000,但是对于预测成绩的模型,上述指标可能就只有10,对于这样的情况,上述指标就无能为力。因此我们引入,计算方法如下:
上述式子中分子①表示使用我们训练的模型预测与真实值之间的误差,分母②表示使用预测与真实值之间的误差。因此就可以理解为:我们训练的模型相对于的相对误差大小,就表示我们的模型拟合的程度,因此又被称为拟合优度。
因此我们的目标仍然是最优化损失函数,找到一组参数使得最小。
我们分别对求导,并令其等于0,得:
因此,我们只需求解方程组,即可得出参数
将方程组转换成矩阵,如下:
式左侧可以写成:
矩阵化:
式右侧可以写成:
因此,方程组写成矩阵形式为,如下:
令:
则,正规方程组可以表示为:
经矩阵运算,得:
因此,正规方程组的解为:
array([-1.06715912e-01,3.53133180e-02,-4.38830943e-02,4.52209315e-01,-1.23981083e+01,3.75945346e+00,-2.36790549e-02,-1.21096549e+00,2.51301879e-01,-1.37774382e-02,-8.38180086e-01,7.85316354e-03,-3.50107918e-01])
array([4,7,10,12,0,2,6,9,11,1,8,3,5],dtype=int64)
如上,根据训练出来的参数可以看出,参数值最大的特征是RM(averagenumberofroomsperdwelling),即房屋中房间的数量越多,房价越高(符合常理);参数值最小的特征是NOX(nitricoxidesconcentration(partsper10million)),即房屋周围一氧化碳的浓度越高,房价越低(符合常理)。线性回归给予了很强的解释性。