`
insertyou
  • 浏览: 908656 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java程序通过weka调用libsvm的方法

 
阅读更多
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: small;"><span style="">在《</span><span class="title"><span lang="EN-US"><a href="http://blog.csdn.net/Felomeng/archive/2009/10/17/4688257.aspx" target="_blank"><span style="color: #0000ff;"><span style="" lang="EN-US"><span lang="EN-US">在</span></span><span style="font-family: Calibri;">eclipse</span><span style="" lang="EN-US"><span lang="EN-US">下使用</span></span><span style="font-family: Calibri;">java</span><span style="" lang="EN-US"><span lang="EN-US">调用</span></span><span style="font-family: Calibri;">weka</span></span></a></span></span><span class="title"><span style="">》的基础上,使用</span></span><span style="">《</span><span class="title"><span lang="EN-US"><a href="http://blog.csdn.net/Felomeng/archive/2009/10/17/4688257.aspx" target="_blank"><span style="color: #0000ff;"><span style="" lang="EN-US"><span lang="EN-US">在</span></span><span style="font-family: Calibri;">eclipse</span><span style="" lang="EN-US"><span lang="EN-US">下使用</span></span><span style="font-family: Calibri;">java</span><span style="" lang="EN-US"><span lang="EN-US">调用</span></span><span style="font-family: Calibri;">weka</span></span></a></span></span><span class="title"><span style="">》中介绍的方法添加</span><span lang="EN-US"><span style="font-family: Calibri;">libsvm</span></span></span><span class="title"><span style="">的两个</span><span lang="EN-US"><span style="font-family: Calibri;">jar</span></span></span><span class="title"><span style="">包(</span><span lang="EN-US"><span style="font-family: Calibri;">libsvm.jar</span></span></span><span class="title"><span style="">和</span><span lang="EN-US"><span style="font-family: Calibri;">wlsvm.jar</span></span></span><span class="title"><span style="">)及</span><span lang="EN-US"><span style="font-family: Calibri;">weka</span></span></span><span class="title"><span style="">的</span><span lang="EN-US"><span style="font-family: Calibri;">jar</span></span></span><span class="title"><span style="">包,这三个包可以从这里下载:</span><span lang="EN-US"><a href="http://download.csdn.net/source/1749854"><span style="color: #0000ff; font-family: Calibri;">http://download.csdn.net/source/1749854</span></a></span></span><span class="title"><span style="">。</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: small;"><span class="title"><span style="">然后在</span><span lang="EN-US"><span style="font-family: Calibri;">import</span></span></span><span class="title"><span style="">诸语句下添加:</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20.1pt;"><strong><span style='font-size: 10pt; color: #7f0055; font-family: "Courier New";' lang="EN-US">import</span></strong><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US"> wlsvm.WLSVM;</span><span class="title"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span class="title"><span style="font-size: small;"><span style="">然后把原代码中的</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt;"><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US"><span style=""> </span>Classifier m_classifier = </span><strong><span style='font-size: 10pt; color: #7f0055; font-family: "Courier New";' lang="EN-US">new</span></strong><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US"> J48();</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span class="title"><span style="font-size: small;"><span style="">改为:</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt;"><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US"><span style=""> </span>Classifier m_classifier = </span><strong><span style='font-size: 10pt; color: #7f0055; font-family: "Courier New";' lang="EN-US">new</span></strong><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US"> WLSVM();</span><span class="title"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: small;"><span class="title"><span style="">然后运行就是使用</span><span lang="EN-US"><span style="font-family: Calibri;">SVM</span></span></span><span class="title"><span style="">分类了,当然,最后把输出句的</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt; text-align: left;" align="left"><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">System.</span><em><span style='font-size: 10pt; color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='font-size: 10pt; color: #2a00ff; font-family: "Courier New";' lang="EN-US">"J48 classification precision:"</span><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">+(right/sum));</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt; text-align: left;" align="left"><span style="">改为:</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt; text-align: left;" align="left"><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">System.</span><em><span style='font-size: 10pt; color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='font-size: 10pt; color: #2a00ff; font-family: "Courier New";' lang="EN-US">""</span><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">);</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt;"><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">System.</span><em><span style='font-size: 10pt; color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='font-size: 10pt; color: #2a00ff; font-family: "Courier New";' lang="EN-US">"SVM classification precision:"</span><span style='font-size: 10pt; color: black; font-family: "Courier New";' lang="EN-US">+(right/sum));</span><span class="title"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span class="title"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;"></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-size: small;"><span class="title"><span lang="EN-US"><span style="font-family: Calibri;">Libsvm</span></span></span><span class="title"><span style="">有一个问题就是内存占用比较大,经常会提示如下错误:</span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 20pt;"><span style='font-size: 10pt; color: red; font-family: "Courier New";' lang="EN-US">java.lang.OutOfMemoryError: Java heap space</span><span class="title"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span class="title"><span style="font-size: small;"><span style="">在内存不足的情况下的确无法解决,但内存充足的话,可以配置一下程序所能占用的内存大小参数。设置方法:</span></span></span></p>
<p class="MsoListParagraph" style=""><span class="title"><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">1.</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span class="title"><span style="">在</span><span lang="EN-US"><span style="font-family: Calibri;">Package Explorer</span></span></span><span class="title"><span style="">中选中调用</span><span lang="EN-US"><span style="font-family: Calibri;">libsvm</span></span></span><span class="title"><span style="">的类;</span></span></span></p>
<p class="MsoListParagraph" style=""><span class="title"><span style="" lang="EN-US"><span style=""><span style="font-size: small; font-family: Calibri;">2.</span><span style='font: 7pt "Times New Roman";'> </span></span></span></span><span style="font-size: small;"><span class="title"><span style="">在菜单中单击</span><span lang="EN-US"><span style="font-family: Calibri;">Run-&gt;run configuration…-&gt;</span></span></span><span class="title"><span style="">右面的</span><span lang="EN-US"><span style="font-family: Calibri;">(x=)arguments</span></span></span><span class="title"><span style="">页中的</span><span lang="EN-US"><span style="font-family: Calibri;">VM arguments</span></span></span><span class="title"><span style="">文本框中输入</span><span lang="EN-US"><span style="font-family: Calibri;">-Xmx1024M</span></span></span><span class="title"><span style="">。</span><span lang="EN-US"><span style="font-family: Calibri;">//</span></span></span><span class="title"><span style="">表示最大可使用</span><span lang="EN-US"><span style="font-family: Calibri;">1024M</span></span></span><span class="title"><span style="">内存,大家可以根据实际情况设置。</span></span></span></p>
分享到:
评论

相关推荐

    weka的libsvm包

    这个过程对于非编程背景的用户可能较为复杂,但是一旦完成,用户就可以在Weka的图形用户界面(GUI)中直接使用LibSVM的算法,或者通过Weka的API在程序中调用。 在Weka中使用LibSVM后,用户可以利用其强大功能解决...

    Java调用weka神经网络算法预测股票 代码及数据

    Java调用Weka进行神经网络预测时,通常需要以下步骤: 1. **数据预处理**:首先,你需要将股票数据转化为Weka能理解的ARFF(Attribute-Relation File Format)格式。在这个案例中,`test4.arff`很可能就是这样的...

    LIBSVM工具包,可以在weka中使用并被JAVA调用的SVM工具包

    可以在weka中使用并被JAVA调用的SVM工具包

    weka3.6的jar及libsvm.jar和wlsvm.jar

    Weka允许用户通过加载外部库来扩展其功能,libsvm.jar是LibSVM的Java接口,而wlsvm.jar可能是Weka中专门用于封装LibSVM的类库,使得用户可以在Weka环境下直接调用LibSVM的算法。 标签"weka"、"libsvm"、"svm"、...

    weka 集成LibSVMm所需的jar(wlsvm.zip),另附libsvm.zip和liblinear.zip

    而`libsvm.jar`就是将LibSVM库转换为Java可直接使用的形式,使得我们可以在Weka中直接调用SVM模型。 `wlsvm.zip`中的`wlsvm.jar`则是一个特定的Weka扩展,它提供了一个接口来集成LibSVM,使得用户可以在Weka的工作...

    weka-3-7-9jre libsvm wlsvm

    "libsvm.jar"是该库的Java版本,可以被Java程序直接调用。LibSVM的主要优点在于其使用核技巧处理非线性问题,以及支持大规模数据集的能力。通过阅读"libsvm包的集成过程.txt"文档,用户可以学习如何在Weka中集成...

    LibSVM1.0.10

    在JAVA程序中进行调用LIBSVM时,报错Exception in thread "main" java.lang.Exception: libsvm classes not in CLASSPATH!

    weka-3-4-12.rar_SVM in JAVA_weka_weka平台实现

    "weka"和"weka平台实现"强调了使用Weka作为主要的数据挖掘平台,Weka提供了丰富的接口供开发者调用,包括SVM在内的多种机器学习算法都可以通过其API在Java程序中轻松实现。 **压缩包子文件分析:** 提供的两个...

    java调用Weka中神经网络的算法(从数据库中取数据).docx

    通过以上步骤,我们不仅了解了如何使用Java调用Weka中的BP神经网络算法,还学会了如何从外部数据源加载训练集和测试集数据。这对于实际的应用场景来说非常有用,特别是在处理大规模数据集时,能够有效地利用数据库等...

    weka开发需要的jar包

    在Java环境中开发Weka应用时,常常需要依赖一些特定的jar包来支持其功能。这些jar包包括了核心库、扩展库以及与其他库的接口。下面将详细介绍标题和描述中提及的各个jar包及其在Weka开发中的作用。 1. weka.jar:这...

    weka 源码解析 classifier类

    这可以通过调用`Instances`类的`setClassIndex(int index)`方法来完成。例如,如果类别位于最后一列,则可以使用`setClassIndex(numAttributes() - 1)`来设置。 3. **选择分类器**:根据具体问题的需求,可以选择...

    java实现SVM支持向量机算法

    评估模型的性能通常会使用准确率、精确率、召回率、F1分数等指标,Java提供了如Weka这样的库,可以方便地完成这些评估。 总的来说,使用Java实现SVM支持向量机算法涉及多个步骤,包括理解SVM的数学基础,实现优化...

    libsvm-3.12

    在libsvm-3.12中,用户可以通过调用`svm-train`程序,提供训练数据和相应的参数来训练SVM模型。 三、模型预测 模型训练完成后,`svm-predict`程序用于对新数据进行预测。libsvm支持多种类型的SVM,包括线性SVM、...

    SVM测试程序

    本项目提供的“SVM测试程序”是基于Java语言实现的SVM分类器,它利用了libsvm库,这是一个广泛认可的、高效的支持向量机实现。 1. **Java与libsvm** Java是一种跨平台的编程语言,具有丰富的类库和工具,适合开发...

    中文文本分类源代码 使用JAVA

    1. **数据预处理**: 对原始文本进行清洗、标准化和特征提取,这部分可以用Java编写,也可以结合Python的nltk等库进行预处理,然后通过Java调用。 2. **构建模型**: 使用Java API实现分类算法,如SVM的`libsvm`库,...

    java-svm-inputoutputmodel.zip_源码

    在Java中,我们通常会使用如LibSVM或Weka这样的第三方库来实现SVM。LibSVM是由台湾大学的Chih-Chung Chang和Chih-Jen Lin开发的一个强大的开源工具,它提供了训练和预测接口,可以方便地集成到Java项目中。Weka则是...

    文本分类java 实现

    Java实现朴素贝叶斯时,通常会使用如`weka`或`OpenNLP`这样的库,它们提供了训练模型和进行预测的接口。 接着,我们来看**支持向量机(SVM)**。SVM是一种二分类模型,它寻找一个超平面来最大化类别之间的间隔。在...

    一些模式识别算法的java代码

    - Java的标准库提供了丰富的类和接口,对于实现机器学习算法,如JMLC(Java Machine Learning Library)、Weka等都是很好的资源。 在提供的文件列表中,“www.pudn.com.txt”可能是一个文本文件,可能包含了算法的...

    src.rar_支持向量机 java

    在Java中,可以使用开源库如LibSVM或Weka来实现SVM模型的训练。这些库提供了接口,可以方便地构建、训练和支持向量机模型。训练过程中涉及的主要步骤包括: 1. 初始化:设置SVM参数,如正则化参数C、核函数类型和其...

Global site tag (gtag.js) - Google Analytics