Работа с данными временных рядов довольно громоздка, учитывая разнообразие компонентов в данных и шаги, которые необходимо предпринять при подготовке данных для обучения из дампа необработанных данных. Более того, использование моделей машинного обучения или глубокого обучения в такой форме данных довольно сложно, особенно если вы новичок в этой области. В этой статье я хочу поделиться своими наблюдениями и несколькими советами о том, как решить некоторые из основных проблем в классификации данных временных рядов с несколькими метками.

В последние несколько дней я работал над проблемой классификации с несколькими метками, включающей данные временных рядов, и я столкнулся со многими новыми вещами (включая большой красный флаг), хотел поделиться несколькими указателями, чтобы любой, кто работает над аналогичной постановкой задачи может получить толчок.

Несколько ссылок на TensorFlow тут и там, но в целом он не зависит от фреймворка😊

  1. Очень важно понимать шкалу значений в ваших данных, разберитесь с этим в самом начале
  2. Я использовал tf.data для загрузки, обработки и обработки данных из CSV-файла, и это был очень простой и простой в использовании вызов функций (можно передать несколько функций — дополнительное преимущество)
  3. Я видел, как многие разработчики начинали с больших масштабов и постепенно снижали сложность модели, и я сам виноват в этом в прошлом. Но извлеченный урок — начните с малого и увеличивайте сложность, если вы чувствуете, что обучение становится насыщенным после определенных эпох. Меньшая модель (если она работает наравне с большей моделью) всегда выгоднее из-за задержки при развертывании.
  4. Всегда используйте собственный цикл обучения или переопределяйте метод model.fit(), чтобы иметь лучший контроль над обучением, чем при использовании высоко абстрактного способа обучения модели
  5. Когда дело доходит до классификации по нескольким меткам, отслеживание или зависимость только от точности и потерь – это НЕТ. Используйте точность, отзыв, f1-счет, поскольку они являются лучшими индикаторами. Это самый большой красный флаг!
  6. Напишите фрагменты кода для этих показателей и правильно настройте пользовательские обратные вызовы для эффективного обучения
  7. Используйте кривую ROC и Precision-Recall, чтобы понять выходные данные вашей модели, учитывая тот факт, что вы можете установить пороговые значения для сигмовидного вывода для установки метки 1/0 для нейронов
  8. Активно отслеживайте свои тренировки с помощью любых инструментов с открытым исходным кодом или скриптов кода. Лучше использовать инструменты, которые могут выполнять тяжелую работу, и вы можете сосредоточиться на данных и модели, а не на других вещах (существует множество инструментов). Короче говоря, начните применять методы MLOps.
  9. И последнее: используйте Docker и напишите код таким образом, чтобы он позволял вам вставлять контейнер в среду с несколькими GPU или TPU, и он по-прежнему работал без сбоев для расширенного учебного упражнения

Я буду продолжать делиться своими взглядами и давать еще несколько советов по мере того, как буду решать поставленную задачу. А пока я надеюсь, что приведенные выше советы помогут вам при работе над похожей постановкой задачи.

Будьте в курсе последних видео-новостей, стратегий и идей, отправленных прямо на ваш почтовый ящик!

Первоначально опубликовано на https://www.plexflo.com.