考虑最小二乘逆问题的正规方程的下列加权解:
m = inv(G'*W'*W*G)*G'*W'*W*d
我想设置加权矩阵W,它是一个在对角线上加权的方对角线矩阵。
由于d (10⁷)中有大量的数据点,我的系统矩阵⁷也很大,但仅在一维上(因为我的数据点比模型参数多得多)。当模型参数为6个时,G为10⁷×6。因此,W必须是大小(10⁷×10⁷)。然而,它是稀疏的,只有10个⁷非零项(权重)。
为了减少内存,我在W上使用稀疏。
若要分配权重,请执行以下操作
d = [d1;d2];
W = sparse(length(d),length(d))
w1 = len
在处理矩阵的并行分解时,我熟悉块分布,其中我们有(比方说)4个过程,每个过程都有自己的矩阵子区域:
例如,这里我们有一行中的进程数(procrows)等于2,列中的进程数(proccols)也等于2,如果原始矩阵大小为N x M,子矩阵A_local的大小为N/2 x M/2。
我正在阅读这个使用“块循环”发行版的,在本部分中:
/* Begin Cblas context */
/* We assume that we have 4 processes and place them in a 2-by-2 grid */
int ctxt, myid, myrow, mycol,
The example of ML.NET for Matrix Factorization here没有用于测试该模型的评估方法。这是一个训练者示例,因为它的one-class matrix factorization选项被设置为options.LossFunction = MatrixFactorizationTrainer.LossFunctionType.SquareLossOneClass; 我进一步搜索,找到了another matrix factorization example。虽然它不是one-class matrixfactorization,但这一次它有一个评估。但是,