如何计算加权最小二乘法的样本权重?

  统计/机器学习 回归分析 损失函数    浏览次数:9247        分享
1

如果想用加权最小二乘法进行回归,如何计算每个样本该加多少的权重呢?

 

新同学   2018-09-17 11:31



   2个回答 
4

最小二乘是求残差$e=Xw-y$的最大似然,也就是求最小-log似然。为简化问题,假设$e$是样本独立的nx1高斯分布,n是数据个数,$e$的nxn协方差矩阵$\Sigma_{ee}$是对角线矩阵,每个数据点在loss function中的权重是其残差的方差的倒数$1/var(e_i)$。换句话说,$e_i$方差越大,越不可信,其权重越小。而$e_i$方差的估计由实际问题的统计模型决定,我觉得是最小二乘框架中最重要,最体现对实际问题理解程度的地方。

$$\Sigma_{ee}=\begin{bmatrix} var(e_1) & & \\ & \ddots & \\ & & var(e_n) \end{bmatrix}$$

$$\Sigma_{ee}^{-1}=\begin{bmatrix} 1/var(e_1) & & \\ & \ddots & \\ & & 1/var(e_n) \end{bmatrix}$$

数据点加权的-logloss function是

$$-\log L(w)=(Xw-y)^T\Sigma_{ee}^{-1}(Xw-y)$$

因为$\Sigma_{ee}^{-1}$是对角线矩阵,有

$$-\log L(w)=\Sigma_{ee}^{-1}(Xw-y)^T(Xw-y)$$

其中$w$是待求参数,$X$是输入数据,$y$是输出,$\Sigma_{ee}$是输出的covariance matrix。每个数据对应的-logloss的权重是$1/var(e_i)$。


SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-10-02 18:42

2

没有权重的线性回归

$$y_i=X_i\beta + \beta_0+\sigma_i$$

$\sigma_i$是拟合的残差。根据线性回归的基本假设,残差是相等的,所以为了确保这一点,我们给每个样本增加权重

$$w_i=\frac{1}{\sigma_i^2}$$

SofaSofa数据科学社区DS面试题库 DS面经

Jiho   2018-10-08 21:41



  相关讨论

模型融合方法:加权融合

python中计算加权平均

python里求加权标准差或者加权方差的函数是什么?

python中求加权中位数

pyspark groupby 加权平均?

python里计算加权的相关系数?

sklearn.cluster.KMeans怎么给样本加权重?

最小二乘回归和线性回归

huber loss是什么?什么时候用?

线性回归梯度下降函数微分推导疑惑

  随便看看

怎么把pandas dataframe中一列英文文本全部转成小写?

怎么理解tweedie分布?

协方差矩阵一定是半正定的吗?

如何复制一个pandas DataFrame

激活函数RELU在0点的导数是多少?