支持向量机:
-
优点:适应‘小样本数量,高特征维度’的数据集
-
任何有维度的非线性问题在更高维的空间里总可以变成线性可分问题
-
SVM使用拉格朗日乘子法实现对超平面求解问题的升维
-
核函数:一种输入两个低维空间向量,返回高维空间点积的函数。
- 线性核:直接返回输入向量的点积,速度最快。实际上没有升维,适用于本身特征维度较高、样本数量很大的场景。
- 多项式核:k(p,q)=(p·q+1)Xd, 其中超参数是提升到的维度
- 高斯径向基核:
- Sigmoid核
-
scikit-learn没有直接实现SVM的复杂算法,而是通过调用两个成熟的C++SVM计算库libsvm、liblinear提供SVM模型功能,在sklearn.svm中提供了三种分类/回归封装类:
- SVC/SVR: 最普通的SVM分类器/回归器,可以通过kernel参数设置使用的核函数,使用C参数配置松弛因子。
- NuSVC/NuSVR: 带有nu参数的分类器/回归器,nu参数的作用于C参数类似,都是用来配置模型对训练数据拟合程度的。
- LinearSVC/LinearSVR: 使用liblinear库的线性核函数分类器回归器,其在模型中加入了线性回归惩罚参数
from sklearn import svm
X