TRMF 辅助论文:最小二乘法复现TRMF

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TRMF 辅助论文:最小二乘法复现TRMF相关的知识,希望对你有一定的参考价值。

1 目标函数(总)

论文笔记:Temporal Regularized Matrix Factorization forHigh-dimensional Time Series Prediction_UQI-LIUWJ的博客-CSDN博客

1.1 求解W

我们留下含有W的部分:

 

然后对wi求导

线性代数笔记:标量、向量、矩阵求导_UQI-LIUWJ的博客-CSDN博客

是一个标量,所以放在xi的左边和右边没有影响

所以

也即:

 对应的代码如下:(假设sparse_mat表示 观测矩阵)

from numpy.linalg import inv as inv
for i in range(dim1):
    #W矩阵的每一行分别计算
    pos0 = np.where(sparse_mat[i, :] != 0)
    #[num_obs] 表示i对应的有示数的数量

    Xt = X[pos0[0], :]
    #[num_obs,rank

    vec0 = sparse_mat[i, pos0[0]] @ Xt
    #sparse_mat[i, pos0[0]] 是一维向量,
    #所以sparse_mat[i, pos0[0]] @ Xt 和 sparse_mat[i, pos0[0]].T @ Xt 是一个意思,
    #输出的都是一个一维向量
    #[rank,1]

    mat0 = inv(Xt.T @ Xt + np.eye(rank))
    #[rank,rank]

    W[i, :] = mat0 @ vec0

 其中:

vec0 = sparse_mat[i, pos0[0]] @ Xt

mat0 = inv(Xt.T @ Xt + np.eye(rank))

1.2 求解X

我们留下含有X的部分

表示逐元素乘积 (两个向量a和b,ab可以用diag(a) b表示)

当t=1~ld的时候,我们没有什么事情,所以此时我们更新X的方式和之前的W差不多

同理,X的更新方式为:

而当t≥ld+1的时候,我们就需要考虑

对于任意xt(我们令其为xo),他会出现在哪些中呢?

首先 是 

对xo求导,有:

其次,是所有的 

对每一个l,有用的项就是xo相关的项,于是我们可以写成,对每一个l的

对xo求导,有

于是我们可以写成

几部分拼起来,有

=0

=

+

所以xo(o≥ld+1)的更新公式为

[+]

3 更新θ

我们留下和θ (θk)有关的部分

关于θk求导

4 总结

x:

t ∈ 1~ld:

t ≥ld+1  [+]

 

以上是关于TRMF 辅助论文:最小二乘法复现TRMF的主要内容,如果未能解决你的问题,请参考以下文章

加权最小二乘法的权重怎么确定r语言

滚动时不显示样式

算法#03--具体解释最小二乘法原理和代码

Java代码使用最小二乘法实现线性回归预测

基于最小二乘法和最大似然估计法的系统参数辨识MATLAB仿真

关于VC的最小二乘法曲线拟合算法问题