应用libsvm对训练集进行训练并测试得出正确率和召回率

此Java程序演示了如何使用libsvm库对训练集进行训练,然后对测试集进行预测,计算准确率和召回率。程序读取指定目录下的文本数据,构建svm_problem和svm_parameter对象,训练SVM模型,并输出每个类别的准确率和召回率。
摘要由CSDN通过智能技术生成

package org.lw.fenlei;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

import libsvm.svm;
import libsvm.svm_model;
import libsvm.svm_node;
import libsvm.svm_parameter;
import libsvm.svm_problem;

public class Test {

 
 @SuppressWarnings("resource")
 public static void main(String[] args) throws Exception{
  // 定义训练集点a{10.0, 10.0} 和 点b{-10.0, -10.0},对应label为{1.0, -1.0}
 // svm_node pa0 = new svm_node();
 // pa0.index = 0;
 // pa0.value = 10.0;
 // svm_node pa1 = new svm_node();
 // pa1.index = -1;
 // pa1.value = 10.0;
 // svm_node pb0 = new svm_node();
 // pb0.index = 0;
 // pb0.value = -10.0;
 // svm_node pb1 = new svm_node();
 // pb1.index = 0;
 // pb1.value = -10.0;
 // svm_node[] pa = {pa0,pa1};//点a
 // svm_node[] pb = {pb0,pb1};//点b
 // svm_node[][] datas = {pa,pb};//训练集的向量表
 // double[] lables = {1.0,-1.0};//a,b对应的lable
  
  
  //找到字典的长度
  
  int ZDlength=0;
  File ZD = new File ("c:" + File.separator + "dm" + File.separator + "ZD.txt");
  BufferedReader ZDbuf = null;
  InputStream ZDinput = new FileInputStream(ZD);
  ZDbuf = new BufferedReader(new InputStreamReader(ZDinput));
  while(ZDbuf.readLine()!=null){
   ZDlength++;
  }
  System.out.println("字典长度为:"+ZDlength);
  
  
  
  
  //找到xunlian文件夹下有几个文件,有几个文件就是分几个类
  File file = new File ("c:" + File.separator + "dm" + File.separator + "xunlian1");
  String path[] = file.list();
  int lengths = path.length ;
  svm_node[][] datas = new svm_node[10000][ZDlength];
  for(int j=0; j<10000; j ++)
  {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值