test/test.md
2025-06-10 06:59:08 +00:00

18 KiB
Raw Blame History

回归

  • 最小二乘解: min_\theta \| y_{N \times 1}-X_{N\times d} \theta_{d\times 1} \|

$$ \hat \theta=(X^T X)^{-1} X^T y \ Cov(\hat\theta)= \frac{\sigma^2}{X^TX}= \sigma^2 \sum \frac{\alpha_i\alpha_i^T}{ \lambda_i} \ Var(\hat\theta_i)=\frac{\sigma^2}{RSS_i} = \frac{\sigma^2}{TSS_i} /(1-R_i^2) $$
这里RSS和R2为剩余特征对第i个特征回归

  • 最小二乘同时也是 CCA dim y = 1 时的特殊情形

  • R-sqauredTSS=ESS+RSS, R^2=1-\frac{RSS}{TSS}=\frac{ESS}{TSS} ,增加额外的特征R-Squared一定不减

  • 对于高维 regression 我们定义Adjusted R-Squared: 1-\frac{RSS/(N-d)}{TSS/(N-1)} 有可能会负,且一定小于 R-squared。如果增加更多无意义的变量Adjusted R-squared 会下降R-squared和Adjusted R-squared 之间的差距会越来越大。

  • 对无截距项的R-squared, 如果依然按照有截距项的定义,不再保证[0,1]

  • 不再保证[0,1]的问题也会出现在 out of sample 上

  • 注意当特征个数大于样本个数的时候 X^T X 就会退化MLR能够完美拟合即残差为 0, 最优解不唯一

  • 当 X 本身不满秩即特征之间存在相关性时,也会退化。但最优预测依然唯一存在,只是最优解不再唯一。

  • 重复数据 (XT , XT )T 和数乘 λX 对系数估计和 y 预测没有影响。估计的方差会变小,所以T检验会变大R-Squared没有影响F 检验会被影响,主要是由于样本个数变化引起的 degree 变化。

  • 增加线性相关的特征,不会影响系数估计和 y 的预测,因此也不会影响 R-Squared。会改变F检验的值主要也是因为特征数目的改变引起 degree变化。

  • 增加线性相关的特征变量估计方差增加而减小T检验的值这个可以从 VIF中可以看出。整体的MSE也会因此变大。这也可以用来解释多重共线性时单个系数会不显著。

  • 较大的系数估计方差往往对应较大的系数即特征对输入变化非常敏感,使得估计不稳定,也就会带来过拟合的风险。

  • 增加额外的特征R-Squared一定不减。特征 v2 与 y 无关但与 v1 相关,增加 v2 可以使拟合变得更好(增大 R-squared也被解释成 v2 抑制了 v1 与 y 无关的部分,使得整体的拟合更加好。

  • 局部的比例A比B高但是整体比例B却比A高。隐藏变量的存在使得局部相关性和整体的相关性相反。

  • 增加新的变量后原来变量与新增变量越相关方差就会变得越大。因此整体的MSE也会因此变大。这也可以用来解释多重共线性时单个系数会不显著相关性增大了方差减小了 t 检验值)。

  • $$ \hat y=X(X^TX)^{-1}X^Ty=:Hy \ \hat y - y=:e=(I-H) \epsilon $$

  • F检验 F= \frac{ESS/d-1}{RSS/N-d} = \sim F_{d-1,N-d}

  • T检验 T_i = \frac{\hat\theta_i}{\sqrt{\hat\sigma^2 c_{ii}}} \sim t_{N-d} ,这里 c_{ii}= (X^T X)^{1} 的对角线上第 i 个元素, \hat\sigma^2=RSS/(N-d) 。 p-value 越小或者 Ti 越大说明特征 xi 可以有效预测 y。 T 检验不显著的原因可能是特征本身与 y 无关或者特征过多把单个特征的解释性稀释了。

  • 增加线性相关的特征,不会影响系数估计和 y 的预测,因此也不会影响 R-Squared

  • 加入线性相关的特征会改变 F 检验的值,主要因为特征数目的改变引起 degree 变化

  • 多重共线性主要会影响:

    • 参数估计的方差增大,方差增大会导致:两个特征相关性高夹角很小,所以任一特征向量的微小变动都会引起它们张成的线性子空间大幅变动,而使得 y 的投影变化很大
    • 难以区分每个特征的重要性比如原本相似重要性的三个特征对某特征x3加入多重共线性使其变成会给你错误判断x1, x2不重要这与PCA类似
    • 变量的显著性 T 检验失去意义
  • 多重共线性的检测方法:

    • F 检验很显著(或者 R-Squared很大但是每个特征的T检验不显著
    • 定义容忍度 (Tolerance) 和方差扩大因子 (Variance Inflation Factor, VIF) T_i:= 1-R_i^2 , V_i=1/T_i 容忍度越小或者 VIF 越大,说明该特征的多重共线性就越严重。一般 10 以上的 VIF 被认为严重多重共线性5 以下则不需要处理;中间视情况而定。
    • 回归系数的正负号与预期的相反;
  • 解决多重共线性问题的方法包括:

    • 手动删除高相关的特征;
    • 增加样本容量;
    • Ridge, LASSO
    • PCR
    • 逐步回归 (Stepwise Regression): 利用加进线性相关的特征对拟合并没有太多改善。选择每个特征1维回归F检验最大作为第一变量然后选择第2,3...变量
  • LASSO和RIDGE中较大的正则系数给出较小的参数的先验方差, 以防止过拟合

  • LASSO求解:

    • 次梯度法。但并不能得到真正的稀疏解,只会使解的部分数值尽可能小;而近端梯度和坐标下降能得到。
    • 坐标梯度下降
    • 近端梯度下降
    • 修正 LARS。 但LARS 是给出不同 λ 的一系列 LASSO 的解,不能给出指定 λ 的解。
  • LASSO 的一些性质:

    • 在正交的假设下LASSO 的解是在 OLS 解的基础上套上了 soft thresholding function。可解释 LASSO 的稀疏性
    • LASSO 系数不像 Ridge 按比例缩小而是按绝对数值减少,因此可以达到 0
    • 当 LASSO 面对一组互相关的特征时它们只会选择其中一项特征。因此除去稀疏性Ridge往往比LASSO拥有较小的偏差而更好
    • \lambda \geq 2 \| X^T y \|_{\infty}所有的系数都会等于0
  • Ridge 的一些性质:

    • 样本矩阵正交时Ridge 的解与 OLS 的解差因子 \lambda+1
    • Ridge 是有偏估计
    • Ridge 是对 OLS 解的压缩 \hat \| \theta(\lambda)\| \leq \| \theta\| 。但单个系数也有可能随着 k 的增加而增加
    • Ridge 能够降低 OLS 的 MSE. 但当 λ 选取不恰当时MSE 也有可能高于 OLS 即虽然正则项降低了方差,但增加了更多的偏差。
    • 当 Ridge 面对一组互相关的特征时,它会趋于给相关特征分配相似的系数。
    • X 的列向量间相关性不高时,改变 λ 的值并不能显著的改善 MSE
    • Ridge 系数只是按比例缩小而不会真的达到 0. 因此 Ridge 没有 LASSO 那样的稀疏性来做特征选择。
  • 内核岭回归 (Kernel Ridge Regression, KRR)预测y可以写成与x相关的只有內积项的公式可以使用 SVM 中的核技巧代替内积

  • Reduce Multicollinearity 通过拓展矩阵ridge等价于OLS

  • 通过X 的紧奇异值分解 $$ \hat y_{ridge}=U diag(\frac{\lambda_i}{\lambda_i+\lambda})U^Ty\ \hat y_{OLS}=U I U^Ty\ \hat y_{PCR}=U diag(I_k, 0) U^Ty $$ OLS 可以看做 λ = 0 的情形PCR 则可以看做前 k 个λ为0, 其余的主成分无穷. ridge为PCR的smoothingridge偏向于惩罚小的主成分。

  • λ 的选取:

    • 岭迹法 (ridge trace): 使得绝大多数参数估计的系数都有符合实际意义的绝对值和符号;或所有系数作为 λ 的函数相对稳定。
    • 使得所有 VIF ≤ 10.
    • 给定一个常数c > 1, 我们选取λ, s.t. RSS(λ) < cRSS.
  • ridge LASSO 都sensitive to the outliersridge对大系数的惩罚更重一点所以对outliers 更敏感Ridge 的主要作用是除去多重共线性而不是降低方差

  • 较大的系数估计方差往往对应较大的系数;正则化是参数估计 bias 和 variance 的权衡,正则化系数越大,参数估计的 variance 就小而 bias 就越大;

  • L2 正则有 Weight Decay 特点,但不会达到 0, 因此不会有 L1 的稀疏性。

  • 从梯度更新公式可以看出L2权重按比例缩小L1权重减去的是一个绝对数值

  • L1 的梯度下降方法:

    • 次梯度法
    • 近端梯度下降(Proximal Gradient Descent, PGD)。在OLS的梯度下降走一步基础上 \leq 阙值的分量归为0
    • 坐标下降
  • Best subset selection也就是L0 正则求解方法Forward-Stepwise Selection从没有特征开始逐项选择拟合最好的特征Backward-Stepwise Selection: 从全特征开始,逐项剔除拟合最差的特征

  • 弹性网 (Elastic Net):约束形状与 1 < p < 2 的范数约束形状十分相似,我们可以近似的看成一个介于 Ridge 和 LASSO 之间的Lp 正则

  • 弹性网不会像 LASSO 那样只选择其中一个,而是趋于把相关特征分配相似的系数,从而解决的 LASSO 丢失信息的问题。

  • 当样本矩阵正交时:

    • L0 \hat \theta_i I_{\theta_i \geq \sqrt{\lambda} }
    • L1: \hat \theta_i (1-\frac{\lambda}{|\hat \theta_i |})^+
    • L2: \frac{1}{1+\lambda} \hat \theta_i
    • Elastic Net: \frac{1}{1+\lambda_2} \hat \theta_i^{LASSO}
  • LASSO 像是L2和L0的结合压缩 OLS 系数的同时让一部分系数为 0.

  • 弹性网像是L2和l1的结合在LASSO的基础上再进行压缩。

  • LARS算法的工作原理可以简要概述为以下几个步骤

    • 初始化:所有回归系数初始化为零。
    • 选择变量:在每一步,选择当前与残差最相关的变量,将其加入到活跃集合中。
    • 计算方向:沿着这个方向向前移动,使得新的残差与所有在活跃集合中的变量等角度相关。
    • 更新系数:逐步增加选择变量的系数,直到另一个变量与残差同样相关,或某个变量的系数变为零。
    • 重复步骤:重复选择变量和更新系数的步骤,直到满足停止条件(如达到预定的变量数或误差标准)。
  • PLSR: 同时考虑 x 的方差y 的方差以及 x, y 之间的相关性。

  • CCA: 只考虑了 x, y 之间的相关性。Special case dim y = 1 : Linear regression

  • PCA: 只考虑了 x 的方差。

  • 高斯过程回归:非参数的贝叶斯回归方法,通过高斯过程先验对数据进行建模,进而预测新的数据点的输出的分布。可提供有意义的置信区间和后验样本以及预测值,而内核岭回归仅提供预测。

  • 逻辑斯蒂回归 (Logistic regression): P(Y=1|X=x)=\frac{1}{1+e^{-x^T \theta}}:=logistic(x^T \theta)

  • logistic 函数类似一个概率分布 (CDF)

  • 标签imbalance不会影响逻辑斯蒂回归的齐次项系数只会影响截距。所以适当调整阙值imbalance 并不会影响预测。

  • 逻辑斯蒂回归在样本线性可分时表现很差。因为当 ||θ|| → ∞ 时logistic 函数会成为在 0 点跳跃的阶梯函数。会使参数趋于无穷大来最大化似然函数。可加入 L1, L2 正则来避免过拟合。

  • 二阶的牛顿法求解逻辑斯蒂回归等价于求多个加权最小二乘解因此被称为Iteratively Reweighted Least Squares (IRLS)

  • 广义线性模型 (Generalized linear model, GLM)logistic函数换成任意一个函数。

  • 特别的probit(正态分布的CDF) 函数时候为probit 回归。logistic比probit有更粗的 tail. 因此当样本中有 outliers 或者取值跨度很大时logistic更加robust

  • 多类别逻辑回归:(up to a const.) P(Y=k|X=x)=\frac{e^{x^T \theta_k}}{\sum\limits_{i=1}^K e^{x^T \theta_i}} Softmax 可以看做最值指标函数的smoothing。MLE等价于交叉熵损失函数。(i为样本 k为类) \sum_i \sum_k 1_{y_i=k} \log P(Y=k|X=x_i)

  • 分位回归: \min\limits_{\theta} \sum\limits_{y_i > x^T \theta} (y_i - x^T \theta) \tau + \sum\limits_{y_i < x^T \theta} ( x^T \theta - y_i) (1-\tau)

    • 能够更加全面的描述响应变量条件分布的全貌。
    • 对离群点则表现的更加稳健
    • 对误差项不要求很强的假设,因此对非正态而言更加稳健。

感知机

  • 分类函数 f(x)=sign(w^T x+b)
  • Loss函数 \sum\limits_{x_i 误分点} - y_i (w^T x+b)
  • 使用随机梯度下降法 (stochastic gradient descent, SGD)每次更新梯度 associate with 随机误分点。训练集线性不可分时,该算法不收敛。

K近邻法 (K-nearest neighbor, K-NN)

  • 选取最近的K个点集每个点加权评分。
  • 一般最优的 K 值通过交叉验证来获得。
  • kd搜索树是二叉搜索树 (binary search tree, BST), 在训练集中,找到按某个维度的中位数做划分
  • kd树搜索找出目标点 x 对应的叶节点 l 作为起始点;逐级往上搜索,如果新的最近点出现更新最近点;搜索到某个节点时,考察兄弟点, 考察某两集合,如果相交则对该点的子树递归,不相交则继续往上搜。
  • 当要搜寻 K 个最邻近点时:将最先搜索到的 K 个点作为初始值替换当前K个点中的最远距离的点。
  • 当样本点个数远大于维度: N \gg 2^k 时效率较高否则kd Tree 几乎和线性搜索一样遍历所有点。
  • Ball 树,为了解决 kd 树在高维上效率低下的问题:
    1. 先构建一个包含所有样本的最小球体;
    2. 从球中选择一个离球的中心最远的点然后选择第二个点离第一个点最远将球中所有的点分配到离这两个聚类中心最近的一个上然后计算每个聚类的中心以及聚类能够包含它所有数据点所需的最小半径。得到两个子超球体和kd树里左右子树对应
    3. 对于这两个子超球体递归得到ball 树。
  • ball Tree 的结点个数由样本个数确定

朴素贝叶斯法

  • 独立假设下 \max\limits_k P(Y=c_k| X=x ) = \max\limits_k P(Y=c_k) \prod\limits_i P(X^i =x^i|Y=c_k)
  • 最大化 Y 的后验概率MAP实际上就是最小化 0-1损失函数 (L0-norm) 下的贝叶斯风险。
  • 朴素贝叶斯由于简单的无关假设,是一种高偏差低方差的算法。尤其是特征之间存现相关时,偏差会比较大。
  • 独立性假设做一定的放松,独依赖估计(One-Dependent Estimator, ODE)。SPODE (Super-Parent ODE)假设所有特征都依赖于同一个特征超父然后通过交叉验证等模型选择方法来确定超父。AODE (Average ODE)将样本的特征依次作为超父来计算概率最后求和。
  • 每个特征的独立性可以 conditional on k 个父特征拓展为 KDE。随着k增加所需的训练样本数量将以指数级增加。KDE 的表述即是贝叶斯网

最大熵模型

  • 寻求最优的 P(Y|X) 最大化他的经验条件熵max H(Y|X),在某些给定特征函数相关的约束条件下。
  • 转化为等价的对偶极小极大问题: \max\limits_\omega \min\limits_P L(P,\omega)
  • 对偶极小的解: P_\omega(y|x) = \frac{1}{Z(\omega,x)} exp(\sum \omega_i f_i(x,y)) ,这里 f_i 为特征函数。因此最大熵模型与逻辑斯蒂回归模型类似都被叫做对数线性模型
  • \omega 为参数的模型 P_\omega(y|x) 的MLE等同于上面的对偶极大 \max\limits_\omega
  • 最优化问题可以使用经典的牛顿法和拟牛顿法, 还有一种迭代尺度法 (improved iterative scaling, IIS): 找到对数似然的一个可以迭代递增的下界,再通过最大化下界迭代求解

支持向量机 (SVM)

  • 函数间隔 y_i(w_i^T x+ b) ;几何间隔 y_i(w_i^T x+ b)/\|\omega\|
  • 可分SVM \min\limits_{\omega,b} \|\omega\|^2 /2 s.t. y_i(w_i^T x+ b)-1 \geq 0
  • 不可分SVM原始问题 $$ \min\limits_{\omega,b,\xi} |\omega|^2 /2 + C \sum \xi_i \ , \ s.t. ,,, y_i(w_i^T x+ b) \geq 1- \xi_i, , , \xi_i \geq 0 $$
  • 等价的 KKT condition (原始变量 \omega,b,\xi ,对偶变量 \alpha_i, \mu_i )
    • \alpha_i=0 xi在临界平面之内
    • 0<\alpha_i < C xi 在临界平面上
    • \alpha_i=C :ξ < 1xi 越过临界超平面但在分离平面正确一侧;ξ = 1xi 在分离平面上;ξ > 1xi 在分离平面错误一侧。
  • 把所有 \alpha_i >0 即所有越过临界平面的 xi 叫做软间隔 (soft margin) 的支持向量
  • SVM 具有稀疏性(样本):分离平面即分类器完全由支持向量(α > 0来决定。
  • 不可分SVM对偶问题 $$ \min\limits_{\alpha} \frac{1}{2} \sum\limits_{i,j} \alpha_i \alpha_j y_i y_j (x_i^T x_j) - \sum\limits_i \alpha_i \ \sum\limits_i \alpha_i y_i=0 , ,, 0\leq \alpha_i \leq C $$
    对偶问题最优解与原问题之间关系 $$ \omega=\sum \alpha_iy_ix_i\ b=y_j-\sum y_i \alpha_i(x_i^T x_j) $$
  • 合页损失函数 (hinge loss function),无约束优化问题: \min\limits_{\omega,b} C(1-y_i(w_i^T x+ b))^+ + \|\omega\|^2/2 SVM是一种自动正则化的方法。能够很好的处理高维数据。因为它只取决于线性超平面和支持向量计算成本不会随着维数的增加而急剧增加。
  • 核技巧:不直接定义点的映射,而是定义映射后的內积即核函数代替原空间里的內积
  • 序列最小化求解对偶问题 (sequential minimal optimization, SMO)
    • 每次只优化两个 α1, α2固定其他
    • 调整b使第一步中的最优解满足KKT。
    • 选取另外一对α直到所有的α都满足KKT。
  • 多类SVM
    • 一对多法 (one-versus-rest, OVR; one-versus-all): 把某个类别的样本归为一类其他剩余的样本归为另一类需要k个SVM将未知样本分类为具有最大分类函数值。这种方法存在 bia。
    • 一对一法 (one-versus-one, OVO): 在任意两类样本之间设计一个SVM。分类时用最后得票最多的类别
  • SVR回归损失函数 \min\limits_{\omega,b} C \sum (|y_i-(w_i^T x+ b)|-\epsilon)^+ + \|\omega\|^2/2 考虑上/下松弛变量,等价于 $$ \min C \sum (\xi_i + \hat\xi_i ) + |\omega|^2/2\ s.t. , ,0 \leq\xi_i , \hat\xi_i ; , , -\epsilon - \hat\xi_i \leq y_i-(w_i^T x+ b) \leq \epsilon + \xi_i $ 类似SVR的对偶问题得到原变量和对偶变量关系 \omega = \sum(\alpha_i-\hat\alpha_i)x_i ,只有在带宽内的点有 \alpha_i-\hat\alpha_i=0 $
  • 对比岭回归KRR和SVR。类似都使用 L2 正则都可以使用核技巧。不同损失函数不同KRR 有解析解KRR对中等规模训练速度通常更快SVR适用于较大的训练集SVR稀疏性预测比KRR快。
  • One Class SVM $$ \min\limits_{r,o} V(r,o)+ C \sum \xi_i\ s.t. ,, |x_i-o|\leq r+ \xi_i; ,,, \xi_i \geq0 $$
  • 校准概率 (Calibrate Probability):在 score g(xi)基础上再训练一个 [0, 1] 之间的函数 (calibration regressor) 来表示xi被预测成1的校准概率。