Why is Least Squares?为啥是最小二乘法?

本文深入探讨了最小二乘法的两种推导方法,一是基于正态分布的高斯误差函数,二是通过残差最小化的数值分析。前者由Ng提出,后者则从残向量的2-范数最小化出发,构建最佳平方逼近。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降算法出现了最小二乘法,这是一种非常普遍的拟合函数的近似算法。但是,3次,4次都不是,为什么正好是平方形式呢?
大概在高中时?老师谈到该方法,直接在散点图上划出一条直线,并作垂足,取最小距离,因为直线一侧定义为正,一侧为负,所以取平方值,综合所有点距离之和,最后所得即为最小二乘形式。

首先叙述Ng的方法,该方法是将离散的数据赋予概率的意义,然后估计参数。当然这并非“完全正确的”。实际上,将理论应用时从来不可能做到完全正确。

1.高斯分布误差函数导出

在这里插入图片描述
在这里插入图片描述
该证明:
(1)假设了误差(矢量)符合正态分布特性,导出了以给定thera为参数情况下,已知特征X,Y服从的分布。
(2)假设误差(矢量)服从独立同分布,导出参数似然性。
利用极大似然估计,直接对参数进行估计。

这个证明很简洁,但是谜之假设了正态分布,为啥酱紫假设?Ng说,因为这样是有道理的,因为实际情况反馈的是,这样的假设是符合实际情况的,也因为正态分布的性质实在太诱人了。综合上,所以这样假设。-.-…老师说的有道理。。。

2.残差最小化导出

数值分析课上,老师曾经利用最小2-范数来解释最小二乘法。如下:
介绍最小二乘法之前首先引入最佳平方逼近 在最佳平方逼近前 先引入两个引理

2.1最佳平方逼近

2.1.1 Cauchy-Schwarz 不等式

Lemma 1:
在这里插入图片描述

2.1.2 Gram矩阵

Lemma 2:
在这里插入图片描述
在这里插入图片描述
下面介绍最佳平方逼近
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2 Least Squares

以下开始LS导出。首先构造残向量,各点预测值与实际值的差称残差。
在这里插入图片描述
在这里插入图片描述
哈尔条件:https://baike.baidu.com/item/哈尔条件/18935946?fr=aladdin

利用残向量的2-范数最小化,构造关于原始函数的最佳平方逼近,所得的形式恰好是我们常见的最小二乘法形式。相对于Ng的突然出现的正态假设似乎更加令我能够接受,但是推导比较复杂。

以上2种方法均是建立在连续基础上的,当然,离散问题也可使用,本来的,最小二乘法就是一种近似,一定范围内的误差是可以接受的。

### 对数最小二乘法在层次分析法中的原理与应用 在层次分析法(AHP)中,对数最小二乘法是一种用于计算判断矩阵权重向量的方法。与传统的和法、根法以及特征根方法相比,对数最小二乘法通过最小化判断矩阵中元素与权重比值之间的对数误差平方和来求解权重,具有更高的精度和稳定性。 #### 原理 对数最小二乘法的基本思想是将判断矩阵中的元素 $ a_{ij} $ 与对应的权重比值 $ \frac{w_i}{w_j} $ 之间的对数误差平方和最小化。具体来说,设判断矩阵为 $ A = (a_{ij})_{n \times n} $,权重向量为 $ w = (w_1, w_2, \dots, w_n)^T $,则目标函数为: $$ \min \sum_{i=1}^{n} \sum_{j=1}^{n} \left( \ln a_{ij} - \ln \frac{w_i}{w_j} \right)^2 $$ 该目标函数的最小化过程可以通过非线性优化方法求解。最终得到的权重向量 $ w $ 即为对数最小二乘法的解。 #### 应用 在实际应用中,对数最小二乘法通常用于解决层次分析法中的权重计算问题,尤其是在需要高精度权重的情况下。由于该方法能够有效减少判断矩阵中不一致性的负面影响,因此在处理复杂决策问题时表现出较好的鲁棒性[^5]。 此外,对数最小二乘法还可以与其他权重计算方法(如特征根方法、和法、根法)结合使用,以提高结果的稳定性。通过对比不同方法得到的权重,并取其平均值,可以进一步减少单一方法可能带来的偏差,从而获得更可靠的决策支持[^5]。 #### 代码实现 以下是一个简单的 MATLAB 代码示例,展示如何使用对数最小二乘法计算判断矩阵的权重向量: ```matlab function w = log_least_squares(A) n = size(A, 1); % 初始化权重向量 w = ones(n, 1); % 定义目标函数 obj_func = @(w) log_least_squares_objective(w, A, n); % 使用非线性优化求解 options = optimoptions('fminunc', 'Display', 'off'); w_opt = fminunc(obj_func, w, options); % 归一化权重向量 w = w_opt / sum(w_opt); end function cost = log_least_squares_objective(w, A, n) cost = 0; for i = 1:n for j = 1:n cost = cost + (log(A(i, j)) - log(w(i)/w(j)))^2; end end end ``` 上述代码定义了一个函数 `log_least_squares`,它接受一个判断矩阵 $ A $ 作为输入,并返回归一化后的权重向量 $ w $。该函数使用 `fminunc` 进行非线性优化,以最小化目标函数中的对数误差平方和。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值