Exemplo n.º 1
0
Arquivo: main.py Projeto: yshen4/pymal
def problem8():
    data = (train_bow_features, train_labels, val_bow_features, val_labels)

    # values of T and lambda to try
    Ts = [1, 5, 10, 15, 25, 50]
    Ls = [0.001, 0.01, 0.1, 1, 10]

    pct_tune_results = utils.tune_perceptron(Ts, *data)
    print('perceptron valid:', list(zip(Ts, pct_tune_results[1])))
    print('best = {:.4f}, T={:.4f}'.format(np.max(pct_tune_results[1]), Ts[np.argmax(pct_tune_results[1])]))

    avg_pct_tune_results = utils.tune_avg_perceptron(Ts, *data)
    print('avg perceptron valid:', list(zip(Ts, avg_pct_tune_results[1])))
    print('best = {:.4f}, T={:.4f}'.format(np.max(avg_pct_tune_results[1]), Ts[np.argmax(avg_pct_tune_results[1])]))

    # fix values for L and T while tuning Pegasos T and L, respective
    fix_L = 0.01
    peg_tune_results_T = utils.tune_pegasos_T(fix_L, Ts, *data)
    print('Pegasos valid: tune T', list(zip(Ts, peg_tune_results_T[1])))
    print('best = {:.4f}, T={:.4f}'.format(np.max(peg_tune_results_T[1]), Ts[np.argmax(peg_tune_results_T[1])]))

    fix_T = Ts[np.argmax(peg_tune_results_T[1])]
    peg_tune_results_L = utils.tune_pegasos_L(fix_T, Ls, *data)
    print('Pegasos valid: tune L', list(zip(Ls, peg_tune_results_L[1])))
    print('best = {:.4f}, L={:.4f}'.format(np.max(peg_tune_results_L[1]), Ls[np.argmax(peg_tune_results_L[1])]))

    utils.plot_tune_results('Perceptron', 'T', Ts, *pct_tune_results)
    utils.plot_tune_results('Avg Perceptron', 'T', Ts, *avg_pct_tune_results)
    utils.plot_tune_results('Pegasos', 'T', Ts, *peg_tune_results_T)
    utils.plot_tune_results('Pegasos', 'L', Ls, *peg_tune_results_L)
Exemplo n.º 2
0
    "Validation accuracy for average passive-aggressive:",
    avg_pa_val_accuracy))
##-------------------------------------------------------------------------------
#
#
#-------------------------------------------------------------------------------
# Section 2.10
#-------------------------------------------------------------------------------
data = (train_bow_features, train_labels, val_bow_features, val_labels)

# # values of T and lambda to try
Ts = [1, 5, 10, 15, 20]
Ls = [1, 5, 10, 20, 50, 100]

pct_tune_results = utils.tune_perceptron(Ts, *data)
avg_pct_tune_results = utils.tune_avg_perceptron(Ts, *data)

#print pct_tune_results
#print avg_pct_tune_results
#
# # fix values for L and T while tuning passive-aggressive T and L, respective
best_L = 20
best_T = 5
#
avg_pa_tune_results_T = utils.tune_passive_aggressive_T(best_L, Ts, *data)
avg_pa_tune_results_L = utils.tune_passive_aggressive_L(best_T, Ls, *data)
#
utils.plot_tune_results('Perceptron', 'T', Ts, *pct_tune_results)
utils.plot_tune_results('Avg Perceptron', 'T', Ts, *avg_pct_tune_results)
utils.plot_tune_results('Avg Passive-Aggressive', 'T', Ts,
                        *avg_pa_tune_results_T)