Ejemplo n.º 1
0
    reader = DailyWatchTimeReader()
    feedback_data = reader.read_file_with_minval(filename, 1, 1)

    # build model with 3 latent factors.
    r = 10
    # the L_2 norm regularizer
    lamb = 0.1
    # the stopping delta value
    delta = 1e-5
    # the maximium iteration number
    maxiter = 300

    #     PMF_model = PMF(r,lamb,delta,maxiter, verbose = True);
    #     print PMF_model.unique_str();
    #
    #     PMF_model.train(feedback_data);
    #
    #     # test.
    #     loc_row = [200,   4, 105];
    #     loc_col = [ 10,  22,   4];
    #     print 'Prediction:'
    #     print PMF_model.predict(loc_row, loc_col);

    # test cold start.
    row = [0, 0, 1, 1, 2, 3, 3]
    col = [0, 3, 1, 4, 0, 1, 3]
    data = [1, 1, 1, 1, 1, 1, 1]

    fbdata = FeedbackData(row, col, data, 4, 5, {}, {}, {})
    LMaFit_model = PMF(r, lamb, delta, maxiter, verbose=True)
    LMaFit_model.train(fbdata)
Ejemplo n.º 2
0
    else:
        min_occ_user = 35
        min_occ_prog = 300
        leave_k_out = 10
        # perform leave k out.

    top_n = 10
    # performance computed on top N;

    # number of repetitions.
    total_iteration = 3

    # recommendation algorithms
    method_list = [ LMaFit(latent_factor=lafactor), RandUV(latent_factor=lafactor), \
                   HierLat(latent_factor=lafactor), NMF(latent_factor=lafactor),
                   PMF(latent_factor=lafactor),     TriUHV(latent_factor=lafactor)  ]

    #method_list = [ NMF(latent_factor=lafactor),\
    #               PMF(latent_factor=lafactor),     TriUHV(latent_factor=lafactor)  ];

    # main method.
    result = experiment_leave_k_out(exp_name, daily_data_file, min_occ_user, min_occ_prog, \
                method_list,  leave_k_out, total_iteration, top_n, True)

    # display results (average RMSE).
    for method_name, method_iter_perf in result.items():
        print 'Method: ' + method_name
        print '>>Average precision : %.5f' % (sum(x['prec']
                                                  for x in method_iter_perf) /
                                              len(method_iter_perf))
        print '>>Average recall    : %.5f' % (sum(x['recall']
 
 exp_name = 'test_exp_mid_prec_rec'; # something meaningful. 
 
 # filtering criteria
 min_occ_user = 2; # should be more than leave_k_out. 
 min_occ_prog = 2;
 
 top_n = 50; # performance computed on top N; 
 
 leave_k_out = 1; # perform leave k out. 
 
 # number of repetitions. 
 total_iteration = 3;
 
 # recommendation algorithms 
 method_list = [ LMaFit(latent_factor=lafactor), RandUV(latent_factor=lafactor), \
                NMF(latent_factor=lafactor), PMF(latent_factor=lafactor), item_item_sim(N = lafactor) ];
 
 # main method. 
 result = experiment_leave_k_out(exp_name, daily_data_file, min_occ_user, min_occ_prog, \
             method_list,  leave_k_out, total_iteration, top_n);
 
 # display results (average RMSE). 
 for method_name, method_iter_perf in result.items():
     print 'Method: '+ method_name;
     print  '>>Average precision : %.5f' % (sum( x['prec']   for x in method_iter_perf)/len(method_iter_perf));
     print  '>>Average recall    : %.5f' % (sum( x['recall'] for x in method_iter_perf)/len(method_iter_perf));
     print  '>>Average rmse      : %.5f' % (sum( x['rmse']   for x in method_iter_perf)/len(method_iter_perf));
     #print method_iter_perf;
 
 #print result;
Ejemplo n.º 4
0
 exp_name = 'loc_rec_exp'; # something meaningful. 
 
 # filtering criteria
 min_occ_user = 4;
 min_occ_prog = 1;
 
 # specify the percentage of training and (1 - training_prec) is testing.
 training_prec = 0.5;
 
 # number of repetitions. 
 total_iteration = 3;
 
 lafactor = 5;
 
 # recommendation algorithms 
 method_list = [ LMaFit(latent_factor=lafactor),  item_item_sim(N = lafactor), \
                 NMF(latent_factor=lafactor), \
                 PMF(latent_factor=lafactor),  \
                 RandUV(latent_factor=lafactor)  \
             ];
 
 # main method. 
 result = experiment_rand_split(exp_name, daily_data_file, min_occ_user, min_occ_prog, \
             method_list,  training_prec, total_iteration);
 
 # display results (average RMSE). 
 for method_name, method_iter_perf in result.items():
     print 'Method: '+ method_name;
     print  '>>Average performance RMSE: %.5f' % (sum( x for x in method_iter_perf)/len(method_iter_perf));
 
 #print result;
Ejemplo n.º 5
0
    reader = DailyWatchTimeReader();
    feedback_data = reader.read_file_with_minval(filename, 1, 1);
    
    # build model with 3 latent factors.
    r = 10;
    # the L_2 norm regularizer 
    lamb = 0.1; 
    # the stopping delta value 
    delta = 1e-5;
    # the maximium iteration number
    maxiter = 300;
     
#     PMF_model = PMF(r,lamb,delta,maxiter, verbose = True);
#     print PMF_model.unique_str();
#     
#     PMF_model.train(feedback_data);
#     
#     # test. 
#     loc_row = [200,   4, 105];
#     loc_col = [ 10,  22,   4];
#     print 'Prediction:'
#     print PMF_model.predict(loc_row, loc_col);
    
    # test cold start.
    row =  [0, 0, 1, 1, 2, 3, 3];
    col =  [0, 3, 1, 4, 0, 1, 3];
    data = [1, 1, 1, 1, 1, 1, 1];
     
    fbdata = FeedbackData(row, col, data, 4, 5, {}, {}, {}); 
    LMaFit_model = PMF(r,lamb,delta,maxiter, verbose = True);
    LMaFit_model.train(fbdata);