迭代重新加权最小二乘

Posted

技术标签:

【中文标题】迭代重新加权最小二乘【英文标题】:iterative reweighted least squares 【发布时间】:2020-09-18 20:15:08 【问题描述】:

我正在尝试在 python 中手动实现 irls 逻辑回归(Bishop - Pattern Recognition And Machine Learning 中的第 4.3.3 章)。 为了更新权重,我使用 但是我没有得到令人满意的结果,而且我的权重在每次迭代中都在无限增长。

到目前为止,我已经编写了这段代码:

def y(X, w):
    return sigmoid(X.dot(w))

def R(y):
    R = np.identity(y.size)
    R = R*(y*(1-y))
    return R

def irls(X, t):
    w = np.ones(X.shape[1])
    w = w.reshape(w.size, 1)
    t = np.array(list(map(lambda x: 1 if x else 0, t)))
    t = t.reshape(t.size, 1)

    #after 3 iterations matrix is singular
    for i in range(3):
        y_ = y(X,w)
        w = w - np.linalg.inv(X.T.dot(R(y_)).dot(X)).dot((X.T).dot(y_-t))
    return w

其中 X 是我的设计矩阵(64 个特征和 74 个样本),t 是包含布尔值的目标向量(数据来自 https://archive.ics.uci.edu/ml/datasets/Mice+Protein+Expression)。

感谢任何帮助指出我出错的地方。

【问题讨论】:

【参考方案1】:

所以答案很简单,设置初始权重向量w = np.zeros(X.shape[1)

【讨论】:

以上是关于迭代重新加权最小二乘的主要内容,如果未能解决你的问题,请参考以下文章

Kalman卡尔曼滤波,Least Square最小二乘估计,加权最小二乘,递归最小二乘

dolphindb 是不是支持加权最小二乘回归“wls”?

请教:spss19怎么在做加权最小二乘(W

SPSS中异方差如何用WLS加权最小二乘消除

R构建加权最小二乘回归模型(Weighted Least Squares Regression)

基于视觉显著图和加权最小二乘优化的红外与可见光图像融合(VSMWLS)