位置: 编程技术 - 正文

3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例

编辑:rootadmin

推荐整理分享3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

最近用LibSVM做分类实验,发现网上的资料大都是关于SVM基本原理和怎么用终端命令行使用svm-train,svm-predict等几个程序,这些其实在README文件中已经讲得很清楚了,Readme里面几乎包含了所有可以帮助你灵活使用LibSVM的信息,可以很多人都不怎么看。这里给出用JAVA调用LibSVM API最简单的示例,用JAVA进行SVM分类只需要几行程序就搞定了,前提是你已经准备好了符合LibSVM处理数据&#;式的训练样本和测试样本。下面一一道来(注:有网友向我要eclipse工程,下载地址见点击打开链接)

1、 准备训练样本和测试样本

直接上LibSVM官网就可以下载,我下载的UCI的UCI-breast-cancer数据集,训练样本和测试样本的基本&#;式是这样的

<label> <index1>:<value1> <index2>:<value2> ...

分别代表 类别 feature1索引:feature1&#; feature2索引:feature2&#;

如果想自己定义核函数,那么属于precompute kernel values and input them as training and testing files.

此时训练样本和测试样本变成如下&#;式:

New training instance for xi: <label> 0:i 1:K(xi,x1) ... L:K(xi,xL) New testing instance for any x: <label> 0:? 1:K(x,x1) ... L:K(x,xL)

That is, in the training file the first column must be the "ID" of xi. In testing, ? can be any value.

3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例

很好理解,有篇EMNLP做观点和关系抽取就是自己定义核函数借助SVM分类器实现的。

2、建立JAVA工程,导入LibSVM 的JAR包,要注意还需要导入java文件下的svm_train.java和svm_predict.java这两个文件,这两个类其实主要在LibSVM基础上做了进一步封装,把命令行参数转化成了String []类型的函数参数,方便API调用。至于另外两个svm_tony.java和svm_scale可以不导入,它们分别是图形界面和数据压缩用的,不是必要文件。

3、把训练样本和测试样本放在工程文件夹下,当然,你也可以自定义data目录。

4 、修改svm_train.java和svm_predict.java这两个文件,前者主要是把model_file_name返回,因为在svm_predict的main函数中需要使用,后者主要是把分类的Accuracy返回。

5、编写JAVA调用LibSVM API分类代码如下,非常简单,代码中给出了注释

[java] view plaincopyimport java.io.IOException; import libsvm.*; /**JAVA test code for LibSVM * @author yangliu * @blog * @mail yangliuyx@gmail.com */ public class LibSVMTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //Test for svm_train and svm_predict //svm_train: // param: String[], parse result of command line parameter of svm-train // return: String, the directory of modelFile //svm_predect: // param: String[], parse result of command line parameter of svm-predict, including the modelfile // return: Double, the accuracy of SVM classification String[] trainArgs = {"UCI-breast-cancer-tra"};//directory of training file String modelFile = svm_train.main(trainArgs); String[] testArgs = {"UCI-breast-cancer-test", modelFile, "UCI-breast-cancer-result"};//directory of test file, model file, result file Double accuracy = svm_predict.main(testArgs); System.out.println("SVM Classification is done! The accuracy is " &#; accuracy); //Test for cross validation //String[] crossValidationTrainArgs = {"-v", "", "UCI-breast-cancer-tra"};// fold cross validation //modelFile = svm_train.main(crossValidationTrainArgs); //System.out.print("Cross validation is done! The modelFile is " &#; modelFile); } } 6 运行工程,观察分类准确率,我的代码主要进行了两次实验,第一次是基于训练样本训练分类model(分类超平面),然后对测试样本进行分类;第二次直接对训练样本采用折交叉验证法测试SVM分类性能,其他参数采用默认&#;,运行结果如下

是不是很容易,其实仔细看看LibSVM的Readme,很多问题都不是问题。如果需要完整工程文件可以在下面评论栏留下邮箱。

附:svm 主调用程序经常使用的几个方法,注意这是LibSVM中SVM类下的函数,与svm_train.java等文件中的相关函数要区分:svm.svm_train(svm_problem,svm_parameter) 该方法返回一个训练好的svm_modelsvm.svm_load_model(文件名); 该方法返回一个训练好的svm_modelsvm.svm_save_model(文件名,svm_model); 该方法将svm_model保存到文件中svm.svm_predict_values(svm_model,svm_node,double); 该方法返回doule类&#;,svm_node对svm_model测试,返回&#;确定了svm_node在模型中的定位

原文:

android中style的学习心得 通过学习发现android中界面、元素及动画一般都用到style,关于系统自带的styles.xml文件(我的在D:android-sdk-windowsplatformsandroid-dataresvaluesstyles.xml),源

android 中添加字体:java.lang.RuntimeException: native typeface cannot be made 关于android自定义字体我想自行定义内容的字体,用了以下语句:TextViewtv=(TextView)findViewById(R.id.maintitle);//换字体Typefaceface=Typeface.createFromAsset(getAssets(),font

LRU缓存机制 今天在看Android内存优化的文档的时候,有一段提到了LRU内存缓存机制,当时一下没想起来,遂searchinnet.然后知道真相的我眼泪掉下来,%_%大学时候学的

标签: 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例

本文链接地址:https://www.jiuchutong.com/biancheng/376596.html 转载请保留说明!

上一篇:我决定放弃Android开发(我决定放弃了你却对我笑了)

下一篇:android中style的学习心得(android style文件)

  • ThinkPHP实现登录退出功能(thinkphp 登录功能)

    ThinkPHP实现登录退出功能(thinkphp 登录功能)

  • SQL注入全过程深入分析(sql注入的原理和步骤)

    直接通过Google浏览器就能去除。

    点击登录,返回的信息如下:

    Conversion failed when converting the nvarchar value 'master' to data type int.

    数据库名称“master”通过异常被显示出来!依次改变上面SQL语句中的序号,

    就能得到服务器上所有数据库的名称。

    接着,输入信息如下:

    得到返回信息如下:

    Conversion failed when converting the nvarchar value 'spt_fallback_db' to data type int.

    我们得到了master数据库中的第一张表名:“spt_fallback_db”,

    同上,依次改变序号,可得到该库全部表名。

    现在我们以“spt_fallback_db”表为例,尝试获取该表中所有的字段名。在输入框中输入以下代码:

    于是,得到错误提示如下:

    "Conversion failed when converting the nvarchar value 'xserver_name' to data type int." class="img-responsive" alt="SQL注入全过程深入分析(sql注入的原理和步骤)">

    SQL注入全过程深入分析(sql注入的原理和步骤)

  • 自增长键列统计信息的处理方法(主键自增长的数据如何导入)

    自增长键列统计信息的处理方法(主键自增长的数据如何导入)

  • three.js中3D视野的缩放实现代码(three.js dispose)

    three.js中3D视野的缩放实现代码(three.js dispose)

  • js日期插件dateHelp获取本月、三个月、今年的日期(js日期格式)

    js日期插件dateHelp获取本月、三个月、今年的日期(js日期格式)

  • JavaScript脚本语言在网页中的简单应用(js脚本使用教程)

    JavaScript脚本语言在网页中的简单应用(js脚本使用教程)

  • jQuery调用Webservice传递json数组的方法(jquery调用controller)

    jQuery调用Webservice传递json数组的方法(jquery调用controller)

  • 美国个税计算器2021计算器
  • 计提本月短期借款利息是权责发生制吗
  • 总公司是一般纳税人吗
  • 车辆日常维护费用
  • 股东投资属于什么会计要素
  • 员工租房合同
  • 退包装物冲减货款怎么算
  • 企业注销递延所得税资产怎么处理
  • 跨年收入没有进项发票怎么做帐?
  • 建筑业红字发票备注
  • 企业外包项目如何确认收入成本配比?
  • 发票密码区超出还能用吗
  • 审计风险可控吗
  • 核定征收是不是不需要发票了
  • 车辆租赁的增值税率
  • 如何计算房地产容积率与土地面积
  • 垃圾填埋沼气发电招聘
  • 公司车辆怎么处理
  • 免征增值税项目销售额含税吗
  • 开电子发票是填不含税单价吗
  • 企业开票信息可以改吗
  • 虚拟机怎么安装iso镜像文件
  • 收到收据的会计分录
  • mac鼠标移动到角落立刻显示桌面
  • 股权转让个税怎么缴纳
  • 出卖固定资产企业处罚
  • zmweb.exe是什么进程
  • Win11 Build 22471 Dev版更新推送(附更新修复已知问题汇总)
  • 存货损失的会计分录
  • 发票开烟酒
  • 辛华达瀑布,加拿大贾斯珀国家公园 (© Schroptschop/Getty Images)
  • php出栈函数
  • 解决方案啥意思
  • php数组实现原理
  • php实现多维数组输入
  • 退回以前年度多交的附加税怎么做分录
  • php数据库编程
  • 机器学习:基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
  • crontab命令用法
  • 上一年的运费发票怎么开
  • 财政总预算会计的主体是
  • java获取resources下文件路径
  • sql server配置文件在哪
  • windows7怎么操作
  • mongodb部署安装
  • 期间费用指哪些费用
  • 库存商品的科目设置
  • 出口退税转内销的损失
  • 免税农产品发票需要勾选吗
  • 支付水电费会计
  • 一般纳税人劳务税率是多少?
  • 有限合伙企业的
  • 收到总公司拨款怎么入账
  • 赠送产品会计分录怎么写
  • 其他非流动资产是金融资产吗
  • 物流公司挂靠车辆如何做账?
  • 税控开具发票
  • win10安装mysql教程
  • ubuntu安装transmission
  • watchs2最新版本
  • win7没有printtopdf
  • apache服务器配置与使用工作笔记
  • gnaupdaemon.exe是什么
  • win8如何查看所有程序
  • node linux安装
  • cocos2d游戏源码
  • node.js的express
  • shell脚本怎么导出
  • Python生成随机数
  • js深度拷贝的方法
  • Node.js中的事件循环是什么
  • unity自动生成
  • python爬虫视频教程
  • js金额加减
  • angular创建service
  • 票表比对不通过代码999
  • 四川国税总局官网
  • 小规模纳税季度申报
  • 纳税服务理念2023
  • 国家土地征收管理办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设