LibSVM工具实现决策树训练

本文介绍如何使用LibSVM工具制作鸢尾花数据集并进行模型训练,包括不同核函数的选择与效果对比,同时给出了决策函数的具体数学形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、使用LibSVM制作鸢尾花数据集

  • 下载LibSVM
  • 将下载的压缩文件解压如下:
    在这里插入图片描述
  • 点击windows文件夹,在文件夹中找到名为svm-toy.exe的运行程序并运行。在程序运行框内点击鼠标左键就能打点,点击Change后能够换颜色,最后点击Save将数据保存为train.txt。
    在这里插入图片描述
  • 在原有基础上再次添加一些数据,保存为test.txt。
    在这里插入图片描述

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

  • 打开IDEA,新建java项目,并新建一个Test类。为Test添加代码:
package test;

import java.io.IOException;

public class Test {
    public static void main(String args[]) throws IOException {
        //存放数据以及保存模型文件路径
        String filepath = "D:\\idea\\Java\\svm\\src\\";
        /*
         * -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+"train.txt",filepath+"line.txt"};
        String[] arg1 = {filepath+"test.txt",filepath+"line.txt",filepath+"predict1.txt"};
        System.out.println("----------------线性-----------------");
        //训练函数
        svm_train.main(arg);
        svm_predict.main(arg1);


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

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

    }
}

在这里插入图片描述

  • 将前面生成的两个文档与压缩文件下java文件夹下的libsvm文件夹所有内容拷贝到项目src中,并将如下文件拷贝到test下:
    在这里插入图片描述

  • 在复制到test包下的文件导入报名,结束后路径如下
    在这里插入图片描述

  • 运行项目,查看结果
    在这里插入图片描述

  • Accuracy表示精度,分析结果可知高斯核训练的模型精度略高于多项式和线性。

  • 决策函数公式:f(x)=SV*x+rho(SV的值在生成的txt文件内。)

三、总结

使用LibSVM工具进行决策树训练,不仅能够直观地以图形界面显示,也能利用工具中的代码灵活地在项目中使用,并得到相关系数的输出。


https://blog.youkuaiyun.com/qq_45659777/article/details/121320835

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值