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”);
相关文档:
由于Flex Builder compiler shell有memory leak的问题, 而SDK默认的的 JVM heap size 只有312M,当compile比较大的project容易不够,所以只要修改SDK的JVM参数就可以。
编辑 {Flex SDK}/bin/jvm.config 文件如下。
java.args=-Xmx512m ...
如果还是有Error,可以增加到1024或者更多。 ......
有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。
如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比 ......
=====================================
前言
在太原经历了一年的痛苦开发之后,项目已经日趋稳定,接下来的工作就是拿现有的代码到其他的省市进行实施、然后做一些本地化开发。日子相对轻松了许多,于是可以抽出时间来温习一下基础的技术知识,给自己列了一个复习提纲,这也是一个java程序员所应该掌握的知识脉络。
=== ......
一、使浏览器不缓存页面的过滤器
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 用于的使 Browser 不 ......