【问题标题】:Decision rule matching for future predictions in RR中未来预测的决策规则匹配
【发布时间】:2016-10-28 05:23:23
【问题描述】:

我有一组使用 inTrees 包从 RF 中提取的决策规则。对于未来的工作,我想使用测试数据来预测规则产生的值。我的问题是如何检查观察的每个元素的规则条件?

Observations:(908*7)
x[,1]               X[,2]  X[,3]   X[,4]  X[,5]  X[,6]  X[,7] TARGET
SUPPORTING DEVICES  10     120      144   553     6     3.85  72.02
OPHTHALMOSCOPE      10     133.81   143   345     7     7.5   191.94
OPHTHALMOSCOPE      10     167.22   280   345     2      1     13.99


Rules & prediction: (428:2)

X[,1] %in% c('MICROSCOPE','OSCILLOSCOPE') & X[,5]>4428.534912 &    
X[,5]<=4747.5 & X[,6]<=35.5  pred=3555.085
X[,1] %in% c('COLPOSCOPES','ENDOSCOPE','STROBOSCOPE') &    
X[,4]<=159.885038579262 & X[,4]>149.693058265924 & X[,4]<=152.534780178906  
& X[,6]<=35.5 & X[,7]<=2.85 pred=23856.56
X[,1] %in% c('COLPOSCOPES','ENDOSCOPE','STROBOSCOPE') & X[,2]<=3.5 &    
X[,4]>159.885038579262 & X[,4]>210.163123531761 & X[,6]<=35.5   pred=22.845

我想将每个观察结果与每个规则进行比较,并获得该观察结果满足的每个规则的聚合预测值。最终被用作规则引擎

请帮忙!谢谢。

我用过这个:

Y<- TRCx
  for (i in c(1:nrow(Y)))
    {
      X<- Y[1,]
      for(j in c(1:nrow(rules)))
          {

        if (rules$condition [j]){

         p <- mean(rules$pred[j]) 
        }
        else{
          0
        }
      }
    }

【问题讨论】:

    标签: r random-forest rules rule-engine


    【解决方案1】:

    给定一个测试数据集“X”(如果是另一个名字,将其重命名为“X”),以及一个规则条件,比如说

    cond = "X[,1] %in% c('MICROSCOPE') & X[,5]>4428"
    

    那么我们可以使用以下方法来获取满足条件的数据点的索引:

    cond <- paste("which(", cond, ")")
    ind <- eval(parse(text=cond)) 
    

    希望这能解决您的问题。

    【讨论】:

    • 谢谢@H.D 它工作正常。但我正在寻找相反的情况。我想知道 X 中的第一次观察遵循哪些规则,并且所有 908 次观察都遵循哪些规则。如果遵循规则,它应该会产生相关的预测值。
    • @NilanjanJoshi 下面的函数如何返回规则和数据点之间的激活关系(Xij = 1 表示第 i 个数据点满足第 j 个规则)? ruleI = sapply(ruleMetric[,"condition"],rule2Table,X,target) 。请参阅 selectRuleRRF.R 函数中的用法。 github.com/cran/inTrees/blob/master/R/selectRuleRRF.R
    • 顺便说一句,上面的两个解决方案本质上是一样的。这个想法是计算一个矩阵,指示数据点是否满足规则。而且这个矩阵还可以指示规则是否可以应用于数据点。
    • 感谢您一直关注我。我有解决办法。
    • 您的第一条评论有助于确定是否满足规则。
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2021-12-16
    • 2014-07-20
    • 2016-09-23
    • 2017-08-22
    • 2019-03-04
    • 2020-07-14
    • 2015-06-19
    相关资源
    最近更新 更多