Asso_approximate {rBMF} | R Documentation |
Asso: Boolean Matrix Factorization
Description
Given binary matrix S (m x n), and a scalar k (number of factors), Asso finds two matrices A (m x r), B (r x n) such taht S~= A * B
Usage
Asso_approximate(S, k, opti)
Arguments
S |
input matrix to be factorized |
k |
number of factors (rank) |
opti |
options : list containing components verbose:control of showing messages , threshold:precision limit,penalty_overcovered,bonus_covered. |
Value
LIST of three components
B |
k x n factor matrix |
O |
n x k factor matrix |
D |
n x n matrix, the result from calculate_association |
Author(s)
Abdelmoneim Amer Desouki
References
Miettinen, P., Mielikaeinen, T., Gionis, A., Das, G., & Mannila, H. (2008). The discrete basis problem. IEEE transactions on knowledge and data engineering, 20(10), 1348-1362.
See Also
See Also topFiberM
Examples
data(DBLP)
X=DBLP
Xb=X==1
Res=Asso_approximate(Xb,7,list(threshold=0.5,penalty_overcovered=1,bonus_covered=1,verbose=0))
X_=Res$O %*% Res$B
X_=as(X_,'TsparseMatrix')
X=as(X,'TsparseMatrix')
li=X@i[X@x==1]+1
lj=X@j[X@x==1]+1
tp=sum(X_[cbind(li,lj)]>0)
fn=sum(X)-tp#sum(!X_[cbind(li,lj)])
fp=sum(X_@x>0)-tp
cv=1-(fp+fn)/(tp+fn)
print(sprintf("tp:%d, fp:%d,fn:%d, Error:%d, covered=%.3f",tp,fp,fn,fn+fp,cv))
[Package rBMF version 1.1 Index]