常用31个Java机器学习、深度学习、自然语言处理学习库&工具

本文详细介绍了Java中常用的机器学习库,包括Weka、Java-ML、Apache Mahout、Apache Spark的MLlib、Deeplearning4j和MALLET。这些库涵盖了从数据预处理、分类、聚类到深度学习的各种算法,提供了丰富的功能和易用的接口,适合开发者构建自己的机器学习应用。
摘要由CSDN通过智能技术生成

常用的Java机器学习库

在 MLOSS.org 网站上,列出了 70 多个基于 Java 的开源机器学习项目,可能还有更多未列出的项目,存于大学里的服务器、GitHub 或 Bitbucket 中。我们将在本文中回顾 Java 中的主流机器学习库和平台,它们能够解决的问题类型,支持的算法以及可以使用的数据类型。

本文节选自 Machine learning in Java,由 Bostjan Kaluza 编写,Packt Publishing Ltd. 出版

1、Weka

Weka 是 Waikato Environment for Knowledge Analysis(Waikato 智能分析环境)的缩写,是新西兰 Waikato 大学开发的机器学习库,也可能是最为有名的 Java 库。Weka 是一个通用的库,能够解决各种机器学习任务,如分类、回归和聚类。它具有丰富的图形用户界面、命令行界面和 Java API。有关 Weka 更多详情,请参阅:http://www.cs.waikato.ac.nz/ml/weka/

截止到本书写作之时,Weka 总共包含 267 个算法,其中:数据预处理(82),属性选择(33),分类和回归(133),聚类(12),关联规则挖掘(7)。图形界面非常适合用于探索数据,而 Java API 可以让你开发新的机器学习方案并在应用中使用这些算法。
Weka 是在 GNU 通用公共许可证(GNU GPL)下发布的,这意味着你可以复制、分发和修改它,只要你跟踪源文件中的更改并将其保存在 GNU GPL 下。你甚至可以进行商业分发,但前提是你必须公开源代码或获得商业许可证。

除了几种支持的文件格式外,Weka 还提供了自己的默认数据格式 ARFF,用于通过属性 - 数据对描述数据。它由两部分组成:第一部分包含标题头,它指定所有属性(即特性)及其类型;例如,标称、数字、日期和字符串。第二部分包含数据,其中每行对应于一个实例。标题头中的最后一个属性隐式地被视为目标变量,缺失的数据用问号标记。例如,用 ARFF 文件格式编写的 Bob 实例如下:

<span style="color:#aa090f"><code class="language-java">    <span style="color:#2b91af">@RELATION</span> person_dataset
    
    <span style="color:#2b91af">@ATTRIBUTE</span> `Name`  STRING
    <span style="color:#2b91af">@ATTRIBUTE</span> `Height`  NUMERIC
    <span style="color:#2b91af">@ATTRIBUTE</span> `Eye color`{blue, brown, green}
    <span style="color:#2b91af">@ATTRIBUTE</span> `Hobbies`  STRING
    
    <span style="color:#2b91af">@DATA</span>
    <span style="color:#a31515">'Bob'</span>, 185.0, blue, <span style="color:#a31515">'climbing, sky diving'</span>
    <span style="color:#a31515">'Anna'</span>, 163.0, brown, <span style="color:#a31515">'reading'</span>
    <span style="color:#a31515">'Jane'</span>, 168.0, ?, ?
</code></span>

 该文件由三个部分组成。第一部分以 @relation 关键字开始,指定数据集名称。下一部分以 @ATTRIBUTE 关键字开始,后面是属性名和类型。可用的类型是 STRING(字符串)、NUMERIC(数字)、DATE(日期)和一组分类值。最后一个属性被隐式假设为我们想要预测的目标变量。最后一部分以 @DATA 关键字开始,每行后面跟着一个实例。实例值用逗号分隔,并且必须遵循与第二部分中的属性相同的顺序。

Weka 的 Java API 由以下的顶层包组成:

  • weka.associations:这些是关联规则学习的数据结构和算法,包括 Apriori、 predictive apriori、FilteredAssociator、FP-Growth、Generalized Sequential Patterns (GSP)、Hotspot 和 Tertius。

  • weka.classifiers:这些是监督学习算法、评估期和数据结构。该包由以下几个部分组成:

    • weka.classifiers.bayes:它实现了贝叶斯(Bayesian)方法,包括朴素贝叶斯、贝式网络、贝叶斯逻辑回归等。

    • weka.classifiers.evaluation:这些是评价统计、混淆矩阵、ROC 曲线等标称和数值预测的监督评价算法。

    • weka.classifiers.functions:这些是回归算法,包括线性回归、保序回归、高斯过程、支持向量机、多层感知器、表决感知器等。

    • weka.classifiers.lazy:这些是基于实例的算法,比如 k- 最近邻、K*,惰性贝叶斯规则。

    • weka.classifiers.meta:这些是监督学习元算法,包括 AdaBoost、bagging、加性回归、随机委员会(random committee)等。

    • weka.classifiers.mi:这些是多实例算法,如 Citation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值