TransmogrifAI 项目介绍
TransmogrifAI 是一个基于 Apache Spark 的自动机器学习(AutoML)库,使用 Scala 语言开发。该项目的主要目标是通过机器学习自动化来加速机器学习开发人员的生产力,同时提供一个在编译时强类型安全、模块化和可重用的 API。
项目特点
-
自动化程度高:TransmogrifAI 可以在几个小时内构建出生产就绪的机器学习应用,而不是需要几个月的时间。
-
易于使用:即使没有机器学习博士学位,也可以使用 TransmogrifAI 构建机器学习模型。
-
模块化设计:可以构建模块化、可重用、强类型的机器学习工作流。
-
高效性能:通过自动化,TransmogrifAI 可以实现接近手动调优模型的准确度,同时将开发时间减少近 100 倍。
-
灵活性:虽然 TransmogrifAI 提供了高度自动化的功能,但它也允许用户完全控制特征提取和算法应用的每个细节。
技术细节
- 基于 Apache Spark 2.4 版本
- 使用 Scala 2.11 开发
- 支持 Java 1.8
- 提供核心依赖库和预训练模型库(可选)
主要功能
- 自动特征工程
- 自动特征验证和选择
- 自动模型选择
- 模型评估和洞察
使用示例
TransmogrifAI 提供了一个简洁的 API,可以快速构建机器学习模型。以下是使用 TransmogrifAI 预测泰坦尼克号乘客生存情况的简单示例:
// 读取数据
val passengersData = DataReaders.Simple.csvCase[Passenger](path = pathToData).readDataset().toDF()
// 提取特征
val (survived, predictors) = FeatureBuilder.fromDataFrame[RealNN](passengersData, response = "survived")
// 自动特征工程
val featureVector = predictors.transmogrify()
// 自动特征验证和选择
val checkedFeatures = survived.sanityCheck(featureVector, removeBadFeatures = true)
// 自动模型选择
val pred = BinaryClassificationModelSelector().setInput(survived, checkedFeatures).getOutput()
// 设置工作流并训练模型
val model = new OpWorkflow().setInputDataset(passengersData).setResultFeatures(pred).train()
项目文档
TransmogrifAI 提供了详细的文档,包括:
- 官方文档网站: https://docs.transmogrif.ai
- API 文档: https://scaladoc.transmogrif.ai
这些资源提供了完整的使用指南、入门教程、示例代码和常见问题解答等信息。
社区支持
TransmogrifAI 是一个开源项目,拥有活跃的社区支持。用户可以通过 GitHub 仓库提交问题、贡献代码,或者加入 Gitter 聊天室与其他开发者交流。
通过这个强大而灵活的 AutoML 工具,开发者可以更快速、更高效地构建机器学习应用,无论是初学者还是专业数据科学家都能从中受益。