# question 12 E_in_list = [] #label, data = utils.load_data('features.train') print numpy.unique(label) for C in C_list_log: clf = SVM.poly_kernel(label, data, 8.0, 2, 1, 1, 10**C) E_in_list.append(SVM.error_0_1(utils.which_binary(label, 8.0), data, clf)) utils.curve(C_list_log, E_in_list, '12.png', 'log(C)', 'E_in') # question 13 SV_num_list = [] #label, data = utils.load_data('features.train') for C in C_list_log: clf = SVM.poly_kernel(label, data, 8.0, 2, 1, 1, 10**C) SV_num_list.append(SVM.SV_num(clf)) print SV_num_list utils.curve(C_list_log, SV_num_list, '13.png', 'log(C)', '#SV') # question 14 C_list_log = [-3, -2, -1, 0, 1,] dis_list = [] for C in C_list_log: clf = SVM.gaussian_kernel(label, data, 0.0, 80, 10**C) free_SV, free_SV_coef = SVM.free_SV(clf, 10**C) SV = SVM.get_SV(clf) SV_coef = SVM.get_dual_coef(clf) dis = SVM.cal_dis(SV, SV_coef[0], free_SV[0]) dis_list.append(dis) utils.curve(C_list_log, dis_list, '14.png', 'log(C)', 'dis')