御神楽的学习记录之LibSVM训练获得的决策函数


前言

LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。


一、SVM下载及安装

1.SVM官网

SVM官网

2.SVM安装

1、解压官网下载的文件
如下图
在这里插入图片描述
2、选择语言
笔者使用IDEA,故采用的Java语言;
3、将Java文件中的文件移动到Idea项目中
项目结构如下:
在这里插入图片描述

3.数据生成

libSVM提供了生成数据的函数,通过修改idea执行main函数的文件为svm_toy.java即可
在这里插入图片描述
选择svm_toy.java
在这里插入图片描述
运行程序:
在这里插入图片描述
本次使用数据如下:
在这里插入图片描述

二、对数据进行libSVM分类

1.test类数据训练

import java.io.IOException;
import java.sql.SQLOutput;


public class test {
        public static void main(String args[]) throws IOException {
            //存放数据以及保存模型文件路径
            String filepath = "D:\\libSVM\\Test\\";
            /**
             * -s 设置svm类型:默认值为0
             *          0– C-SVC
             *          1 – v-SVC
             *          2 – one-class-SVM
             *          3 –ε-SVR
             *          4 – n - SVR
             *
             * -t 设置核函数类型,默认值为2
             *          0 --线性核
             *          1 --多项式核
             *          2 -- RBF核
             *          3 -- sigmoid核
             *
             * -d degree:设置多项式核中degree的值,默认为3
             *
             * -c cost:设置C-SVC、ε-SVR、n - SVR中从惩罚系数C,默认值为1;
             */
            String[] arg = {"-s","0","-c","10","-t","0",filepath+"data.txt",filepath+"line.txt"};//data.txt为数据生成的数据集
            System.out.println("----------------线性-----------------");
            //训练函数
            svm_train.main(arg);

            arg[5]="1";
            arg[7]=filepath+"poly.txt";//输出文件路径
            System.out.println("---------------多项式-----------------");
            svm_train.main(arg);

            arg[5]="2";
            arg[7]=filepath+"RBF.txt";
            System.out.println("---------------高斯核-----------------");
            svm_train.main(arg);

        }


    }

2.运行结果

1、线性
在这里插入图片描述
2、多项式
在这里插入图片描述

3、高斯核
在这里插入图片描述


总结

SVM用于模式识别或回归时,SVM方法及其参数、核函数及其参数的选择,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻或者利用软件包提供的交互检验功能进行寻优。
LIBSVM拥有C、Java、Matlab、C#、Ruby、Python、R、Perl、Common LISP、Labview、php等数十种语言版本。最常使用的是C、Matlab、Java和命令行(c语言编译的工具)的版本。

参考

https://blog.csdn.net/qq_47281915/article/details/121307709?spm=1001.2014.3001.5501

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值