本文的目的是为刚入门的数据科学家提供支持。 在
为什么特别注意公式是有意义的 ?
在大多数情况下,人们是通过矩阵方程开始熟悉线性回归的。 与此同时,关于公式如何推导的详细计算却很少。
例如,在 Yandex 的机器学习课程中,当向学生介绍正则化时,他们会被要求使用库中的函数 斯克莱恩,而关于算法的矩阵表示却只字未提。 正是在这个时候,一些听众可能想更详细地了解这个问题——在不使用现成函数的情况下编写代码。 为此,您必须首先以矩阵形式呈现带有正则化器的方程。 本文将帮助那些希望掌握这些技能的人。 让我们开始吧。
初始条件
目标指标
我们有一系列目标值。 例如,目标指标可以是任何资产的价格:石油、黄金、小麦、美元等。 同时,目标指标值的数量指的是观察的数量。 例如,此类观察结果可以是当年的每月油价,也就是说,我们将有 12 个目标值。 让我们开始介绍符号。 让我们将目标指标的每个值表示为 。 我们总共有 观察,这意味着我们可以将我们的观察表示为 .
回归量
我们将假设存在一定程度解释目标指标值的因素。 例如,美元/卢布汇率受到石油价格、美联储利率等的强烈影响。这些因素称为回归变量。 同时,每个目标指标值必须对应一个回归量值,也就是说,如果我们12年每个月有2018个目标指标,那么同期我们也应该有12个回归量值。 让我们将每个回归量的值表示为 。 让我们的例子有 回归量(即 影响目标指标值的因素)。 这意味着我们的回归量可以表示如下:对于第一个回归量(例如石油价格): ,对于第二个回归量(例如,美联储利率): ,对于“-th”回归器:
目标指标对回归量的依赖性
让我们假设目标指标的依赖性 从回归量“th”观测值可以通过以下形式的线性回归方程表示:
哪里 - “-th" 回归量值从 1 到 ,
— 回归量的数量从 1 到
— 角度系数,表示当回归量变化时,计算出的目标指标平均变化的量。
换句话说,我们是为所有人服务的(除了 )的回归量,我们确定“我们的”系数 ,然后将系数乘以回归量的值“th“观察,结果我们得到了一定的近似值”-th”目标指标。
因此,我们需要选择这样的系数 ,此时我们的近似函数的值 将尽可能接近目标指标值。
评估逼近函数的质量
我们将使用最小二乘法确定逼近函数的质量评估。 在这种情况下,质量评估函数将采用以下形式:
我们需要选择这样的系数值$w$,其值 将是最小的。
将方程转换为矩阵形式
矢量表示
首先,为了让您的生活更轻松,您应该注意线性回归方程,并注意第一个系数 不乘以任何回归量。 同时,当我们将数据转换为矩阵形式时,上述情况会使计算严重复杂化。 对此,建议为第一个系数引入另一个回归器 并将其等同于一。 或者更确切地说,每一个“将该回归量的第 th 值等于 XNUMX - 毕竟,当乘以 XNUMX 时,从计算结果的角度来看,没有任何变化,但从矩阵乘积规则的角度来看,我们的折磨将显着减少。
现在,为了简化材料,我们假设我们只有一个“-th”观察。 然后,想象回归量的值“-th" 观测值作为向量 。 向量 有维度 即, 行和 1 列:
让我们将所需的系数表示为向量 ,有维度 :
线性回归方程为“-th”观察将采取以下形式:
用于评估线性模型质量的函数将采用以下形式:
请注意,根据矩阵乘法的规则,我们需要对向量进行转置 .
矩阵表示
将向量相乘,我们得到数字: ,这是可以预料的。 这个数字是近似值“-th”目标指标。 但我们需要的不仅仅是一个目标值,而是所有目标值的近似值。 为此,让我们写下所有内容“-th" 矩阵格式的回归量 。 所得矩阵的维度为 :
现在线性回归方程将采用以下形式:
让我们表示目标指标的值(所有 ) 每个向量 方面 :
现在我们可以编写矩阵格式的方程来评估线性模型的质量:
其实,从这个公式我们进一步得到我们已知的公式
是怎么做到的? 打开括号,进行微分,对结果表达式进行转换等等,这正是我们现在要做的。
矩阵变换
我们打开括号
让我们准备一个微分方程
为此,我们将进行一些改造。 如果向量在后面的计算中会更方便 将在方程式中每个产品的开头表示。
转换1
它是怎么发生的? 要回答这个问题,只需查看相乘矩阵的大小,然后在输出中看到我们得到一个数字或其他 .
让我们写下矩阵表达式的大小。
转换2
让我们用与转换1类似的方式来写
在输出中,我们得到一个必须对其进行微分的方程:
我们区分模型质量评估函数
让我们对向量进行微分 :
疑问为什么 不应该有,但我们将更详细地研究在其他两个表达式中确定导数的运算。
差异化1
让我们扩展一下差异化:
为了确定矩阵或向量的导数,您需要查看它们内部的内容。 我们看看吧:
让我们表示矩阵的乘积 通过矩阵 . 矩阵 正方形,而且是对称的。 这些属性对我们以后会有用,让我们记住它们。 矩阵 有维度 :
现在我们的任务是正确地将向量乘以矩阵,而不是得到“二的两倍等于五”,所以让我们集中注意力并非常小心。
然而,我们已经实现了复杂的表达! 事实上,我们得到了一个数字——一个标量。 现在,我们真正转向差异化。 有必要找到每个系数的结果表达式的导数 并获取维度向量作为输出 。 为了以防万一,我将通过行动写下程序:
1)区分为 ,我们得到:
2)区分为 ,我们得到:
3)区分为 ,我们得到:
输出是承诺的大小向量 :
如果您更仔细地观察该向量,您会发现该向量的左侧元素和相应的右侧元素可以以这样的方式分组,因此,可以将向量与呈现的向量分离 大小 。 例如, (向量顶行的左侧元素) (向量顶行的右侧元素)可以表示为 和 - 作为 ETC。 在每行上。 我们来分组吧:
我们把向量取出来 在输出中我们得到:
现在,让我们仔细看看生成的矩阵。 该矩阵是两个矩阵的和 :
让我们回想一下,之前我们注意到矩阵的一个重要属性 - 它是对称的。 基于这个性质,我们可以自信地说,表达式 等于 。 这可以通过逐个元素展开矩阵的乘积来轻松验证 。 这里就不做这个了,有兴趣的可以自行查看。
让我们回到我们的表达。 经过我们的改造,结果变成了我们想要的样子:
这样,我们就完成了第一个微分。 让我们继续讨论第二个表达式。
差异化2
让我们沿着老路走吧。 它会比前一个短很多,所以不要离屏幕太远。
让我们逐个元素展开向量和矩阵:
让我们暂时将两者从计算中删除 - 它不会发挥很大的作用,然后我们将其放回原来的位置。 让我们将向量乘以矩阵。 首先,我们将矩阵相乘 到向量 ,我们这里没有限制。 我们得到大小向量 :
让我们执行以下操作 - 乘以向量 到结果向量。 出口处会有号码等候我们:
那我们就来区分一下。 在输出中我们得到一个维度向量 :
让我想起了什么? 这是正确的! 这是矩阵的乘积 到向量 .
至此,第二次微分成功完成。
取而代之的是结论
现在我们知道平等是如何产生的 .
最后,我们将描述一种快速转换基本公式的方法。
我们按照最小二乘法来评估模型的质量:
让我们对结果表达式进行微分:
文学
互联网来源:
1)
2)
3)
4)
教材、习题集:
1) 高等数学讲义:完整课程/D.T. 书面——第四版。 – M.:虹膜出版社,4 年
2) 应用回归分析 / N. Draper、G. Smith - 第二版。 – M.:金融与统计,2(英文翻译)
3)求解矩阵方程的问题:
来源: habr.com