error = SVM.test(parameters, test_data, test_labels) print("Test error: " + str(error)) # kernels def normal_kernel(x, y): return np.dot(x, y) def gaussian_kernel(x, y, gamma): return np.exp(-np.sum(np.square(x - y)) / gamma) # # Question 2.3.A print("\n#####SVM in dual domain.######") kernel = lambda x, y: normal_kernel(x, y) for C in Cs: print('\nC value = ' + str(C)) parameters = SVM.DualSVM(kernel, C, train_data, train_labels, test_data, test_labels) print(parameters) # error = SVM.test(parameters, train_data, train_labels) # print("Train error: " + str(error)) # error = SVM.test(parameters, test_data, test_labels) # print("Test error: " + str(error)) # Question 2.3.B print("\n ####SVM in dual domain with Gaussian kernel#######") gammas = [0.1, 0.5, 1, 5, 100] for C in Cs: print('\nC value = ' + str(C)) for gamma in gammas: print('Gamma value = ' + str(gamma)) kernel = lambda x, y: gaussian_kernel(x, y, gamma) parameters = SVM.DualSVM(kernel, C, train_data, train_labels,