1 / 32
文档名称:

机器学习—原理、算法与应用-第22讲-支持向量机-3.pptx

格式:pptx   大小:354KB   页数:32页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

机器学习—原理、算法与应用-第22讲-支持向量机-3.pptx

上传人:Alphago 2022/2/23 文件大小:354 KB

下载得到文件列表

机器学习—原理、算法与应用-第22讲-支持向量机-3.pptx

文档介绍

文档介绍:SVM求解面临的问题
SMO算法的基本思想
子问题的求解
优化变量的选择
收敛性的证明
SMO算法的整体流程
多分类问题
libsvm简介与使用
使用SVM时需要注意的问题
SVM推导思路总结
SVM的优缺点
SVM求解面临的问题
加。判断循环终止的方法是检查所有变量是否满足KKT条件
SMO算法的流程
多分类问题
SVM是一个二分类器,对多分类问题的处理一般通过将多个二分类器组合而实现
常见的方案有3种
1对剩余方案
1对1方案
多类损失函数
1对剩余方案
对于有 个类的分类问题,训练 个二分类器
训练时第 个分类器的正样本是第 类样本,负样本是除第 类之外其他类型的样本,这个分类器的作用是判断样本是属于第 类还是属于剩下的其他类
在进行分类时,对于待预测样本,用每个分类器计算输出值,取输出值最大那个作为预测结果
1对1方案
如果有 个类,训练 个二分类器,即这些类两两组合,共有 个二分类器
训练时将第 类作为正样本,其他各类依次作为负样本。每个分类器的作用是判断样本是属于第 类还是第 类
对样本进行分类时采用投票的方法,依次用每个二分类器进行预测,如果判定为第 类,则该类的投票数加1,得票最多的那个类作为最终的判定结果
对于有3个类的分类问题,使用1对剩余方案
训练下面的3个二分类器
每个分类器用于区分第 类和剩余的两个类
分类器1用于区分绿色-红色+蓝色
分类器2用于区分红色-绿色+蓝色
分类器3用于区分蓝色-红色+绿色
黑色样本被分类器1和3判定为正,离3的分界面最远,判定为蓝色
对于有3个类的分类问题,使用1对1方案
训练下面的3个二分类器
分类器1用于区分红色-绿色
分类器2用于区分红色-蓝色
分类器3用于区分绿色-蓝色
黑色样本绿色得2票,蓝色得1票,红色得0票,判定为绿色
libsvm简介
由台湾大学林智仁教授和他的学生开发,使用c++语言编写,提供java、python、matlab等语言的接口。跨平台,windows和linux上都可以用
实现了5种支持向量机,既支持分类问题,也支持回归问题
支持交叉验证
支持多分类,采用1对1方案
对于分类问题,支持概率输出,即能预测样本属于每个类的概率
libsvm自带了3个程序
svm-train 训练程序
svm-predict 预测程序
svm-scale 样本特征向量归一化
svm-train的使用
从指定格式的文件中读取训练样本,训练模型并保存到指定文件中
svm-train [options] training_set_file [model_file]
-s为支持向量机的类型。0为C-SVC
-t为核函数类型。0为线性核;1为多项式核;2为径向基函数核,即高斯核
-c为惩罚因子
-v为交叉验证参数
libsvm的使用
,可以在libsvm官网下载
下面是部分训练样本
-1 3:1 11:1 14:1 19:1 39:1 42:1 55:1 64:1 67:1 73:1 75:1 76:1 80:1 83:1
-1 3:1 6:1 17:1 27:1 35:1 40:1 57:1 63:1 69:1 73:1 74:1 76:1 81:1 103:1
-1 4:1 6:1 15:1 21:1 35:1 40:1 57:1 63:1 67:1 73:1 74:1 77:1 80:1 83:1
-1 5:1 6:1 15:1 22:1 36:1 41:1 47:1 66:1 67:1 72:1 74:1 76:1 80:1 83:1
输入下面的命令行
svm-train -s 0 -t 2 a1a a1a_model
显示训练结果
训练出来的模型
svm_type c_svc
kernel_type rbf
gamma
nr_class 2
total_sv 754
rho
label 1 -1
nr_sv 371 383
SV
1 5:1 11:1 15:1 32:1 39:1 40:1 52:1 63:1 67:1 73:1 74:1 76:1 78:1 83:1
1 5:1 18:1 19:1 39:1 40:1 63:1 67:1 73:1 74:1 76:1 80:1 83:1
......................
svm-predict的使用
从模型文件中载入模型,并对预测样本文件中的样本进行预测
使用上一步训练的模型,使用 a1a作为测试样本
输入下面的命令行
svm-predict a1a_