机器学习——支持向量机(SVM)

一、支持向量机(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对缺失值敏感,需提取处理

猜你喜欢

转载自blog.csdn.net/wsp_1138886114/article/details/80470894