一、支持向量机(SVM)
将两种特征用 一条直线或者平面 分开
二、支持向量机算法基本原理
线性(SVM):找到最好的决策边界
最大化 Margin: 决策边界最近的距离
最小的Margin之和最大化
非线性(SVM):低维映射到高维再处理,找到最优的
三、支持向量机代码
from sklearn.svm.import SVC
svc = SVC(
C = 1.0,
lernel = 'rbf',
degree = 3,
gamma = 'auto',
coef0 = 0.0,
shrinking = True,
probability = False,
tol = 0.001,
cache_size = 200,
class_weight = None,
verbose = False,
max_iter = -1,
decision_function_shape = None,
random_state = None
)
一些重要的参数:
C --误差项惩罚参数,C越大,越容易过拟合
kernel --核参数,'linear','poly','rbf','sigmoid'
gamma --当kernel为'poly','rbf','sigmoid'时,默认1/n_feature
四、支持向量机参数优化
parameters = {
'C':[0.001,0.01,0.1,1,10,1000],
'kernel':['linear','poly','rbf','sigmoid']
'gamma':[0.0001,0.001]
}
svm= SVC()
grid_search = GridSearchCV(svm,parameters,scoring = 'accuracy',cv = 5)
grid_search.fit(x,y)
五、支持向量机总结
支持向量机是一个‘超平面分类算法’
最佳超平面-->支持向量Margin(间隔)最大的超平面
支持向量就是离超平面最近的数据点
数据低维--kernel() -->高维,使其线性分开
SVM 主要参数调优:C,gamma,kernel
SVM只支持数值型变量,分类型变量-->onehot编码
SVM对缺失值敏感,需提取处理