Datumbox机器学习框架
Datumbox机器学习框架是一个用Java编写的开源框架,可用于快速开发机器学习和统计应用程序。框架的主要目标是包含大量的机器学习算法和统计方法,并能够处理大规模数据集。
版权及许可证
版权 (C) 2013-2020 Vasilis Vryniotis。
该代码依据 Apache License, Version 2.0 许可协议发布。
安装及版本控制
Datumbox框架可以在 Maven中央仓库 获得。
框架的最新稳定版本是0.8.2(构建20200805)。要使用它,请在pom.xml中添加以下代码片段:
<dependency>
<groupId>com.datumbox</groupId>
<artifactId>datumbox-framework-lib</artifactId>
<version>0.8.2</version>
</dependency>
框架的最新快照版本是0.8.3-SNAPSHOT(构建20201014)。要测试它,请更新您的pom.xml,如下所示:
<repository>
<id>sonatype-snapshots</id>
<name>sonatype snapshots repo</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
<dependency>
<groupId>com.datumbox</groupId>
<artifactId>datumbox-framework-lib</artifactId>
<version>0.8.3-SNAPSHOT</version>
</dependency>
开发分支 是开发分支(默认的GitHub分支),而 主分支 包含框架的最新稳定版本。所有的稳定发布版本都标有 标签。
框架的版本遵循 语义版本控制 方法。有关各个版本的详细信息,请查看 变更日志。
文档和代码示例
框架的所有公共方法和类都有Javadoc注释。此外,对于每个模型都有一个JUnit测试,清楚地显示了如何训练和使用模型。最后,更多关于如何使用框架的示例,请查看 代码示例 或 官方博客。
预训练模型
Datumbox包含大量预训练模型,允许您进行情绪分析(文档和推特)、主观性分析、主题分类、垃圾邮件检测、成人内容检测、语言检测、商业检测、教育检测和性别检测。要获取二进制模型,请查看 Datumbox Zoo。
支持哪些方法/算法?
该框架目前支持多种参数和非参数统计测试,对删失和非删失数据计算描述性统计,进行ANOVA、聚类分析、维度减少、回归分析、时间序列分析、抽样以及从最常见的离散和连续分布中计算概率。此外,它提供了多种实现的算法,包括最大熵、朴素贝叶斯、SVM、自举聚合、AdaBoost、Kmeans、层次聚类、狄利克雷过程混合模型、Softmax回归、顺序回归、线性回归、逐步回归、PCA以及其他可用于特征选择、集成学习、线性规划求解和推荐系统的技术。
错误报告
尽管框架的部分内容已在商业应用中使用,但并不是所有类都得到同等的使用/测试。目前框架处于Alpha版本,因此您应预期未来版本会有公共API的某些变化。如果发现错误,请在官方GitHub仓库 提交一个问题。
贡献
框架可以通过多种方式改进,因此任何贡献都是受欢迎的。目前框架最重要的缺失特性是无法从命令行或其他语言(如Python)使用它。其他重要的增强包括改进文档、测试覆盖率和示例,改进框架的架构并支持更多的机器学习和统计模型。如果您对代码进行了任何有用的更改,请考虑通过发送pull request来贡献。
感谢
非常感谢 Eleftherios Bampaletakis 对改进框架架构的宝贵建议。此外,还要感谢ej-technologies GmbH为他们的 Java Profiler 提供的许可证,以及JetBrains为他们的 Java IDE 提供的许可证。