2 \page static_tutorial 静态接口使用指南
4 SHOGUN为Matlab(tm), R, Python, Octave提供静态接口,另外还有一个单独的命令行程序。静态接口背后的思想
5 就是提供一个可以足够做简单实验的简单环境。例如,你可以训练和评价一个分类器,但额外的事情做不了。如果
6 你想找一个有良好扩展性的接口(如同时使用多个分类器,它们可以共享数据并可以交互),你可以阅读\subpage modular_tutorial
9 本指南告诉你如何使用shogun来创建一个基于高斯核函数的SVM分类器。首先,你需要
10 启动R, python, octave或者matlab来加载shogun。
12 \section start_shogun_static 启动SHOGUN
25 对于octave和matlab,你需要确保sg已添加在它们可访问的路径中。对于命令行接口,只需要执行shogun可执行文件
39 将会看到帮助屏幕。如果没有出现,请查看\subpage installation学习如何安装shogun。
41 \section svm_tutorial_static 创建一个SVM分类器
43 本指南的剩下部分假设正在使用shogun可执行文件。它的基本语法是
45 <command> <option1> <option2> ...
51 set_kernel GAUSSIAN REAL 10 1.2
54 将创建一个实值feature的高斯核函数,使用10MB缓存,核函数宽度为1.2。表示同样的意思,在其它接口(python,r,...)中是这样
56 sg('set_kernel', 'GAUSSIAN', 'REAL', 10, 1.2)
63 set_features TRAIN ../data/fm_train_real.dat
68 sg('set_features', 'TRAIN', [ randn(2, 100)-1, randn(2,100)+1 ])
71 训练一个有监督学习方法需要提供训练数据的label,我们可以设置
73 set_labels TRAIN ../data/label_train_twoclass.dat
78 sg('set_labels', 'TRAIN', sign(randn(1, 100)))
82 现在我们创建一个SVM并设置SVM的C参数为一个合适值(在实际应用中需要参数需要调整,类似的还有核函数参数)
93 现在可以将分类器应用到别的数据,先加载数据然后分类
95 set_features TEST ../data/fm_test_real.dat
99 我们可以保存分类器,那样不用每次都要训练。我们可以这样保存和加载分类器
102 save_classifier libsvm.model
104 load_classifier libsvm.model LIBSVM
107 在其它接口中也可以加载和保存分类,但还需要获取和恢复模型参数。如在这个例子中
110 [b,alphas]=sg('get_classifier')
112 sg('set_classifier', b, alphas)
118 \verbinclude classifier_libsvm.sg
120 这个例子及其它例子可以在 \subpage examples "例子"中找到,examples/cmdline/classifier_libsvm.sg。
124 \li Static R Interface \verbinclude classifier_libsvm.R
125 \li Static Matlab/Octave Interface \verbinclude classifier_libsvm.m
126 \li Static Python Interface \verbinclude classifier_libsvm.py