예제 #1
0
파일: generate_bnmf.py 프로젝트: MXDC/BNMTF
def generate_dataset(I, J, K, lambdaU, lambdaV, tau):
    # Generate U, V
    U = numpy.zeros((I, K))
    for i, k in itertools.product(xrange(0, I), xrange(0, K)):
        U[i, k] = exponential_draw(lambdaU[i, k])
    V = numpy.zeros((J, K))
    for j, k in itertools.product(xrange(0, J), xrange(0, K)):
        V[j, k] = exponential_draw(lambdaV[j, k])

    # Generate R
    true_R = numpy.dot(U, V.T)
    R = add_noise(true_R, tau)

    return (U, V, tau, true_R, R)
예제 #2
0
def generate_dataset(I,J,K,lambdaU,lambdaV,tau):
    # Generate U, V
    U = numpy.zeros((I,K))
    for i,k in itertools.product(xrange(0,I),xrange(0,K)):
        U[i,k] = exponential_draw(lambdaU[i,k])
    V = numpy.zeros((J,K))
    for j,k in itertools.product(xrange(0,J),xrange(0,K)):
        V[j,k] = exponential_draw(lambdaV[j,k])
    
    # Generate R
    true_R = numpy.dot(U,V.T)
    R = add_noise(true_R,tau)    
    
    return (U,V,tau,true_R,R)
예제 #3
0
def generate_dataset(I,J,K,L,lambdaF,lambdaS,lambdaG,tau):
    # Generate U, V
    F = numpy.zeros((I,K))
    for i,k in itertools.product(xrange(0,I),xrange(0,K)):
        F[i,k] = exponential_draw(lambdaF[i,k])
    S = numpy.zeros((K,L))
    for k,l in itertools.product(xrange(0,K),xrange(0,L)):
        S[k,l] = exponential_draw(lambdaS[k,l])
    G = numpy.zeros((J,L))
    for j,l in itertools.product(xrange(0,J),xrange(0,L)):
        G[j,l] = exponential_draw(lambdaG[j,l])
    
    # Generate R
    true_R = numpy.dot(F,numpy.dot(S,G.T))
    R = add_noise(true_R,tau) 
        
    return (F,S,G,tau,true_R,R)
예제 #4
0
def generate_dataset(I, J, K, L, lambdaF, lambdaS, lambdaG, tau):
    # Generate U, V
    F = numpy.zeros((I, K))
    for i, k in itertools.product(xrange(0, I), xrange(0, K)):
        F[i, k] = exponential_draw(lambdaF[i, k])
    S = numpy.zeros((K, L))
    for k, l in itertools.product(xrange(0, K), xrange(0, L)):
        S[k, l] = exponential_draw(lambdaS[k, l])
    G = numpy.zeros((J, L))
    for j, l in itertools.product(xrange(0, J), xrange(0, L)):
        G[j, l] = exponential_draw(lambdaG[j, l])

    # Generate R
    true_R = numpy.dot(F, numpy.dot(S, G.T))
    R = add_noise(true_R, tau)

    return (F, S, G, tau, true_R, R)