Поиск правил, соответствующих транзакции в пакете arulessequence R.

#r #arules

#r #arules

Вопрос:

Как мы можем найти правила (добытые с помощью функции cSPADE), соответствующие временной последовательности транзакций.

Например, используя данные Zaki из пакета arulessequence:

 > as(zaki,"data.frame")
       items sequenceID eventID SIZE
1      {C,D}          1      10    2
2    {A,B,C}          1      15    3
3    {A,B,F}          1      20    3
4  {A,C,D,F}          1      25    4
5    {A,B,F}          2      15    3
6        {E}          2      20    1
7    {A,B,F}          3      10    3
8    {D,G,H}          4      10    3
9      {B,F}          4      20    2
10   {A,G,H}          4      25    3
  

правила добываются с помощью:

 > s4 <- cspade(t, parameter = list(support = 0.4))
> r2 <- ruleInduction(s4, confidence = 0.5, control = list(verbose = TRUE))
> as(r2,"data.frame")
                   rule support confidence lift
1        <{D}> => <{F}>     0.5        1.0  1.0
2      <{D}> => <{B,F}>     0.5        1.0  1.0
3        <{D}> => <{B}>     0.5        1.0  1.0
4        <{B}> => <{A}>     0.5        0.5  0.5
5        <{D}> => <{A}>     0.5        1.0  1.0
6        <{F}> => <{A}>     0.5        0.5  0.5
7    <{D},{F}> => <{A}>     0.5        1.0  1.0
8      <{B,F}> => <{A}>     0.5        0.5  0.5
9  <{D},{B,F}> => <{A}>     0.5        1.0  1.0
10   <{D},{B}> => <{A}>     0.5        1.0  1.0
  

Допустим, новая последовательность транзакций предоставляется следующим образом.

        items sequenceID eventID SIZE
1      {A,C}          5      10    1
2    {B,F,E}          5      15    3
3      {B,G}          5      20    2
4    {A,C,H}          5      25    3
  

Цель состоит в том, чтобы найти правила, удовлетворяющие lhs r2. Целевой результат (составленный вручную):

                    rule support confidence lift
4        <{B}> => <{A}>     0.5        0.5  0.5
6        <{F}> => <{A}>     0.5        0.5  0.5
8      <{B,F}> => <{A}>     0.5        0.5  0.5
  

Надеюсь, я правильно объяснил проблему, спасибо!

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

1. Не могли бы вы включить код и данные непосредственно в свой вопрос, чтобы воспроизвести это?

2. Я отредактировал вопрос для ясности.