总体最小二乘 total least-squared TLS

文章讨论了在数据描述中,当行数大于方程数时如何通过奇异值分解(SVD)解决总最小二乘问题。通过Eckart-Young定理找到秩k的最优近似,特别强调了在Frobenius范数约束下的求解过程。
0 TL; DR

(\mathbf{Y}+\tilde{\mathbf{Y}})_{m\times k}=(\mathbf{X}+\tilde{\mathbf{X}})_{m\times n}\mathbf{A}_{n\times k}在最小化\Vert[\tilde{\mathbf{X}}\;\tilde{\mathbf{Y}}]\Vert ^2_F意义下的最优解,先对合并矩阵做奇异值分解

[\mathbf{X}\;\mathbf{Y}]=\mathbf{U\Sigma}\left[\begin{array}{cc}\mathbf{V}_{pp}&\mathbf{V}_{pq}\\\mathbf{V}_{qp}&\mathbf{V}_{qq}\end{array} \right ]^T

其中\mathbf{V}_{pp}n阶方阵,\mathbf{V}_{qq}k阶方阵,则\mathbf{A}_{\rm{tls}}=-\mathbf{V}_{pq}\mathbf{V}_{qq}^{-1}

[~,~,V] = svd([X Y]);
A_tls = -V(1:n,n+1:end)/V(n+1:end,n+1:end);

1 问题描述

给定一组数据[\mathbf{X}_{m\times n} \mathbf{Y}_{m\times k}],描述这组数据的线性模型可以写成\mathbf{Y}\approx\mathbf{XA}\mathbf{X}的行数要大于\mathbf{X}的秩(m>n),或者说方程数要大于未知数个数,最小二乘只考虑最小化输出\mathbf{Y}的误差

\rm{min}\Vert\tilde{\mathbf{Y}}\Vert^2_F\;\;\rm{s.t.}\;\mathbf{Y}+\tilde{\mathbf{Y}}=\mathbf{XA}

上面的式子一般会写成大家熟悉的形式\rm{min}\Vert\mathbf{Y}-\mathbf{XA}\Vert^2_F,解就是大家喜闻乐见的

\mathbf{A}_{\rm{ls}}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{Y}

现在考虑\mathbf{X}也有相当的误差,问题变成

\rm{min}\Vert[\tilde{\mathbf{X}}\;\tilde{\mathbf{Y}} ]\Vert^2_F\;\;\rm{s.t.}\;\mathbf{Y}+\tilde{\mathbf{Y}}=(\mathbf{X}+\tilde{\mathbf{X}})\mathbf{A}

其中\Vert\mathbf{Z}\Vert^2_F\mathbf{Z}的Frobenius范数\Vert\mathbf{Z}\Vert^2_F=\rm{trace}(\mathbf{Z}^T\mathbf{Z})=\sum_{i,j}Z_{ij}^2

约束条件可以改写成

[\mathbf{X}+\tilde{\mathbf{X}},\;\mathbf{Y}+\tilde{\mathbf{Y}}]\left[\begin{array}{c}\mathbf{A}_{n\times k}\\-\mathbf{I}_{k\times k} \end{array} \right ]=\mathbf{0}_{m\times k}

2 奇异值分解

\mathbf{X}的奇异值分解为\mathbf{X}=\mathbf{U\Sigma V}^T

\mathbf{X}_{m\times n}=\left[\begin{array}{cccc}\mathbf{u}_1&\mathbf{u}_2&\ldots&\mathbf{u}_m\end{array}\right]_{m\times m}\left[\begin{array}{cccc}\sigma_1&&&\\&\sigma_2&&\\\ &&\ddots&\\ &&&\sigma_n\\&&&\\&&& \end{array}\right]_{m\times n}\left[\begin{array}{c}\mathbf{v}^T_1\\\mathbf{v}^T_2\\\vdots\\\mathbf{v}^T_n\end{array}\right]_{n\times n}n+k

\mathbf{U},\mathbf{V}是正交矩阵,\mathbf{U}^T\mathbf{U}=\mathbf{I},\mathbf{V}^T\mathbf{V}=\mathbf{I}\sigma_1\geq\sigma_2\geq\ldots\sigma_n\geq0,对于秩为n的矩阵\mathbf{X}\mathbf{\Sigma}最多只有n个不为零的对角元素,因此\mathbf{X}可以写成\mathbf{X}=\sum_{i=1}^n\sigma_i\mathbf{u}_i\mathbf{v}_i^T

在这里引入Eckart-Young定理,\hat{\mathbf{X}}_k=\sum_{i=1}^{k}\sigma_i\mathbf{u}_i\mathbf{v}_i^T

\underset{\mathbf{X}_k,\rm{rank}(\mathbf{X}_k)=k}{\min}\Vert\mathbf{X}-\mathbf{X}_k\Vert^2_F

的最优解,即\hat{\mathbf{X}}_k\mathbf{X}的最优rank-k近似

3 以SVD求解TLS问题

[\mathbf{X}\; \mathbf{Y}]做奇异值分解

[\mathbf{X}\;\mathbf{Y}]\left[\begin{array}{cc}\mathbf{V}_{pp}&\mathbf{V}_{pq}\\\mathbf{V}_{qp}&\mathbf{V}_{qq} \end{array} \right ]=\left[\begin{array}{cc}\mathbf{U}_p&\mathbf{U}_q\end{array} \right ]\left[\begin{array}{cc}\mathbf{\Sigma}_p&\\&\mathbf{\Sigma}_q \end{array} \right ]

[\mathbf{X}\;\mathbf{Y}]\left[\begin{array}{c}\mathbf{V}_{pq}\\\mathbf{V}_{qq} \end{array} \right ]=\mathbf{U}_q\mathbf{\Sigma}_q

其中\mathbf{V}_{pp},\mathbf{\Sigma}_pn阶方阵,\mathbf{V}_{qq},\mathbf{\Sigma}_qk阶方阵,\mathbf{U}_pm\times n矩阵,\mathbf{U}_qm\times k矩阵,留意到\mathbf{\Sigma}只有n+k行,这是因为[\mathbf{X}\; \mathbf{Y}]最多只有n+k个不为零的奇异值,n+k行后面的可以省略。现在定义[\mathbf{X}+\tilde{\mathbf{X}}\;\mathbf{Y}+\tilde{\mathbf{Y}}][\mathbf{X}\; \mathbf{Y}]的rank-k近似

[\mathbf{X}+\tilde{\mathbf{X}}\;\mathbf{Y}+\tilde{\mathbf{Y}}]\left[\begin{array}{cc}\mathbf{V}_{pp}&\mathbf{V}_{pq}\\\mathbf{V}_{qp}&\mathbf{V}_{qq} \end{array} \right ]=\left[\begin{array}{cc}\mathbf{U}_p&\mathbf{U}_q\end{array} \right ]\left[\begin{array}{cc}\mathbf{\Sigma}_p&\\&\mathbf{0}_{k\times k} \end{array} \right ]

对比可得

[\tilde{\mathbf{X}}\;\tilde{\mathbf{Y}}]\left[\begin{array}{cc}\mathbf{V}_{pp}&\mathbf{V}_{pq}\\\mathbf{V}_{qp}&\mathbf{V}_{qq} \end{array} \right ]=\left[\begin{array}{cc}\mathbf{U}_p&\mathbf{U}_q\end{array} \right ]\left[\begin{array}{cc}\mathbf{0}_{n\times n}&\\&-\mathbf{\Sigma}_q \end{array} \right ]

[\tilde{\mathbf{X}}\;\tilde{\mathbf{Y}}]\left[\begin{array}{c}\mathbf{V}_{pq}\\\mathbf{V}_{qq} \end{array} \right ]=-\mathbf{U}_q\mathbf{\Sigma}_q

即得

[\mathbf{X}+\tilde{\mathbf{X}}\;\mathbf{Y}+\tilde{\mathbf{Y}}]\left[\begin{array}{c}\mathbf{V}_{pq}\\\mathbf{V}_{qq} \end{array} \right ]=\mathbf{0}_{m\times k}

\mathbf{A}_{\rm{tls}}=-\mathbf{V}_{pq}\mathbf{V}_{qq}^{-1}

Reference

[1] https://people.duke.edu/~hpgavin/SystemID/CourseNotes/TotalLeastSquares.pdf

<think> 我们正在讨论最小二乘思想的含义及其与R-squared的结合使用。根据引用内容,最小二乘思想在多个引用中出现: - 引用[1]提到最小二乘支持向量机(LSSVM)采用最小二乘法作为损失函数,将二次规划问题转化为线性方程组求解。 - 引用[2]描述了偏最小二乘回归(PLS)的过程,它通过提取成分并实施回归,最终表达成原变量的回归方程。 - 引用[3]对比了RANSAC与最小二乘法,指出最小二乘法适合误差较小的情况,而RANSAC对包含大量离群值的数据更鲁棒。 - 引用[5]是关于数据建模和最小二乘拟合的课程资料。 用户的问题包含两个部分: 1. 最小二乘思想的含义 2. 如何将最小二乘思想与R-squared结合使用 ### 最小二乘思想的含义 最小二乘法的核心思想是通过最小化误差的平方和来寻找数据的最佳函数匹配。具体来说,对于给定的数据点$(x_i, y_i)$,我们试图找到一个模型$f(x)$(例如线性模型$f(x) = ax + b$),使得所有数据点上的预测值与实际值之差的平方和最小。数学表达式为: $$\min \sum_{i=1}^{n} (y_i - f(x_i))^2$$ 其中,$n$是数据点的个数。最小二乘法可以用于线性或非线性模型的参数估计。在引用[3]中,它被描述为一种通过计算最小均方差关于参数的偏导数为零来求解参数的方法(即正规方程)。然而,当数据中存在大量离群值时,最小二乘法可能表现不佳,此时RANSAC等鲁棒方法更合适[^3]。 ### R-squared的含义 R-squared(决定系数)是评估回归模型拟合优度的统计量,表示模型解释的数据变异性的比例。其计算公式为: $$R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}$$ 其中: - $\hat{y}_i$是模型预测值, - $\bar{y}$是实际值$y_i$的均值。 $R^2$的取值范围在0到1之间,值越大表示模型解释的变异比例越高,拟合效果越好。 ### 最小二乘与R-squared的结合使用 最小二乘法和R-squared在回归分析中通常一起使用: 1. **参数估计**:使用最小二乘法估计模型参数(例如线性回归中的斜率和截距),使得残差平方和(SSE)最小。 2. **拟合优度评估**:利用R-squared评估最小二乘估计得到的模型的拟合效果。 具体步骤: 1. **使用最小二乘法建立模型**:例如,对于线性回归,求解参数$\beta$使得: $$\min_{\beta} \| Y - X\beta \|^2$$ 其中,$Y$是因变量向量,$X$是设计矩阵(包含自变量和常数项)。通过求解正规方程$X^TX\beta = X^TY$得到$\hat{\beta}$[^3]。 2. **计算R-squared**: - 计算总平方和(SST):$SST = \sum_{i=1}^{n} (y_i - \bar{y})^2$ - 计算残差平方和(SSE):$SSE = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2$ - 则$R^2 = 1 - \frac{SSE}{SST}$ ### 示例说明 假设有一组数据点,我们使用最小二乘法拟合一条直线。拟合完成后,计算预测值$\hat{y}_i$,然后计算$R^2$。如果$R^2 = 0.85$,表明该直线模型解释了85%的数据变异性。 ### 注意事项 - 最小二乘法假设误差服从正态分布且同方差,当数据中存在离群值或异方差时,可能需要其他方法(如引用[3]提到的RANSAC或加权最小二乘)。 - $R^2$并非万能指标,它随着模型中自变量数量的增加而增加(即使新增变量无关紧要),因此调整$R^2$(Adjusted R-squared)可能更合适[^2]。 ### 总结 最小二乘思想提供了一种参数估计方法,而R-squared提供了模型拟合优度的评价。两者结合是回归分析的标准流程:用最小二乘法求解参数,用R-squared评估拟合效果。 §§相关问题§§ 1. 最小二乘法在存在离群值时有哪些替代方法? 2. 如何解释调整R-squared(Adjusted R-squared)? 3. 最小二乘支持向量机(LSSVM)与普通最小二乘回归有何区别? </think> ### 最小二乘思想的含义 最小二乘法是一种通过最小化**残差平方和**来估计模型参数的核心思想。其核心原理可概括为: 对于给定数据点 $(x_i, y_i)$ 和模型 $f(x; \beta)$(其中 $\beta$ 为待估参数),求解最优参数 $\hat{\beta}$ 使得: $$\min_{\beta} \sum_{i=1}^n \left[ y_i - f(x_i; \beta) \right]^2$$ 这一思想在多个引用中被深入阐述: 1. **核心目标**:通过最小化误差平方和消除正负误差抵消(引用[3]),使模型整体拟合最优。 2. **数学本质**:求解过程等价于求解**正规方程** $X^TX\beta = X^TY$(引用[5]),将优化问题转化为线性方程组。 3. **适用场景**: - 适用于误差较小且分布均匀的数据(引用[3]) - 对离群值敏感,此时需结合RANSAC等鲁棒方法(引用[3]) 4. **变体扩展**: - **偏最小二乘(PLS)**:通过迭代提取成分处理多重共线性(引用[2]) - **LSSVM**:将最小二乘损失函数引入支持向量机(引用[1]) --- ### 与R-squared的结合使用方法 R-squared(决定系数)是评估最小二乘模型拟合优度的核心指标,两者结合使用流程如下: #### 步骤1:最小二乘参数估计 1. 建立模型(以线性回归为例): $$y = \beta_0 + \beta_1 x + \varepsilon$$ 2. 求解最小二乘目标函数: $$\min_{\beta_0,\beta_1} \sum_{i=1}^n (y_i - \hat{y}_i)^2 \quad \text{其中} \quad \hat{y}_i = \beta_0 + \beta_1 x_i$$ 通过求导得闭式解(引用[5]): $$ \hat{\beta}_1 = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2}, \quad \hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x} $$ #### 步骤2:计算R-squared评估拟合优度 1. **分解平方和**: $$ \underbrace{\sum (y_i - \bar{y})^2}_{SST} = \underbrace{\sum (\hat{y}_i - \bar{y})^2}_{SSR} + \underbrace{\sum (y_i - \hat{y}_i)^2}_{SSE} $$ - $SST$:总变异(Total Sum of Squares) - $SSR$:模型解释的变异(Regression Sum of Squares) - $SSE$:残差变异(Error Sum of Squares) 2. **R-squared公式**: $$R^2 = 1 - \frac{SSE}{SST} = \frac{SSR}{SST}$$ 其值域为 $[0,1]$,值越大表示模型解释能力越强。 #### 步骤3:结果解读与优化 | R²值范围 | 拟合程度 | 后续动作 | |----------|----------------|------------------------------| | $R^2 > 0.8$ | 优秀 | 直接应用模型 | | $0.5 \leq R^2 < 0.8$ | 可接受 | 检查残差分布 | | $R^2 < 0.5$ | 较差 | 改进模型(如PLS或LSSVM[^1][^2]) | > **关键注意事项**: > - R² 只能评估最小二乘模型**内样本**的拟合度,需交叉验证避免过拟合(引用[5])。 > - 当加入无关变量时R² 可能虚假增高,需使用**调整R²**: > $$\text{Adjusted } R^2 = 1 - \frac{(1-R^2)(n-1)}{n-p-1}$$ > 其中 $p$ 为自变量个数,$n$ 为样本量。 --- ### 典型应用场景示例 1. **线性回归分析**: - 最小二乘估计参数 → 计算R² → 若R²>0.7 接受模型 - **代码片段(Python)**: ```python from sklearn.linear_model import LinearRegression from sklearn.metrics import r2_score model = LinearRegression() model.fit(X, y) # 最小二乘拟合 y_pred = model.predict(X) r2 = r2_score(y, y_pred) # 计算R-squared ``` 2. **模型优化**: - 若R²过低,采用**偏最小二乘(PLS)** 提取成分(引用[2]): ```python from sklearn.cross_decomposition import PLSRegression pls = PLSRegression(n_components=2) pls.fit(X, y) # 迭代提取成分 r2 = pls.score(X, y) ``` 3. **异常值处理**: - 当数据含离群点时,最小二乘+R² 可能失效 → 改用 **RANSAC算法**(引用[3]): ```python from sklearn.linear_model import RANSACRegressor ransac = RANSACRegressor() ransac.fit(X, y) # 鲁棒拟合 inlier_mask = ransac.inlier_mask_ # 识别内群点 ``` --- ### 总结 - **最小二乘**:参数估计的数学框架,核心是最小化残差平方和。 - **R-squared**:评价最小二乘模型拟合效果的标准化指标。 - **结合使用**: 1. 用最小二乘求解模型参数 2. 用R²量化模型解释能力 3. 根据R²值优化模型(如引入PLS、LSSVM或RANSAC) > 最终目标:在保证最小二乘优化目标的前提下,最大化R²以提升模型预测能力[^1][^3][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值