jlibsvm, 在Java中支持向量机的有效训练

分享于 

5分钟阅读

GitHub

  繁體 雙語
Efficient training of Support Vector Machines in Java
  • 源代码名称:jlibsvm
  • 源代码网址:http://www.github.com/davidsoergel/jlibsvm
  • jlibsvm源代码文档
  • jlibsvm源代码下载
  • Git URL:
    git://www.github.com/davidsoergel/jlibsvm.git
    Git Clone代码到本地:
    git clone http://www.github.com/davidsoergel/jlibsvm
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/davidsoergel/jlibsvm
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    jLibSVM

    支持向量机在Java中的高效训练

    • 重构的Java端口 venerable LIBSVM ( 版本 2.88 )。
    • 提供了的惯用 Java 类结构和 api ( 与LIBSVM提供的Java版本不同,它是由transliterated代码)。
    • 除了由提供的五个标准 kernels,易于添加新的内核。
    • 在数学方面,与 LIBSVM的计算完全相同,包括收缩和在 LIBSVM实现文档中描述的所有花哨内容。
    • 优化的内核实现运行速度更快,特别是当输入向量稀疏时。 例如在 mushrooms数据集上,使用RBF核比 LIBSVM ( java版本) 更快,并且使用线性内核更快地实现了 ~40%的。 ( LIBSVM版本的仍然更快)。
    • 采用多线程培训,以利用现代多核心机器( 使用 Conja )。
    • 集成缩放和规范化,这样你就不必显式地预处理数据。
    • 用于优化内核参数的集成网格搜索
    • 如果使用命令行工具( 比如 ),则放弃替换。 支持 svm,等等 ),但如果你以编程方式使用 LIBSVM。
    • 整个Java中使用了泛型generics包括分类标签,因此你可以指定类的是你所喜欢的任何Java类型。 例如在电子邮件过滤应用程序中,你可以使用 Mailbox 类型的对象作为标签。 这样你就可以写一些东西 mySvmSolutionModel.predict(incomingEmail).addMessage(incomingEmail)predict() 方法返回分类标签,在本例中是 Mailbox 类的对象,它具有 addMessage() 方法。

    状态

    这是beta代码。虽然LIBSVM是稳定的,但是我可能会在重构它的过程中破坏它。 我已经对C_SVC机器和RBF内核进行了临时测试,并得到了与LIBSVM相同的结果。 没有( 但是) 任何单元测试。 我正在运行一些自动验证,jlibsvm的行为与LIBSVM的一些输入数据集和参数选择很快。 如果你发现这两个软件包的结果不同,请让我了解一下。

    文档

    抱歉,我还没机会写任何文档。 查看 legacyexec 软件包中的命令行程序的源代码,以了解如何调用。 很简单,你将需要:

    下载

    是目前最简单的利用jlibsvm的方法。 只需将这些添加到你的pom.xml:

    <repositories>
     <repository>
     <id>dev.davidsoergel.com releases</id>
     <url>http://dev.davidsoergel.com/nexus/content/repositories/releases</url>
     <snapshots>
     <enabled>false</enabled>
     </snapshots>
     </repository>
     <repository>
     <id>dev.davidsoergel.com snapshots</id>
     <url>http://dev.davidsoergel.com/nexus/content/repositories/snapshots</url>
     <releases>
     <enabled>false</enabled>
     </releases>
     </repository>
    </repositories>
    <dependencies>
     <dependency>
     <groupId>edu.berkeley.compbio</groupId>
     <artifactId>jlibsvm</artifactId>
     <version>0.911</version>
     </dependency>
    </dependencies>

    如果你真的想要 jar,你可以从 Maven repo 获得最新版本;或者从构建服务器获取最新稳定构建插件。


    相关文章