def test_svm(train_data, test_data, kernel_func=linear_kernel, lambda_param=.1): """ Create an SVM classifier with a specificied kernel_func, train it with train_data and print the accuracy of model on test_data :param train_data: a namedtuple including training inputs and training labels :param test_data: a namedtuple including test inputs and test labels :param kernel_func: kernel function to use in the SVM :return: None """ svm_model = SVM(kernel_func=kernel_func, lambda_param=lambda_param) svm_model.train(train_data.inputs, train_data.labels) train_accuracy = svm_model.accuracy(train_data.inputs, train_data.labels) test_accuracy = svm_model.accuracy(test_data.inputs, test_data.labels) if not (train_accuracy is None): print('Train accuracy: ', round(train_accuracy * 100, 2), '%') if not (test_accuracy is None): print('Test accuracy:', round(test_accuracy * 100, 2), '%')