首页 > 解决方案 > ML.NET:用于 csv 加载的类型推断?

问题描述

ML 库的最低要求是它能够推断现实世界 ML 应用程序中大量字段的类型(例如:2,000)。

真实世界的 ML 应用程序存在于管道中。字面意思是:UNIX/Linux 风格的 fifoq 中的管道,通过管道符号连接的命名管道。不是在以第三方语言编写并编译的文档中称为“管道”的抽象。这些管道通常是(通常不是模板化的)类型化的,并且与 UNIX/Linux 管道相关的所有工具都在运行时推断类型。

这些工具允许动态生成和扩展 csv 字段和类型到任意宽度,超出单个文件的手动编码容量。

因此,再一次,ML 库的最低要求是它能够打开 ML 文件,而不会在 ML 工程师的膝上投入工作时间线,因为他可以使用 GNU 工具 + Python 在相同的时间。

这意味着在可能动态生成且快速变化的 CSV 文件中推断出大量字段的类型。理想情况下,相同的二进制控制台应用程序可用于演进或开发管道的各个阶段的 CSV 数据,因此无需注释字段类型和重新编译。

除了 F# 的 CsvProvider 和 C# 的可用 CSV 库之外,我正在审查 ML.NET 数据 IO 系统。我还在审查 CLR/CLI 互操作,因为我可以构建 C++ CSV 推理系统,但 CLR/CLI VS 模板似乎只能在 Windows 平台上工作。

似乎无法加载具有推断的基本类型(日期时间、双精度、整数、字符串)的 CSV。这是一个准确的评估吗?

标签: ml.net

解决方案


查看新的 Dataframe API。它有一个LoadCsv方法可以推断列类型,并且与 ML.NET 的IDataView.


推荐阅读