libsvm学习(一)

libsvm学习(一)
2011年12月27日
  (记录下过程,以备使用的时候查阅)
  一、所需三个软件:
  [b]python3.1.2[/b] 下载链接:http://www.python.org/ftp/python/3.1.2/
  [b]libsvm2.9[/b] 下载链接:http://download.csdn.net/download/phoeni_seu/1857117
  [b]gnuplot软件[/b] 下载链接:http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/g/project/gn/gnuplot/gnuplot/4.2.3/
  python需要安装,其他两个解压即可使用。当然亦可以选择java、VC环境。
  二、一般过程
  LibSVM 使用的一般步骤是:
  1 )按照 LIBSVM 软件包所要求的格式准备数据集;
  2 )对数据进行简单的缩放操作;
  3 )首要考虑选用 RBF 核函数;
  4 )采用交叉验证选择最佳参数 C 与 g ;
  5 )采用最佳参数 C 与 g 对整个训练集进行训练获取支持向量机模型;
  6 )利用获取的模型进行测试与预测。
  三、注意事项
  1、LibSVM的输入有格式要求,可以按照格式要求编写程序实现,也可以参考http://download.csdn.net/detail/dadaadao/1571409  在excel中直接生成libsvm所用格式数据。
  2、配置
  修改easy.py和grid.py最上方两行有关libsvm、python和gnuplot的路径的代码。其中,svmpath 代表 svmscale.exe、svmtrain.exe 等可执行文件的路径,pythonpath 代表easy.py和grid.py等脚本文件路径,gnuplotpath 代表 pgnuplot.exe 的路径。
  这里,我把easy.py和grid.py复制到\libsvm-2.9\python下,然后修改这两个文件中的路径代码(记得用绝对路径,也可以设置成环境变量后使用相对路径),如下:
  //easy.py修改
  else:
  # example for windows
  svmscale_exe = r"d:\libsvm-2.9\windows\svm-scale.exe"
  svmtrain_exe = r"d:\libsvm-2.9\windows\svm-train.exe"
  svmpredict_exe = r"d:\libsvm-2.9\windows\svm-predict.exe"
  gnuplot_exe = r"d:\gnuplot\bin\pgnuplot.exe"
  grid_py = r"d:\libsvm-2.9\python\grid.py"
  //grid.py修改
  else:
  # example for windows
  svmtrain_exe = r"d:\libsvm-2.9\windows\svm-train.exe"
  gnuplot_exe = r"d:\gnuplot\bin\pgnuplot.exe"
  四、至此环境算是搭好了,下面可以开始进行分类、回归、预测等试验。
  使用时,可以直接使用easy.py,或者手动进行,步骤如下:
  规范化训练样本、交叉验证寻找最合适参数、利用寻找到的参数进行模型训练、规范化测试样本、使用模型进行分类预测。
  刚开始接触,直接使用easy.py执行,
  命令行为:
  cmd
  cd d:\python31
  python d:\libsm-2.9\python\easy.py d:\libsm-2.9\python\heart_scale
  回车执行,dos运行结果
  Scaling training data...
  Cross validation...
  Best c=2048.0, g=0.0001220703125 CV rate=84.0741
  Training...
  Output model: heart_scale.model
  执行后可以得到相应的结果,结果保存在python31目录下,产生了5个新文件train.libsvm.model(预测模型)、train.libsvm.range(缩放规则)、train.libsvm.scale(缩放结果)、train.libsvm.scale.out(规范化结果)、train.libsvm.scale.png(寻参图示)。
  解释下.modle中训练结果头部几个字段,
  svm_typec_svc // 所选择的 svm 类型,默认为 c_svc
  kernel_typerbf // 训练采用的核函数类型,此处为 RBF 核
  gamma0.000122071 //RBF 核的参数 γ
  nr_class2 // 类别数,此处为两分类问题
  total_sv103 // 支持向量总个数
  rho1.61698 // 判决函数的偏置项 b
  label 1-1 // 原始文件中的类别标识
  nr_sv 51 52 // 每个类的支持向量机的个数
  SV // 以下为各个类的权系数及相应的支持向量
   ...........
  五、学习情况(待续)
  
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值