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

  统计/机器学习 回归分析 损失函数    浏览次数:1124        分享
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



  相关主题

模型融合方法:加权融合   2回答

python中计算加权平均   1回答

python中求加权中位数   1回答

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

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

pyspark groupby 加权平均?   1回答

huber loss是什么?什么时候用?   1回答

最小二乘回归和线性回归   2回答

python里有没有huber loss的线性回归   1回答

泊松回归(poission regression)的损失函数是什么?   1回答

逻辑回归的损失函数是怎么来的   2回答

用SGD计算逻辑回归时的迭代公式是什么?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!