【libsvm参数说明】在使用LIBSVM(一种广泛使用的支持向量机工具库)时,了解其关键参数对于模型的性能优化至关重要。以下是对LIBSVM主要参数的总结,并通过表格形式进行清晰展示。
一、常用参数说明
1. -s:指定SVM的类型
- 0:C-SVC(多类分类)
- 1:nu-SVC(多类分类)
- 2:one-class SVM(单类分类)
- 3:epsilon-SVR(回归)
- 4:nu-SVR(回归)
2. -t:核函数类型
- 0:线性核
- 1:多项式核
- 2:径向基函数(RBF)
- 3:Sigmoid核
- 4:自定义核(需提供核矩阵)
3. -d:多项式核的次数(仅当-t=1时有效)
4. -g:RBF核的gamma值(即1/(2σ²)),默认为1/特征数
5. -r:多项式/Sigmoid核的系数(常数项)
6. -c:C参数,用于C-SVC和epsilon-SVR,控制分类误差与模型复杂度之间的平衡
7. -n:nu参数,用于nu-SVC和nu-SVR,控制支持向量的比例
8. -m:SVM的缓存大小(单位:MB),影响训练速度
9. -e:停止条件的精度(用于epsilon-SVR)
10. -h:是否对数据进行缩放(0或1)
11. -b:是否输出概率估计(0或1)
12. -wi:设置各类别的权重(用于不平衡数据集)
二、参数总结表
| 参数 | 说明 | 默认值 | 备注 |
| -s | SVM类型 | 0 | 0: C-SVC, 1: nu-SVC, 2: one-class, 3: epsilon-SVR, 4: nu-SVR |
| -t | 核函数类型 | 0 | 0: 线性, 1: 多项式, 2: RBF, 3: Sigmoid |
| -d | 多项式核的次数 | 3 | 仅当-t=1时生效 |
| -g | RBF核的gamma值 | 1/特征数 | 默认为1/特征数 |
| -r | 多项式/Sigmoid核的常数项 | 0 | 用于多项式和Sigmoid核 |
| -c | C参数 | 1 | 控制正则化强度 |
| -n | nu参数 | 0.5 | 用于nu-SVC和nu-SVR |
| -m | 缓存大小 | 40 | 单位:MB,影响训练速度 |
| -e | 停止精度 | 0.001 | 用于epsilon-SVR |
| -h | 数据缩放 | 1 | 1表示启用缩放 |
| -b | 概率估计 | 0 | 1表示启用概率输出 |
| -wi | 类别权重 | 无 | 可设置不同类别的权重 |
三、使用建议
- 对于大多数分类任务,推荐使用 `-s 0` 和 `-t 2`(即C-SVC和RBF核)。
- 如果数据不平衡,可以通过 `-wi` 设置类别权重。
- 若追求速度,可适当减小 `-m` 的值;若追求精度,增大 `-m`。
- 在使用概率输出时,应设置 `-b 1`,但会略微增加训练时间。
通过合理配置这些参数,可以显著提升LIBSVM模型的性能和泛化能力。实际应用中,建议结合交叉验证和网格搜索进行参数调优。


