LIBSVM 是一个广泛使用的支持向量机(SVM)工具包,支持分类、回归和分布估计等任务。以下是其基本使用方法和关键参数注释,帮助用户快速上手。

1. 安装与使用步骤

1.1 安装

下载地址: LIBSVM官网编译:# Linux/Mac 下编译

make

# Windows 使用预编译的 .exe 文件

1.2 数据准备

数据格式: 每行对应一个样本,格式为 标签 特征1:值1 特征2:值2 ... 例如:1 1:0.5 2:0.3 3:0.7

-1 1:0.1 2:0.9 3:0.2

1.3 训练与预测

# 训练模型

svm-train [参数] 训练数据文件 [模型文件]

# 示例: svm-train -c 10 -g 0.1 data.txt model.txt

# 使用模型预测

svm-predict 测试数据文件 模型文件 预测结果文件

# 示例: svm-predict test.txt model.txt predict.txt

2. 核心参数注释

2.1 SVM类型 (-s)

参数值类型适用场景0C-SVC (默认)多类分类1nu-SVC分类,支持 nu 参数2one-class SVM异常检测3epsilon-SVR回归任务4nu-SVR回归,支持 nu 参数

2.2 核函数类型 (-t)

参数值核函数公式0线性核 (Linear)( K(x_i, x_j) = x_i^T x_j )1多项式核( (γ x_i^T x_j + r)^d )2RBF核 (默认)( \exp(-γ |x_i - x_j|^2) )3Sigmoid核( \tanh(γ x_i^T x_j + r) )

2.3 常用参数

参数说明默认值-c惩罚系数 ©,控制过拟合1-g核函数参数 gamma (RBF核关键参数)1/特征数-d多项式核的阶数 (degree)3-r核函数中的截距项 (coef0)0-nnu 参数 (nu-SVC, nu-SVR)0.5-pepsilon 参数 (epsilon-SVR)0.1-e停止准则的容忍误差 (epsilon)0.001-m内存缓存大小 (MB)100

3. 关键参数调优建议

RBF核 (默认):

优先调节 -c (惩罚系数) 和 -g (gamma)。过拟合时:降低 -c,增大 -g;欠拟合时:增大 -c,降低 -g。 交叉验证: 使用网格搜索 (grid.py) 寻找最优 -c 和 -g:

python grid.py -log2c -5,5,1 -log2g -5,5,1 数据文件

数据归一化: 使用 svm-scale 对数据归一化到 [0,1] 或 [-1,1],避免特征量纲差异影响模型。

4. 示例代码

# 数据归一化

svm-scale -l -1 -u 1 -s range.txt data.txt > data.scaled

# 训练模型 (RBF核,C=10, gamma=0.5)

svm-train -s 0 -t 2 -c 10 -g 0.5 data.scaled model.txt

# 预测

svm-predict test_data.scaled model.txt predictions.txt

5. 注意事项

默认核函数: 未指定 -t 时使用 RBF 核,需调参。回归任务: 使用 -s 3 (epsilon-SVR) 或 -s 4 (nu-SVR)。类别不平衡: 通过 -wi 参数调整类别权重,例如 -w1 10 提高类别1的权重。

建议结合官方文档 (LIBSVM Guide) 深入理解参数交互和调优策略。

Copyright © 2088 世界杯举办国家_世界杯中 - zbtysj.com All Rights Reserved.
友情链接