决策边界不一定的问题——不适定问题
解决办法
逻辑回归:损失函数
SVM:寻找一个最优的决策边界距离两个类别的最近的样本最远
一、Hard Margin SVM
最大化margin就是求一个最大的d值
样本真实的特征用wT表示
=====>
=====>
=====>上面两个式子可以合为一个
最大化d就是
======>
最终目标:
======>
二、Soft Margin 和 SVM 的正则化
使用SVM训练模型前要进行标准化处理
from sklearn.svm import LinearSVC
svc = LinearSVC(C=1e9) #C越小,容错空间越大,落在margin内的点越多
svc.fit(X_standard,y)
三、使用SVM处理非线性的数据
from sklearn.preprocessing import StandardScaler,PolynomialFeatures
from sklearn.svm import LinearSVC
from sklearn.pipeline import Pipeline
def PolynomialSVC(degree,C=1.0):
return Pipeline([
("Poly",PolynomialFeatures(degree=degree)),
("std_scaler",StandardScaler()),
("LinearSVC",LinearSVC(C=C))
])
四、使用多项式核函数的SVM
1、什么是核函数
不用使用PolynomialFeature,而是通过一个函数K,直接得到x(i)的多项式特征x’(i)
from sklearn.svm import SVC
def PolynomialKernelSVC(degree,C=1.0):
return Pipeline([
("std_scaler",StandardScaler()),
("KernelSVC",SVC(kernel="poly",degree=degree,C=C))
])