Esempio n. 1
0
                           C=C,
                           gamma=0.01,
                           schedule_func=schedule_B)
    print('C:', C, 'weights:', w)
    err_train = SVM.SVM_primal_test(X_train, y_train, w)
    err_test = SVM.SVM_primal_test(X_test, y_test, w)
    print('training error:', err_train, 'test error', err_test)

### Q3 SVM dual and kernal

# SVM dual
print('\nSVM dual')
for C in C_vals:
    w, b = SVM.SVM_dual(X_train, y_train, C)
    print('C:', C, 'weights:', w, 'bias:', b)
    err_train = SVM.SVM_dual_test(X_train, y_train, w, b)
    err_test = SVM.SVM_dual_test(X_test, y_test, w, b)
    print('training error:', err_train, 'test error', err_test)

# SVM kernel
print('\nSVM with kernel')
gammas = [0.1, 0.5, 1, 5, 100]
for C in C_vals:
    # find overlap SV for C=500/875
    if C == 500.0 / 873:
        prev_sv = np.zeros(X_train.shape[0])
    for gamma in gammas:
        w, b, alphas = SVM.SVM_kernel(X_train,
                                      y_train,
                                      epochs=100,
                                      C=C,