Основные последовательности из Arules Sequence Mining в R

#r #sequence #arules

#r #последовательность #arules

Вопрос:

Как удалить подпоследовательности из алгоритма cspade в пакете arulesSequence в R, например, если мои данные (Sample.txt ), как показано ниже

Имена столбцов: sequenceID, EventID, size, Item

 1   1   1   A
1   2   1   B
1   3   1   C
1   4   1   D
2   1   1   A
2   2   1   B
2   3   1   C
3   1   1   A
3   2   1   B
3   3   1   C
3   4   1   D
  

После выполнения приведенной ниже строки кодов arulesSequence

 library("arulesSequences")
#### while importing the Sample.txt remove the column names #####
SymptomArulesSeq <- read_baskets("Sample.txt",sep = "[ t] ",info =  c("sequenceID","eventID","size"))
s1 <- cspade(SymptomArulesSeq, parameter = list(support = 0.1), control = list(verbose = TRUE),tmpdir = tempdir())
summary(s1)
as(s1, "data.frame")

sequence    support
<{A}>   1
<{B}>   1
<{C}>   1
<{D}>   0.6666667
<{A},{D}>   0.6666667
<{B},{D}>   0.6666667
<{C},{D}>   0.6666667
<{B},{C},{D}>   0.6666667
<{A},{C},{D}>   0.6666667
<{A},{B},{C},{D}>   0.6666667
<{A},{B},{D}>   0.6666667
<{A},{C}>   1
<{B},{C}>   1
<{A},{B},{C}>   1
<{A},{B}>   1
  

Как найти последовательности полной длины, не теряя элементы между ними?

Как следует из данных, основная полноразмерная последовательность, начинающаяся с A, представляет собой A (1), A-> B (1), A-> B-> C (1) и A-> B-> C-> D (0.67), итак, как я могу удалить промежуточный подраздел-последовательности и хотят получить результаты, как указано.

Задача здесь заключается в том, как устранить последовательности, которые образуются между ними, например, B, B-> C и т. Д., А также Как устранить последовательности, такие как A-> B-> D (здесь я теряю фактическую последовательность; элемент C отбрасывается)

Комментарии:

1. Итак, по вашему определению, единственная «полноразмерная» последовательность A->B->C->D ? Итак, вам нужна только самая длинная последовательность, которая содержит все элементы? Или каков ваш ожидаемый результат?

2. В принципе, мне нужна непрерывная последовательность, которая начинается с первой покупки, здесь B-> C также является последовательностью, но в этой последовательности отсутствует тот факт, что она также начинается с A Последовательность A-> B-> D может быть устранена путем добавления parameter = list(support = 0.1,mingap=1)

3. Где здесь вступают в игру «покупки»? Вы не ответили на мой вопрос об ожидаемом выходе. Я до сих пор понятия не имею, чего вы хотите в результате. Ты только еще больше меня запутал.

4. sequenceID здесь — это идентификатор клиента, а A, B, C и D — это элементы, данные объясняют идентификатор клиента «1», приобретенный «A» в первой транзакции, «B» Во второй транзакции и т. Д., Мне нужны только последовательности, в которых элемент должен начинаться с первого элемента покупки

5. То, что вы ищете, — это максимальные или закрытые наборы элементов… является ли это одним или другим, зависит в точности от критериев, которые вы хотите использовать для отбрасывания других последовательностей. Методы %ain%, is.subset, is.superset могут вам помочь. Для метода ruleInduction существует управляющий параметр для указания максимально частых наборов элементов, но для cspade в документации это не упоминается.