我使用R的规则提取算法很困难。通常,我有一个金融时间序列,我根据趋势和持续时间分成不同的段。结果我得到了类似下面的数据框:
> head(DF)
Segment trend duration description
1 1 C S C_S
2 2 VP L VP_L
3 3 VN S VN_S
4 4 N S N_S
5 5 P M P_M
6 6 VP M VP_M
其中VN,N,C,P,VP(非常负,负,常数,正,非常正)描述在选定的段期间发生的趋势,S,M,L(短,中,长)描述持续时间每个段和最后一列只是前一个的组合。 我想要获得的只是规则,其中LHS包含有关段的历史信息,RHS是未来的段。 因此,例如,一条规则可能如下所示:
ID Rule Support Confidence
R5 seg(t-2): VP_B & seg(t-1): N_S 10 71.4%
=> seg(t): P_M
我想强调用于创建规则的段应该是顺序的。关于提出的算法或r包的任何想法将不胜感激。 提前谢谢!
答案 0 :(得分:0)
这使用arules包:
Lines <- "Segment trend duration description
1 1 C S C_S
2 2 VP L VP_L
3 3 VN S VN_S
4 4 N S N_S
5 5 P M P_M
6 6 VP M VP_M"
library(arules)
library(zoo)
z <- read.zoo(text = Lines, header = TRUE, FUN = identity)
lags <- as.data.frame(lag(z$description, 0:-2))
a <- apriori(lags)
inspect(a)
有关详细信息,请参阅vignette("arules")
。
要尝试的另一件事是:
library(rpart)
rpart(lag0 ~., lags)