SHOGUN  4.1.0
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
StaticTutorial.mainpage
浏览该文件的文档.
1 /*!
2 \page static_tutorial 静态接口使用指南
3 
4 SHOGUN为Matlab(tm), R, Python, Octave提供静态接口,另外还有一个单独的命令行程序。静态接口背后的思想
5 就是提供一个可以足够做简单实验的简单环境。例如,你可以训练和评价一个分类器,但额外的事情做不了。如果
6 你想找一个有良好扩展性的接口(如同时使用多个分类器,它们可以共享数据并可以交互),你可以阅读\subpage modular_tutorial
7 "模块化接口"这一节。
8 
9 本指南告诉你如何使用shogun来创建一个基于高斯核函数的SVM分类器。首先,你需要
10 启动R, python, octave或者matlab来加载shogun。
11 
12 \section start_shogun_static 启动SHOGUN
13 在python中加载SHOGUN,输入
14 
15 \verbatim
16  from sg import sg
17 \endverbatim
18 
19 在R中输入
20 
21 \verbatim
22  library(sg)
23 \endverbatim
24 
25 对于octave和matlab,你需要确保sg已添加在它们可访问的路径中。对于命令行接口,只需要执行shogun可执行文件
26 
27 现在在所有的语言中输入
28 
29 \verbatim
30  sg('help')
31 \endverbatim
32 
33 在命令行接口中输入
34 
35 \verbatim
36  help
37 \endverbatim
38 
39 将会看到帮助屏幕。如果没有出现,请查看\subpage installation学习如何安装shogun。
40 
41 \section svm_tutorial_static 创建一个SVM分类器
42 
43 本指南的剩下部分假设正在使用shogun可执行文件。它的基本语法是
44 \verbatim
45  <command> <option1> <option2> ...
46 \endverbatim
47 选项之间用空格分开. 例如
48 
49 
50 \verbatim
51 set_kernel GAUSSIAN REAL 10 1.2
52 \endverbatim
53 
54 将创建一个实值feature的高斯核函数,使用10MB缓存,核函数宽度为1.2。表示同样的意思,在其它接口(python,r,...)中是这样
55 \verbatim
56 sg('set_kernel', 'GAUSSIAN', 'REAL', 10, 1.2)
57 \endverbatim
58 
59 可以看到在其它接口只有一点点不同。
60 
61 我们用两组正态分布的随机数来作为训练数据
62 \verbatim
63 set_features TRAIN ../data/fm_train_real.dat
64 \endverbatim
65 
66 在其它接口中可以这样
67 \verbatim
68 sg('set_features', 'TRAIN', [ randn(2, 100)-1, randn(2,100)+1 ])
69 \endverbatim
70 
71 训练一个有监督学习方法需要提供训练数据的label,我们可以设置
72 \verbatim
73 set_labels TRAIN ../data/label_train_twoclass.dat
74 \endverbatim
75 
76 在其它接口中可以这样
77 \verbatim
78 sg('set_labels', 'TRAIN', sign(randn(1, 100)))
79 \endverbatim
80 
81 
82 现在我们创建一个SVM并设置SVM的C参数为一个合适值(在实际应用中需要参数需要调整,类似的还有核函数参数)
83 \verbatim
84 new_classifier LIBSVM
85 c 1
86 \endverbatim
87 
88 然后训练SVM
89 \verbatim
90 train_classifier
91 \endverbatim
92 
93 现在可以将分类器应用到别的数据,先加载数据然后分类
94 \verbatim
95 set_features TEST ../data/fm_test_real.dat
96 out.txt = classify
97 \endverbatim
98 
99 我们可以保存分类器,那样不用每次都要训练。我们可以这样保存和加载分类器
100 
101 \verbatim
102 save_classifier libsvm.model
103 
104 load_classifier libsvm.model LIBSVM
105 \endverbatim
106 
107 在其它接口中也可以加载和保存分类,但还需要获取和恢复模型参数。如在这个例子中
108 
109 \verbatim
110 [b,alphas]=sg('get_classifier')
111 
112 sg('set_classifier', b, alphas)
113 \endverbatim
114 
115 in this case.
116 
117 最后,整个例子是这样的
118 \verbinclude classifier_libsvm.sg
119 
120 这个例子及其它例子可以在 \subpage examples "例子"中找到,examples/cmdline/classifier_libsvm.sg。
121 
122 对于其它接口的用户可以看下面的文件
123 
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
127 */

SHOGUN 机器学习工具包 - 项目文档