J'ai un ensemble de règles de décision extraites de RF utilisant le paquet inTrees. Pour le travail futur, je veux utiliser les données de test pour prédire la valeur résultant des règles. Ma question est comment puis-je vérifier la condition de la règle pour chaque élément d'une observation?Règle de décision correspondant pour les prédictions futures dans R
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
Je veux comparer chaque observation à chaque règle et obtenir la valeur de prédiction agrégée pour chaque règle satisfaite par cette observation. En fin de compte être utilisé comme moteur de règles
S'il vous plaît, aidez! Merci.
Je l'ai utilisé ceci:
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
}
}
}
Merci @ H.D cela fonctionne très bien. Mais je cherche un scénario inverse. Je veux savoir quelle (s) règle (s) est suivie (s) par la 1ère observation en X et la même chose pour toutes les 908 observations. Et si la règle est suivie, il devrait en résulter une valeur prédite associée. –
@NilanjanJoshi qu'en est-il de la fonction suivante qui renvoie une relation d'activation entre les règles et les points de données (Xij = 1 signifie que la jième règle est satisfaite par le ième point de données)? RuleI = spply (ruleMetric [, "condition"], rule2Table, X, cible) voir l'utilisation dans la fonction selectRuleRRF.R. https://github.com/cran/inTrees/blob/master/R/selectRuleRRF.R –
btw, les deux solutions ci-dessus sont essentiellement les mêmes. L'idée est de calculer une matrice indiquant si un point de données satisfait une règle. Et cette matrice indiquerait également si une règle peut être appliquée à un point de données. –