一、正规方程基本思想
-
正规方程是一种通过数学推导来求解线性回归参数的方法,它通过最小化代价函数来找到最优参数。
-
代价函数 J(θ) 用于度量模型预测值与实际值之间的误差,通常采用均方误差。
二、步骤
-
准备数据集,包括特征矩阵 X 和目标向量 y。特征矩阵通常包括一个全为1的常数列(截距项)。
-
定义代价函数 J(θ),通常采用均方误差。
-
推导代价函数 J(θ) 对参数θ的梯度,令梯度为零。
-
将梯度为零的方程组转化为矩阵形式:X^T * X * θ = X^T * y。
-
求解正规方程,得到最优参数θ:θ = (X^T * X)^(-1) * X^T * y。
三、正规方程的优点
-
不需要选择学习率α,一次运算得出最优参数,无需迭代。
-
在特征数量较小的情况下非常适用(通常 n < 10000)。
四、正规方程的限制和适用情况
-
不适用于非线性模型,仅适用于线性回归。
-
如果特征之间存在线性相关性,或者特征数量多于样本数量,正规方程可能不适用。
-
对于特征数量大的情况,计算 (X^T * X)^(-1) 的逆矩阵可能会昂贵。
五、选择算法
-
根据问题的特点、数据集的大小和特征的独立性来选择使用梯度下降法或正规方程。
-
对于小型数据集和特征数量不多的情况,正规方程是一个有效的选择。
六、正规方程在矩阵不可逆时的解决办法
-
使用伪逆函数
pinv()
:-
在Octave等数值计算工具中,可以使用伪逆函数
pinv()
来计算参数θ,即使特征矩阵X^T * X是不可逆的。这是一种弥补不可逆性的方法,它可以提供正确的解。
-
-
处理线性相关的特征:
-
当存在线性相关的特征时,如 x1 = (3.28)^2 * x2,矩阵X^T * X可能变得奇异或不可逆。此时,可以考虑去除一个或多个相关特征以减少特征数量,同时保持数据的信息内容。这将使X^T * X更容易求逆。
-
-
特征选择和正则化:
-
如果特征数量n太多,而训练样本数量m相对较少,可能会导致X^T * X不可逆。在这种情况下,可以考虑以下方法:
-
删除一些不相关或冗余的特征,以降低特征数量。
-
使用正则化方法,如Lasso或Ridge回归,来惩罚不必要的特征权重,从而解决不可逆性问题。
-
-
参考资料:
[中英字幕]吴恩达机器学习系列课程
黄海广博士 - 吴恩达机器学习个人笔记