def main_gaussian(): x_train, y_train, x_test, y_test = gaussians_dataset(2, [100, 150], [[1, 3], [-4, 8]], [[2, 3], [4, 1]]) svm_alg = SVM(n_epochs=100, lambDa=0.001, use_bias=False) # train svm_alg.fit_gd(x_train, y_train, verbose=True) # test predictions = svm_alg.predict(x_test) accuracy = float(np.sum(predictions == y_test)) / y_test.shape[0] print('Test accuracy: {}'.format(accuracy)) plot_pegasos_margin(x_test, y_test, svm_alg)
def main_svm(): """ Main function to experiment with SVM on synthetic points. """ X_train, Y_train, X_test, Y_test = gaussians_dataset(2, [100, 150], [[1, 3], [-4, 8]], [[2, 3], [4, 1]]) # X_train, Y_train, X_test, Y_test = two_moon_dataset(n_samples=300, noise=0.2) C = 100 kernel = 'rbf' model = svm.SVC(C=C, kernel=kernel) model.fit(X_train, Y_train) # print result on train plot_margin(X_train, Y_train, model, title='train data') # print result on test plot_margin(X_test, Y_test, model, title='test data')
def main_kmeans_gaussian(): """ Main function to run kmeans the synthetic gaussian dataset. """ # generate the dataset data, cl = gaussians_dataset(3, [100, 100, 70], [[1, 1], [-4, 6], [8, 8]], [[1, 1], [3, 3], [1, 1]]) # visualize the dataset fig, ax = plt.subplots(1, 2) ax[0].scatter(data[:, 0], data[:, 1], c=cl, s=40) plt.waitforbuttonpress() # solve kmeans optimization labels = kmeans(data, n_cl=3, verbose=True) # visualize results ax[1].scatter(data[:, 0], data[:, 1], c=labels, s=40) plt.waitforbuttonpress()
def main_adaboost(): """ Main function for fitting and testing Adaboost classifier. """ X_train, Y_train, X_test, Y_test = gaussians_dataset(2, [300, 400], [[1, 3], [-4, 8]], [[2, 3], [4, 1]]) # X_train, Y_train, X_test, Y_test = h_shaped_dataset() # X_train, Y_train, X_test, Y_test = two_moon_dataset(n_samples=500, noise=0.2) # Visualize dataset plot_2d_dataset(X_train, Y_train, 'Training', blocking=False) # Init model model = AdaBoostClassifier(n_learners=100) # Train model.fit(X_train, Y_train, verbose=True) # Predict y_preds = model.predict(X_test) print('Accuracy on test set: {}'.format(np.mean(y_preds == Y_test))) # Visualize the predicted boundary plot_boundary(X_train, Y_train, model)