0
$\begingroup$

I am doing a matrix completion project. Assume that I have an incomplete matrix like

        func1    func2    func3
prot1     0        0        1
prot2     1        0        1
prot3     0        0        0

I want to use Standard Matrix Completion to recover the matrix, like

        func1    func2    func3
prot1    0.1      0.9       1
prot2     1       0.2       1
prot3    0.3      0.8      0.7

Standard Matrix Completion refers to

$$\min_{W, H} \frac{1}{2} \Vert W \Vert_F^2 + \frac{1}{2} \Vert H \Vert_F^2 + \frac{\lambda}{2} \Vert \Omega \circ (W H^T - Y) \Vert_F^2$$

and $X = WH^T$.

However, I find that the recovered matrix X is not range between 0 and 1, say (just an example, not the truth)

        func1    func2    func3
prot1    -0.1     1.1       1
prot2     1       0.2       1
prot3    0.3      2.1      0.7

How can I restrict the range (here 0-1) of unobserved entries in X (in particular how can I implement it in Tensorflow)?

$\endgroup$
  • $\begingroup$ Please fix the formatting in your post using LaTex. $\endgroup$ – orlp Apr 14 at 16:52
  • 1
    $\begingroup$ Add non-negativity constraints. $\endgroup$ – Yuval Filmus Apr 14 at 19:22
  • $\begingroup$ @YuvalFilmus How can I add non-negativity constraints in Tensorflow? Besides, how can I restrict the value less than 1? $\endgroup$ – Lizhi Liu Apr 15 at 0:29
  • 1
    $\begingroup$ Your "incomplete" matrix looks quite complete to me. $\endgroup$ – Rodrigo de Azevedo Apr 15 at 16:23
  • $\begingroup$ What do W, H and T represent? What is their shape? What are their properties? $\endgroup$ – Martin Thoma Apr 15 at 16:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.