如何防止 Azure ML Studio 在导入数据集时将特征列转换为 DateTime
How to prevent Azure ML Studio from converting a feature column to DateTime while importing a dataset
我在尝试在 Azure ML Studio 中加载数据集时遇到一些问题,该数据集包含一个看起来像 DateTime 的列,但实际上是一个字符串。 Azure ML Studio 在内部将这些值转换为 DateTimes,似乎再多的争论也无法说服它它们实际上是字符串。
这是一个问题,因为在转换过程中,值会失去精度并开始显示为重复值,而实际上它们是唯一的。有人知道是否可以将 ML Studio 配置为在导入数据集时不推断列的数据类型吗?
现在,长(呃)的故事:)
我在这里使用 public 数据集 - 特别是 Kaggle’s New York City Fare Prediction 比赛。我想看看我是否可以使用 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 的解决方案,因为我不想对数据集进行任何预处理。
我已尝试使用您的示例数据,这是我的快速而肮脏的解决方案:
1)在每个日期前添加任何符号(我添加了'#')
2) 将其加载到 AML Studio(现在它被认为是一个字符串特征)
3) 添加一个 Python/R 组件以删除 '#' 符号并将列显式转换为字符串 (as.string(columnname) 或 str(columnname))
希望对您有所帮助
我在尝试在 Azure ML Studio 中加载数据集时遇到一些问题,该数据集包含一个看起来像 DateTime 的列,但实际上是一个字符串。 Azure ML Studio 在内部将这些值转换为 DateTimes,似乎再多的争论也无法说服它它们实际上是字符串。
这是一个问题,因为在转换过程中,值会失去精度并开始显示为重复值,而实际上它们是唯一的。有人知道是否可以将 ML Studio 配置为在导入数据集时不推断列的数据类型吗?
现在,长(呃)的故事:)
我在这里使用 public 数据集 - 特别是 Kaggle’s New York City Fare Prediction 比赛。我想看看我是否可以使用 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 的解决方案,因为我不想对数据集进行任何预处理。
我已尝试使用您的示例数据,这是我的快速而肮脏的解决方案: 1)在每个日期前添加任何符号(我添加了'#') 2) 将其加载到 AML Studio(现在它被认为是一个字符串特征) 3) 添加一个 Python/R 组件以删除 '#' 符号并将列显式转换为字符串 (as.string(columnname) 或 str(columnname))
希望对您有所帮助