一、SVM之核函数
在实践问题中,可以使用核函数,将原始输入空间映射到新的特征空间,从而,使得原本线性不可分的样本可能在核空间可分:
常用核函数总结:
多项式核函数变化:
高斯核函数映射示意图:
高斯核函数映射示意图:
二、SVM实践:
sklearn SVM :
from sklearn import svm;
SVM 使用示例:
clf = svm.SVC(C=0.1, kernel='linear', decision_function_shape='ovr')
cl svm.SVC(C=0.8, kernel='rbf', gamma=20, decision_function_shape='ovr')
cl svm.SVC(C=0.8, kernel='rbf', gamma=20, decision_function_shape='ovo')
调参参数:C,gamma
构建样例数据,以及np.arrary().reshape和flattern()
x = np.empty((4*N, 2))
means = [(-1, 1), (1, 1), (1, -1), (-1, -1)]
sigmas = [np.eye(2), 2*np.eye(2), np.diag((1,2)), np.array(((2,1),(1,2)))]
for i in range(4):
mn = stats.multivariate_normal(means[i], sigmas[i]*0.3)
x[i*N:(i+1)*N, :] = mn.rvs(N)
a = np.array((0,1,2,3)).reshape((-1, 1))
y = np.tile(a, N).flatten()