Exemple #1
0
    secs = int(train_time % 60)
    print('training error: ' + str(mins) + 'm ' + str(secs) + 's')

    start_time = time.time()
    auc, rmse = get_err_bat(test_file)
    test_time = time.time() - start_time
    mins = int(test_time / 60)
    secs = int(test_time % 60)
    log_p( 'Test Err:' + str(i) + '\t' + str(auc) + '\t' + str(rmse))
    print( 'test error: ' + str(mins) + 'm ' + str(secs) + 's')

    #stop training when no improvement for a while 
    if auc>min_err:
        best_w1=w1t
        best_w2=w2t
        best_w3=w3t
        best_b1=b1t
        best_b2=b2t
        best_b3=b3t
        min_err=auc
        min_err_epoch=i
        if times_reduce<3:
            times_reduce+=1
    else:
        times_reduce-=1
    if times_reduce<0:
        break
log_p( 'Minimal test error is '+ str( min_err)+' , at EPOCH ' + str(min_err_epoch))
ut.save_weights("mlp3fm_train_"+advertiser+".p",get_pred(train_file,best_w1,best_w2,best_w3,best_b1,best_b2,best_b3))
ut.save_weights("mlp3fm_test_"+advertiser+".p",get_pred(test_file,best_w1,best_w2,best_w3,best_b1,best_b2,best_b3))
    secs = int(train_time % 60)
    print 'training error: ' + str(mins) + 'm ' + str(secs) + 's'

    start_time = time.time()
    auc, rmse = get_err_bat(test_file)
    test_time = time.time() - start_time
    mins = int(test_time / 60)
    secs = int(test_time % 60)
    ut.log_p( 'Test Err:' + str(i) + '\t' + str(auc) + '\t' + str(rmse))
    print 'test error: ' + str(mins) + 'm ' + str(secs) + 's'

    #stop training when no improvement for a while 
    if auc>min_err:
        best_w1=w1t
        best_w2=w2t
        best_w3=w3t
        best_b1=b1t
        best_b2=b2t
        best_b3=b3t
        min_err=auc
        min_err_epoch=i
        if times_reduce<3:
            times_reduce+=1
    else:
        times_reduce-=1
    if times_reduce<0:
        break
ut.log_p( 'Minimal test error is '+ str( min_err)+' , at EPOCH ' + str(min_err_epoch))
ut.save_weights("mlp3fm_train_"+advertiser+".p",get_pred(train_file,best_w1,best_w2,best_w3,best_b1,best_b2,best_b3))
ut.save_weights("mlp3fm_test_"+advertiser+".p",get_pred(test_file,best_w1,best_w2,best_w3,best_b1,best_b2,best_b3))
Exemple #3
0
        clk = data[0]
        pclk = pred(data[1])[0]
        y.append(clk)
        yp.append(pclk)
    fi.close()
    auc = roc_auc_score(y, yp)
    rmse = math.sqrt(mean_squared_error(y, yp))
    print '%d\t%.8f\t%.8f\t%dm%ds' % (round, auc, rmse, train_min, train_sec)
    fo.write('%d\t%.8f\t%.8f\t%dm%ds\n' % (round, auc, rmse, train_min, train_sec))
    fo.flush()
    if overfitting and auc < best_auc:
        print 'rewriting ' + trainlog_file + ' into ' + traindl_file
        rewrite_train_test(trainlog_file, traindl_file)
        print 'rewriting ' + testlog_file + ' into ' + testdl_file
        rewrite_train_test(testlog_file, testdl_file)
        print 'output model into ' + model_file
        output_model(model_file)
        break # stop training when overfitting two rounds already
    if auc > best_auc:
        best_auc = auc
        best_w=w
        best_v=v
        best_w_0=w_0
        overfitting = False
    else:
        overfitting = True
        
ut.save_weights("fm_train_"+advertiser+".p",pred_all(train_file,best_w,best_v,best_w_0))
ut.save_weights("fm_test_"+advertiser+".p",pred_all(test_file,best_w,best_v,best_w_0))
fo.close()