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']))
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(
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))