libsvm实例子
来源:互联网 发布:max 无法录入数据 编辑:程序博客网 时间:2024/04/28 16:55
实际应用的小贴士
=======================
* 缩放数据。例如,缩放每个属性为 [0,1] 或 [-1,+1]。
* 对于 C-SVC,可以考虑用 ‘tools’ 文件夹下的模型选择工具。
* nu-SVC/one-class-SVM/nu-SVR 中的 nu 参数近似为训练误差和支持向量的比率。
* 如果要分类的数据是不平衡的(如,大正集和小负集),用 -wi 尝试不同的惩罚因子(参见下述例子)。
* 对于复杂问题,指定更大的缓存(即,larger -m)。
> svm-scale -l -1 -u 1 -s range train > train.scale
> svm-train -s 3 -p 0.1 -t 0 data_file
用线性核函数 u'v 解决 SVM 回归(问题),损失函数中 epsilon=0.1。
> svm-train -c 10 -w1 1 -w2 5 -w4 2 data_file
> svm-train -s 0 -c 100 -g 0.1 -v 5 data_file
例子: 假定最初的训练数据有三个 4-feature 的实例,测试数据有一个实例:
15 1:1 2:1 3:1 4:1 45 2:3 4:3 25 3:1
15 1:1 3:1
如果用线性核函数,我们将得到如下新的训练和测试子集:
15 0:1 1:4 2:6 3:1 45 0:2 1:6 2:18 3:0 25 0:3 1:1 2:0 3:1
15 0:? 1:2 2:0 3:1
? 可为任何值。
上面的训练文件的任何子集也是有效的。如,
25 0:3 1:1 2:0 3:1 45 0:2 1:6 2:18 3:0
意味着核矩阵为:
[K(2,2) K(2,3)] = [18 0] [K(3,2) K(3,3)] = [ 0 1]
例子
=======================
=======================
> svm-scale -l -1 -u 1 -s range train > train.scale
> svm-scale -r range test > test.scale
缩放训练数据的每个特征值在 [-1,1] 内(训练数据文件为 train,缩放后的数据为 train.scale),缩放因子(就是一些参数)被存储在 range 文件中然后被用于缩放测试数据(测试数据文件为test,缩放后的数据为test.scale)。
> svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 data_file
用 RBF核函数 exp(-0.5|u-v|^2) 训练(data_file文件)得到一个分类器,C=10,终止允差为0.1。
缩放训练数据的每个特征值在 [-1,1] 内(训练数据文件为 train,缩放后的数据为 train.scale),缩放因子(就是一些参数)被存储在 range 文件中然后被用于缩放测试数据(测试数据文件为test,缩放后的数据为test.scale)。
> svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 data_file
用 RBF核函数 exp(-0.5|u-v|^2) 训练(data_file文件)得到一个分类器,C=10,终止允差为0.1。
> svm-train -s 3 -p 0.1 -t 0 data_file
用线性核函数 u'v 解决 SVM 回归(问题),损失函数中 epsilon=0.1。
> svm-train -c 10 -w1 1 -w2 5 -w4 2 data_file
训练一个分类器,对于 ‘1’ 类 惩罚因子为 10= 1 * 10,对于 ‘2’ 类 惩罚因子为 50 = 5 * 10,对于 ‘4’ 类 惩罚因子为 20 = 2 * 10。
> svm-train -s 0 -c 100 -g 0.1 -v 5 data_file
对分类器用参数 C=100,gamma=0.1 做五折交叉验证。
> svm-train -s 0 -b 1 data_file
> svm-predict -b 1 test_file data_file.model output_file
用概率信息得到一个模型。用概率估计来预测测试数据。
自定义核函数
=======================
自定义核函数
=======================
用户可以自定义核函数的值并输入它们作为训练和测试文件。之后 libsvm 不需要原始的训练和测试集。
假定有 L 个训练实体 x1, ..., xL。以 K(x, y) 做核函数中两个实体 x,y 的值,输入格式如下:
新训练实例 xi:
<label> 0:i 1:K(xi,x1) ... L:K(xi,xL)
新测试实例 任意 x:
<label> 0:? 1:K(x,x1) ... L:K(x,xL)
即,在训练文件中,第一列必须是 xi 的‘ID’。在测试中,用 ? 作为任意值。
所有核函数值包括 ZEROs 必须是明确提供的。训练和测试文件中任何随机的或排列的子集也有效(见下例)。
注意:格式与以前在 libsvmtools(文件夹)中发布的预定义核函数略有不同。
例子:
0 0
- libsvm实例子
- libsvm使用实例
- libsvm-matlab实例代码
- LibSVM学习2:Libsvm工具箱参数实例详解
- libsvm用作分类器的实例
- 初步体验libsvm用法3(matlab实例)
- LIBSVM工具箱简单分类与回归实例
- LIBSVM
- libSVM
- libsvm
- LibSVM
- libsvm
- libsvm
- LIBSVM
- libsvm
- libsvm
- libsvm
- libsvm
- Sobel算子学习与理解
- Protocol Buffers Developer Guide-API Reference --C++ Generated Code
- 多线程批量转换文件编码, 从GBK, GB2312编码转换到UTF-8编码(Python)
- 这年头什么最赚钱
- Windows环境下批量修改文件名
- libsvm实例子
- JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld
- ubuntu下chatofpomelo项目调试记录
- Activity的启动模式详细介绍
- Hive自定义UDAF详解
- 如何配置SSH(Mac)
- Python 核心编程第六章6.1 6.2
- 学一点记一点之Linux/Centos(通用篇)
- fatal error C1010: unexpected end of file while looking for precompiled header directive