Я ищу решение, которое поможет структурировать и анализировать данные последовательности различной длины. Мне нужно подготовить данные для классификатора машинного обучения (LSTM). Мой пример ввода выглядит следующим образом:
Input
ID 1 2 3 4
0 A B C D
1 A C D
2 A D B
Где столбцы - это количество шагов последовательности и A,B,C,D,E
определенных действий.
Поскольку возможных последовательностей , мы ожидаем:
A,B
B,C
C,D
A,B,C
B,C,D
A,C
A,C,D
C,D
A,D
A,D,B
D,B
Сначала скрипт должен вывести как часто встречаются определенные последовательности и сколько существует последовательностей
(C,D) 2
(A,B,C,D) 1
(A,B) 1
...
Но, что еще важнее, для дальнейшего использования мне нужно однократное кодирование всех потенциальных последовательностей, чтобы конечный результат выглядел следующим образом:
Желаемый выход :
ID (A,B) (B,C) (C,D) (A,B,C) (B,C,D) (A,C) (A,C,D) (C,D) (A,D) (A,D,B) (D,B)
0 1 1 1 1 1 0 0 1 0 0 0
1 0 0 1 0 0 1 1 1 0 0 0
2 0 0 0 0 0 0 0 0 1 1 1
Где (A,B)
(B,C)
и т. Д. Также могут быть представлены в виде закодированных переменных. Таким образом, я думаю, что данные будут представлены в форме, которая рассматривает последовательности и подпоследовательности для классификации.
В первой части я читал о PrefixSpan, но не смог найти примеры кода для репликации. Поскольку я работаю с scikit-learn и keras, приветствуются соответствующие решения!
Пробовал:
import itertools
import pandas as pd
d = {'1': ['A', 'A', 'A'], '2': ['B', 'C', 'D'], '3': ['C', 'D', 'B'], '4': ['D', '', '']}
df = pd.DataFrame(data=d)
df
list(itertools.combinations(df))