在之前的文章中,我们已经对朴素贝叶斯分类模型和最小二乘法进行了介绍。接下来,我们将继续深入探讨线性回归模型的奥秘。
模型概念
线性回归最简单的形式其实就是一元一次方程组。当我们将若干的x和y呈现出来,并需要求解w和b时,我们可以通过消元法轻易得到答案。
这里的Y、X和W分别是m 1、m n和n 1的矩阵。
参数与矩阵操作
在具体到矩阵形式的线性回归中,有一些重要的概念和操作值得我们注意。
浮点数参数b实际上也是一个m 1的矩阵(列向量)。即使我们使用浮点数进行计算,在实际的编程实现中,如numpy或TensorFlow等框架也会自动将b通过广播机制转化为向量形式进行加法运算。
X和W的顺序调换是为了矩阵乘法计算方便。虽然我们也可以将X和W转置写成WX的形式,但这样得到的结果需要再次转置才能与Y进行比较。为了简化计算过程,我们调换了X和W的顺序。
最小二乘法与均方差
在之前的文章中我们提到了最小二乘法,它是一种用于优化模型目标的方法。在线性回归中,我们通过最小化均方差来寻找最佳的模型参数。均方差反映了模型预测值与真实值之间的震荡程度,是我们衡量模型能力的重要指标。
对于回归模型而言,预测的目标是一个具体的值。这个预测值越接近真实值越好,即两者的差距应尽可能小。我们将预测值记为y_,真实值记为y。为了量化这种接近程度,我们通常计算(y - y_)^2的最小值。对于多个样本而言,我们希望它们的平方和尽可能小。
这个式子与我们之前介绍的方差相似,只是方差中减去的是期望值,而在这里我们减去的是真实值。这个平方差也有一个类似的名称——均方差。
推导过程与优化方法
当我们明确了模型的公式和优化目标后,接下来就是寻找优化这个目标的方法。在这里,我们再次观察到均方差可以写成一个广义的二次函数形式。通过求导并令导数等于零的方法可以找到使二次函数最小的参数值。
在推导过程中,我们会通过一些数学技巧如增加一列常数1到X中以简化计算并变形出最终的损失函数J(θ)。这里的θ其实就是我们要求的模型参数的集合。
代码实验与实现
接下来,我们会通过简单的代码实验来验证上述理论的正确性。例如生成一批带有误差的数据并使用简单的线性回归公式来计算参数θ的值。
然而在实际应用中,直接计算参数的方法并不是最优选择。因为随着样本数量和特征维度的增加,计算复杂度会急剧上升。我们通常会使用其他迭代优化方法来求解模型的参数。
总结与展望
线性回归作为统计学和机器学习中的基础模型之一,其原理和实现方法为我们后续探讨更复杂的模型打下了基础。虽然这里我们只涉及了最基础的内容和实现方法,但已经足以让我们对线性回归有了初步的认识。在下一篇文章中,我们将继续深入探讨求解线性回归模型的更多方法和技巧。