def test_latest_small_implicit(): test_count = 8 evaluation_base = 4 ans = [0] * evaluation_base for k in xrange(test_count): method.generate_data_latest_small_implicit(test_count, k) method.generate_matrix(implicit=True) b = method.evaluate_implicit() for x in xrange(evaluation_base): ans[x] += b[x] for x in xrange(evaluation_base): ans[x] /= test_count print ans
def test100k_explicit(): test_count = 5 evaluation_base = 2 ans = [0] * evaluation_base for k in xrange(1, test_count + 1): method.generate_data_100k_explicit(k) method.generate_matrix(implicit=False) b = method.evaluate_explicit() for x in xrange(evaluation_base): ans[x] += b[x] for x in xrange(evaluation_base): ans[x] /= test_count print ans
def test1m_with_rating(): start = datetime.datetime.now() ans = [0, 0] for k in xrange(1, 6): method.generate_data_1m_with_rating(8, k) method.generate_matrix(with_rating=True) b = method.evaluate_with_rating() for x in xrange(0, 2): ans[x] += b[x] for x in xrange(0, 2): ans[x] /= 8 print ans end = datetime.datetime.now() print datetime.timedelta(seconds=(end - start).total_seconds() / 8)
def test100k(): start = datetime.datetime.now() ans = [0, 0, 0, 0] for k in xrange(1, 6): method.generate_data_100k(k) method.generate_matrix() b = method.evaluate() for x in xrange(0, 4): ans[x] += b[x] for x in xrange(0, 4): ans[x] /= 5 print ans end = datetime.datetime.now() print datetime.timedelta(seconds=(end - start).total_seconds() / 5)
def test(flag): print("%10s%10s%15s%10s%10s%10s%20s%20s%20s%20s" % ("step", "gamma", "slow_rate", "lamb", "k", "ratio", "recall", 'precision', 'coverage', 'popularity')) stplist = [50] gamlist = [0.06, 0.02, 0.001] slralist = [0.9] lamblist = [0.025, 0.01] klist = [10, 30, 60, 150] ratlist = [5, 10, 15] for steps in stplist: for gamma in gamlist: for slow_rate in slralist: for lamb in lamblist: for kl in klist: for ratio in ratlist: test_count = 5 result_num = 2 if flag else 4 ans = [0] * result_num for k in xrange(1, test_count + 1): method.read_data(flag, k) method.generate_matrix(flag, steps, gamma, slow_rate, lamb, kl, ratio) if flag: b = method.evaluate_flag(flag) else: b = method.evaluate_notflag(flag) for x in xrange(result_num): ans[x] += b[x] for x in xrange(result_num): ans[x] /= test_count print( "%9d%11.3f%12.2f%14.3f%9d%8d%19.3f%%%19.3f%%%19.3f%%%20.3f" % (steps, gamma, slow_rate, lamb, kl, ratio, ans[0] * 100, ans[1] * 100, ans[2] * 100, ans[3]))