SVM算法应用综合练习

一、下载LibSVM

链接:https://www.csie.ntu.edu.tw/~cjlin/libsvm/

二、用LibSVM制作鸢尾花数据集

1、解压下载的文件
在这里插入图片描述
2、打开libsvm-3.25\windows下的svm-toy

在这里插入图片描述
将数据集保存到指定文件夹

三、利用上述数据集实现模型训练并写出决策函数的数学公式

1、将Java文件夹下的以下文件复制到idea的新建项目中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在test中添加以下代码;

package test;

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

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

    }


}


运行:
在这里插入图片描述
在F:\svmtest中生成以下文件

线性模型:
在这里插入图片描述
多项式模型
在这里插入图片描述
高斯核模型
在这里插入图片描述
决策函数
根据公式f(x)=wT*x+b以及模型数据可以求得最终的决策函数。

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

四、参考博客

https://blog.csdn.net/qq_45659777/article/details/121320835

猜你喜欢

转载自blog.csdn.net/changlingMYlove/article/details/121398399
今日推荐