Как запретить Azure ML Studio преобразовывать столбец объектов в DateTime при импорте набора данных

У меня возникают некоторые проблемы при попытке загрузить набор данных в 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, поскольку я не могу однозначно идентифицировать строки:).

Я пробовал следующее:

  • отредактируйте метаданные набора данных после его загрузки и установите тип данных столбца в строку, но это мало что дает, поскольку точность уже потеряна
  • импортируйте набор данных из BLOB-объекта Azure, преобразуйте его в csv и затем загрузите его в Jupyter/Python - это принесет мне те же (дублированные) ключи.
  • загрузка набора данных локально с пандами работает, как и ожидалось.

Я воспроизвел это поведение с большим, 5,5 ГБ train набор данных, но также с более управляемым sample_submission набор данных.

Любопытно узнать, есть ли какой-то обходной путь, чтобы сказать ML Studio не пытаться преобразовать этот столбец при загрузке набора данных. Я специально ищу решения для Azure ML Studio, поскольку не хочу выполнять предварительную обработку набора данных.

1 ответ

Решение

Я попробовал с вами пример данных, и вот мое быстрое и грязное решение: 1) Добавить любой символ (я добавил "#") перед каждой датой 2) Загрузить его в AML Studio (теперь он считается строковое свойство) 3) Добавьте компонент Python/R для удаления символа '#' и явного преобразования столбца в строку (as.string(имя столбца) или str (имя столбца))

Надеюсь это поможет

Другие вопросы по тегам