机器学习实战(支持向量机)

支持向量机

线性SVM分类

硬间隔分类:让所有实例都在正确的一边的分类。

硬间隔变成软间隔:引入松弛变量C。

C是调节间隔与准确率的因子,C值越大,越不愿放弃那些离群点;c值越小,越不重视那些离群点。(模型过拟合,C值调小进行正则化)

软间隔分类:在“街道”的宽度和间隔违例(错误分类)之间找到良好的平衡的分类。

svm_clf = SVC(kernel=“linear”, C=float(“inf”))
线性核函数

非线性SVM分类

通过非线性变换,将非线性问题变为线性问题

  • 添加特征

    • 指定kernel=“ploy”其中γ、r、d属于超参,需要调参定义
  • 添加相似特征

    • 指定kernel=“rbf”,其中γ属于超参,要求大于0,需要调参定义(过拟合降低,欠拟合提升)

    • 增加gamma值,钟形曲线变得更窄会变得更窄,每个实例的影响范围更小,减小gamma变的更平坦

核函数的选取

  • 高维用线性,不行换特征;低维试线性,不行换高斯

SVM回归

参数

参数解释
C惩罚项参数
loss损失函数。当值为epsilon_insensitive时损失函数为L(它是标准SVR的损失函数);值为square_epsilon_insensitive时表示为L的平方
epsilon浮点数,用于loss中的sigma参数
dual布尔值。如果为True,则解决对偶问题,如果为False,则解决原始问题,当n_samples>n_features时,倾向于采用False
tol浮点数,指定终止迭代的阈值
fit_intercept布尔值,如果为True,则计算截距,即决策函数中的常数项;否则忽略截距

属性

  • coef_:一个数组,给出了各个特征的权重。

  • intercept_:一个数组,隔出了截距,即决定函数中的常数项。

方法

  • fit(x, [,y]):训练模型。
  • predict(x):用模型进行预测,返回预测值
  • score(x,y[,sample_weight]):返回(x,y)上预测的准确率

基本思想

  1. 在类之间拟合可能最宽的街道,寻找最大的决策边界
  2. 支持向量:决策边界位于“街道”边缘的实例
  3. 放缩的原因:支持向量机拟合类别之间可能的、最宽的“街道”,所以如果训练集不经缩放,SVM将趋于忽略值较小的特征。
  4. 当训练实例的数量小于特征数量时,解决对偶问题比原始问题更迅速。

Sklearn构建的SVM分类器

参数解释
C惩罚项
kernel核函数类型,str类型,默认为’rbf’
degree多项式核函数的阶数,int类型,可选参数,默认为3
gamma核函数系数,float类型,可选参数,默认为auto。只对’rbf’ ,’poly’ ,’sigmod’有效。如果gamma为auto,代表其值为样本特征数的倒数,即1/n_features。
coef0核函数中的独立项,float类型,可选参数,默认为0.0。只有对’poly’ 和,’sigmod’核函数有用,是指其中的参数c。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值