如何在导入数据集时阻止Azure ML Studio将要素列转换为DateTime

Vla*_*scu 5 azure azure-machine-learning-studio kaggle ml-studio

我在尝试在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数据集.

很想知道是否有某种解决方法告诉M​​L Studio在加载数据集时不要尝试转换此列.我在这里专门针对Azure ML Studio解决方案,因为我不想对数据集进行任何预处理.

小智 4

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

希望这可以帮助