Как запретить 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 (имя столбца))
Надеюсь это поможет