https://medium.com/@gayani.nisansala.blog/applying-svm-machine-learning-model-from-scratch-23ea0034e882