5

我在尝试在 Azure ML Studio 中加载数据集时遇到一些问题,该数据集包含一个看起来像 DateTime 的列,但实际上是一个字符串。Azure ML Studio 在内部将这些值转换为 DateTimes,似乎再多的争论也无法说服它实际上是字符串。

这是一个问题,因为在转换过程中值会失去精度并开始显示为重复项,而实际上它们是唯一的。有人知道 ML Studio 是否可以配置为在导入数据集时不推断列的数据类型?

现在,为了更长的(呃)故事:)

我在这里使用公共数据集 - 特别是Kaggle 的纽约市票价预测竞赛。我想看看我是否可以使用 Azure ML Studio 做一个快速而简单的解决方案,但是数据集的唯一键值是表单 2015-01-27 13:08:24.0000003 2015-01-27 13:08:24.0000002 2011-10-06 12:10:20.0000001 等。

在我的实验中导入它们时,键值会转换为 DateTime,使它们不再唯一,即使它们在 csv 中是唯一的。不用说,这会阻止我向 Kaggle 提交任何解决方案,因为我无法唯一地识别行:)。

我尝试了以下方法:

  • 在加载数据集并将列的数据类型设置为字符串后编辑数据集的元数据,但这并没有多大作用,因为精度已经丢失
  • 从 Azure blob 导入数据集,将其转换为 csv,然后将其加载到 Jupyter/Python 中——这给我带来了相同的(重复的)密钥。
  • 正如预期的那样,使用 pandas 在本地加载数据集是可行的。

我已经用 5.5GB 的大train数据集和更易于管理的sample_submission数据集重现了这种行为。

很想知道是否有某种解决方法可以告诉 ML Studio 在加载数据集时不要尝试转换此列。我在这里专门寻找仅限 Azure ML Studio 的解决方案,因为我不想对数据集进行任何预处理。

4

1 回答 1

4

我已经尝试与您一起使用示例数据,这是我快速而肮脏的解决方案:1)在每个日期前添加任何符号(我已添加“#”)2)将其加载到 AML Studio(现在被视为字符串功能) 3)添加一个 Python/R 组件以删除“#”符号并将列显式转换为字符串(as.string(columnname) 或 str(columnname))

希望这可以帮助

于 2018-08-16T15:31:53.133 回答