基于LibSVM训练编写决策函数

一、原理

参考基于Sklearn+matlab绘制SVM决策函数

二、代码

1.下载LIbSVm

2.解压

在这里插入图片描述

3.选择对应语言代码

使用Java,故把java文件下的文件都引入到项目当中
在这里插入图片描述
在这里插入图片描述

4.准备数据

打开libsvm文件下的windows文件里面的svm-toy程序
在这里插入图片描述在这里插入图片描述

5.进行训练

package test;

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

public class Test {
    public static void main(String args[]) throws IOException {
        //存放数据以及保存模型文件路径
        String filepath = "G:\\IDEAProject\\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"};
        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);

    }


}


三、结果

    1.代码运行结果
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/47fe5dd154464ec09d718ab417a35f75.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcXFfNDYxMzI0ODk=,size_20,color_FFFFFF,t_70,g_se,x_16)

2.输出文件

data.txt训练数据
line.txt线性模型
poly多项式模型
RBF高斯核模型
在这里插入图片描述

3.模型数据

数据说明

        svm_type //所选择的svm类型,默认为c_svc

kernel_type //训练采用的核函数类型,此处为RBF核
gamma //RBF核的参数γ
nr_class //类别数
total_sv //支持向量总个数
rho //判决函数的偏置项b
label //原始文件中的类别标识
nr_sv //每个类的支持向量机的个数
SV //各个类的权系数及相应的支持向量

线性模型

在这里插入图片描述

多项式模型

在这里插入图片描述

高斯核模型

在这里插入图片描述

4.决策函数

根据公式f(x)=w T *x+b以及模型数据可以求得最终的决策函数。

w T 为向量的转置矩阵,即为模型数据中的SV
b为偏置常数,即为数据模型中的rho

四、总结

本次实验了解了 libSVM的背景、原理、训练文本的格式等,如何用libsvm绘制鸢尾花数据集图像,以及libSVM绘制图像的具体方法。

五、参考

https://blog.csdn.net/weixin_56102526/article/details/121390365?spm=1001.2014.3001.5501

https://blog.csdn.net/taohuaxinmu123/article/details/20370525

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值