Esempio n. 1
0
        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,