支持向量机的总体概念就是:
通过核函数把低维的样本点映射到高维的点,i是指第i个样本点:
x(i) --> f(i)
如果不升维,那么就是线性核函数。
然后优化以下的Loss function, 得到解$$\theta$$; 所得decision boundary在高维空间是max margin的:
上图中的cost0,costt1有些特点,能使得decision boundary是max margin的。
最后用该式子去做判别:
SVM的判别本身是2-分类的,但是可以通过训练多个SVM完成多分类问题,软件包可以帮我们做。此外训练和预测都直接调用即可软件包的函数。我们要做的就是自己定义参数C与核函数就可以了。
残留问题:
- 核函数是什么样的
- 如何解这个优化问题
- max margin是如何推理出来的
markdown写希腊字母参考:https://www.youtube.com/watch?v=NV__MIeS1MQ
svm代码参考我的matlab: https://github.com/miniyk2012/machine-learning/tree/master/week7/ex6