Класифікуйте багатоваріантний часовий ряд


9

У мене є набір даних, що складається з часових рядів (8 балів) з приблизно 40 вимірами (тому кожен часовий ряд - 8 на 40). Відповідний результат (можливі результати для категорій) - це 0 або 1.

Який був би найкращий підхід до проектування класифікатора часових рядів з кількома розмірами?

Моя початкова стратегія полягала в тому, щоб витягти функції з тих часових рядів: середнє значення, std, максимальне відхилення для кожного виміру. Я отримав набір даних, який використовував для тренування RandomTreeForest. Усвідомлюючи загальну наївність цього, і після отримання поганих результатів я зараз шукаю вдосконалену модель.

Мої підсумки наступні: класифікуйте серію для кожного виміру (використовуючи алгоритм KNN та DWT), зменшіть розмірність за допомогою PCA та використовуйте кінцевий класифікатор за категоріями багатовимірності. Будучи відносно новим для ML, я не знаю, чи я абсолютно помиляюся.


Те, що ви робите, - досить хороший підхід. Скільки зразків у вашому наборі даних?
Касра Маншаї

У мене близько 500 000 часових рядів (нагадаю, що кожен часовий ряд - 8 часових позначок * 40 розмірів)
серпня 1717

Ви спробували просто використати 320 функцій? 320 функцій - це не багато для 500 000 зразків
Ян ван дер Вегт

@Jan van der Vegt: Я спробував цей метод за допомогою нейронної мережі, але результати були не настільки переконливими - я використав необроблені дані без будь-якої попередньої обробки. Які операції слід заздалегідь застосувати на своїх рядах з 320 ознаками, щоб подати класифікатор?
серпня 1717

1
У разі нейронної мережі нормалізація вашої інформації є важливою, залежно від кола ваших функцій, які можуть мати значення. Але я би просто подав необроблені функції в РФ і побачив, наскільки добре це працює, потрібна менша настройка, щоб побачити, чи можна з цього легко щось вийти
Jan van der Vegt

Відповіді:


5

Ви на правильному шляху. Подивіться на обчислення ще кількох функцій, як за часом, так і за частотою. Поки кількість зразків >> кількість функцій, ви, швидше за все, не переобладнаєте. Чи є література щодо подібної проблеми? Якщо так, то це завжди є чудовою відправною точкою.

Спробуйте розширений класифікатор дерев, наприклад xgboost або LightGBM. Вони, як правило, простіше налаштовувати гіперпараметри та забезпечують хороші результати за параметрами за замовчуванням. Як випадкові лісові, так і розширені класифікатори дерев можуть повернути важливість функції, тож ви можете бачити, які функції стосуються проблеми. Ви також можете спробувати видалити функції, щоб перевірити наявність коваріації.

Найголовніше, але якщо результати несподівано погані, переконайтеся, що ваша проблема правильно визначена. Вручну перегляньте результати, щоб переконатися, що у вашому трубопроводі немає помилок.


6

Якщо ви перебуваєте в Python, є кілька пакунків, які можуть автоматично витягувати сотні чи тисячі функцій із ваших часових журналів, співвідносити їх із вашими мітками, вибирати найзначніші та тренувати для вас моделі.

https://github.com/blue-yonder/tsfresh

https://github.com/rtavenar/tslearn


2

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

  1. Ви можете спробувати пакет nolds, якщо ваші дані є дуже нелінійним процесом.

  2. max, min, mean, перекос, куртоз та, якщо можливо, деякі статистичні дані.

Я працюю над чимось подібним, і я задав відповідне запитання .


1

Я згоден з Яном ван дер Вегтом, стандартизація (наприклад, [-1, 1]) або нормалізація N (0, 1) у поєднанні з функцією активації можуть бути дуже важливими для нейронних мереж. Я перевірив би дисертацію Пічаїда Варонхотикула: "Прогнозування повінь за допомогою штучних нейронних мереж" для входів та виходів ANN. У ньому є дуже цікаві застереження. У будь-якому випадку, я намагаюся спробувати спершу без цього, але коли результати незадовільні, я використовую для того, щоб проводити випробування з обома. Не впевнений, що це допоможе, але я би перевірив пакет R TSclust та пов'язані з ними документи. Автори дуже доброзичливі, і вони допоможуть вам знайти конкретні моделі для цього. Вони - експерти з аналізу часових рядів! Удачі!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.