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)
"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)