Support Vector Machine
Simple SVM from scratch using CVXOPT.
Based on: D. J. Sebald and J. A. Bucklew, "Support vector machine techniques for nonlinear equalization," in IEEE Transactions on Signal Processing, vol. 48, no. 11, pp. 3217-3226, Nov. 2000.
Dependency: numpy, cvxopt, matplotlib, sklearn (For convenience)
usage:
main.py [-h] [--test_type TEST_TYPE] [--test_number TEST_NUMBER] [--kernel_type KERNEL_TYPE] [--dataset_path DATASET_PATH] [--dataset_name DATASET_NAME]
Support Vector Machine from Scratch
optional arguments: -h, --help show this help message and exit
--kernel_group KERNEL_GROUP Select kernel's group from: [linear, non_linear]
--dataset_number DATASET_NUMBER Insert ID for LINEAR dataset: [1, 2]. Insert ID for NON LINEAR dataset: [1:RandomNonLinear, 2:XDataset, 3:MoonDataset, 4:CirclesDataset, 6:IrisDataset]
--kernel_type KERNEL_TYPE [ONLY FOR NON LINEAR] Select kernel's type from: [polynomial, gaussian]
--dataset_path DATASET_PATH Insert path of your own dataset
--dataset_name DATASET_NAME Insert name of your own dataset
Example:
python3 main.py --kernel_group linear
python3 main.py --kernel_group non_linear --dataset_number 1 --kernel_type polynomial