Java程序通过weka调用libsvm和liblinear的方法
《Java程序通过weka调用libsvm的方法》一文阐述了调用LibSVM的简单方法,这里主要补充四点:
1. LibSVM在weka3.5版以后都集成了包装,无须再使用WLSVM,所以上文中的WLSVM相关的内容可以去除,而类型WLSVM可以换成LibSVM,需要添加包
import weka.classifiers.functions.LibSVM;
无须再使用import wlsvm.WLSVM;
2. LibLINEAR占用内存小,可以在大数据集大特征量的情况下使用,调用方法与LibSVM相同,不同的就是把类LibSVM换成LibLINEAR(同时,加载的jar包为LibLINEAR,加载方法见《在eclipse下使用java调用weka》下载地址:http://download.csdn.net/source/1998016)。
3. 参数设置
在
m_classifier.buildClassifier(instancesTrain); //训练
前添加:
String[] options=weka.core.Utils.splitOptions("-S 0 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.0010 -P 0.1 -B 0");
m_classifier.setOptions(options);
4. 分类器序列化与反序列化(保存与读取)
weka内置了序列化类,只要使用:
weka.core.SerializationHelper.write(“E:\model”, m_classifier);
就可以保存模型了,使用时只要再使用下面语句读取出来(以LibSVM为例):
Classifier classifier=(LibSVM)weka.core.SerializationHelper.read(“E:\model”);
相关文档:
public class Test{
public static String addBigNum(String str1,String str2){
//找出两字符串的长短,方便后边引用;
String longer = str1.length() > str2.length()? str1 : str2;
String shorter = str1.length( ......
Java Class Attribute Type Hibernate Type Possible SQL Type-Vendor Specific
Integer, int, long short &n ......
最近在用润乾在做一些web项目的报表,其中有一个批量打印的报表。需要把参数传到报表里,当把中文传到里面时总时乱码,采用了各种转码方式,也没转过来,晕.........
为什么会有这么多的编码,好头疼呀... ......
文章用实例代码展示了Java中多线程访问共享资源
时线程同步
的重要性。
分别通过在两个线程中同时访问(调用get_id*方法)经过同步处理(lock及Synchronized)的共享资源(tmp)及未经过同步处理的共享资源(tmp)来说明同步处理的的作用。
main中分两部分:
1)前半部分,non-synchronization部分用来测试没有做同步处理的代码 ......
1首先添加修改图片宽度和高度的方法
public static void reduceImg(String imgsrc, int widthdist, int heightdist) {
try {
File srcfile = new File(imgsrc);
if (!srcfile.exists()) {
return;
}
......