예제 #1
0
exptDesc = args.description

inputFile = args.inputFile.format("data")
yaxis = decompTools.loadAxisInfo(args.inputFile.format("info"))

sqlOutfile = "results/rank-sql-{0}.sql".format(exptID)
rawFilePattern = "results/rank-raw-{0}-{1}.dat"
dbOutPattern = "results/rank-db-{0}-{1}.dat"
dbTimePattern = "results/rank-time-db-{0}-{1}.dat"

print "Starting Tensor Rank Experiment with ID:{0}".format(exptID)

sqlOut = file(sqlOutfile, "w")
for r in R:
    np.random.seed(seed)
    Y, ystats, mstats = decompTools.decomposeCountTensor(inputFile, R=r, outerIters=iter, innerIters=innerIter, convergeTol=tol, zeroTol=zeroThr)
    Y.writeRawFile(rawFilePattern.format(exptID, r)) # output the raw file
    # output the saved db file
    dbYFile = dbOutPattern.format(exptID, r)
    Yout = decompTools.getDBOutput(Y, yaxis)
    Yout = np.column_stack((np.repeat(exptID, Yout.shape[0]), Yout))
    np.savetxt(dbYFile, Yout, fmt="%s", delimiter="|")
    sqlOut.write("load client from /home/joyceho/workspace/tensor/{0} of del modified by coldel| insert into joyceho.tensor_rank_factors;\n".format(dbYFile))
    # output the rank_times
    timeStats = np.delete(ystats, range(2,6), axis=1)
    timeStats = np.column_stack((np.repeat(exptID, timeStats.shape[0]), np.repeat(r, timeStats.shape[0]), timeStats))
    timeFile = dbTimePattern.format(exptID, r)
    np.savetxt(timeFile, timeStats, delimiter="|")
    sqlOut.write("load client from /home/joyceho/workspace/tensor/{0} of del modified by coldel| insert into joyceho.tensor_rank_times;\n".format(timeFile))
    # output the model results
    sqlOut.write("insert into joyceho.tensor_rank_models values({0},{1},\'{2}\',{3},{4},{5},{6},{7},{8});\n".format(exptID, labelID, exptDesc, iter, innerIter, r, mstats['LS'], mstats['LL'], mstats['KKT']))
예제 #2
0
R = args.rank
seed = args.seed
iter = args.iterations
innerIter = 10
tol = 1e-2
zeroThr = 1e-50

# input file and output file
inputFile = args.inputFile.format("data")
yaxis = decompTools.loadAxisInfo(args.inputFile.format("info"))

print "Starting Tensor Factorization with ID:{0}".format(exptID)
np.random.seed(seed)
Y, ystats, mstats = decompTools.decomposeCountTensor(inputFile,
                                                     R,
                                                     outerIters=iter,
                                                     innerIters=innerIter,
                                                     convergeTol=tol,
                                                     zeroTol=zeroThr)
Y.writeRawFile("results/apr-raw-{0}.dat".format(exptID))
Youtfile = "results/apr-db-{0}-{1}.csv".format(exptID, iter)
Ysqlfile = "results/apr-sql-{0}.sql".format(exptID)
# save the decomposition into the format
Yout = decompTools.getDBOutput(Y, yaxis)
Yout = np.column_stack((np.repeat(exptID, Yout.shape[0]), Yout))
np.savetxt(Youtfile, Yout, fmt="%s", delimiter="|")

sqlOut = file(Ysqlfile, "w")
sqlOut.write(
    "load data local infile '/home/joyce/workspace//Health/analysis/tensor/{0}' into table tensor_factors fields terminated by '|'  ;\n"
    .format(Youtfile))
sqlOut.write(
예제 #3
0
outfilePattern = 'results/unique-db-{0}-{1}.csv'
rawfilePattern = 'results/unique-raw-{0}-{1}.dat'
scorefilePattern = 'results/unique-scores-{0}.csv'
sqlOutfile = "results/unique-sql-{0}.sql".format(exptID)

yFactor = []

print "Running Uniqueness Experiment with ID {0} and iterations {1}".format(exptID, maxIters)
modelOut = file(sqlOutfile, "w")

for i in range(totalIter):
    # initialize the seed for repeatability
    np.random.seed(seedArray[i])
    print "Random Start with seed {0}".format(seedArray[i])
    Y, ystats, mstats = decompTools.decomposeCountTensor(inputFile, R=R, outerIters=maxIters, innerIters=innerIters, zeroTol=1e-4)
    Y.writeRawFile(rawfilePattern.format(exptID,i))
    dbYFile = outfilePattern.format(exptID, i)
    dbOut = decompTools.getDBOutput(Y, yaxis)
    dbOut = np.column_stack((np.repeat(exptID, dbOut.shape[0]), np.repeat(i, dbOut.shape[0]), dbOut))
    dbOut = np.insert(dbOut, 4, np.repeat(-100, dbOut.shape[0]), axis=1)
    np.savetxt(dbYFile, dbOut, fmt="%s", delimiter="|")
    yFactor.append(ktensor.ktensor(Y.lmbda.copy(), [Y.U[n].copy() for n in range(Y.ndims())]))
    # write to the sequel file for ease
    modelOut.write("insert into joyceho.tensor_uniq_models values({0},{1},{2},\'{3}\',{4},{5},{6},{7},{8});\n".format(exptID, i, labelID, exptDesc, maxIters, innerIters, mstats['LS'], mstats['LL'], mstats['KKT']))
    modelOut.write("load client from /home/joyceho/workspace/tensor/{0} of del modified by coldel| insert into joyceho.tensor_uniq_results;\n".format(dbYFile))

## Calculate all the scores
def __generateInfo(n, exptID, type, method, i, k):
    info = np.tile(np.array([exptID, type, method, i, k], dtype="S20"), n)
    info = info.reshape((n, 5))