2
inTrees 패키지를 사용하여 RF에서 결정 규칙 집합을 추출했습니다. 향후 작업을 위해 테스트 데이터를 사용하여 규칙에 따른 결과를 예측하려고합니다. 내 질문은 어떻게 관찰의 각 요소에 대한 규칙 조건을 확인할 수 있습니까?향후 예측을위한 의사 결정 규칙 일치 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
나는 각 관찰을 각 규칙과 비교하고 그 관찰에 의해 충족되는 각 규칙에 대한 집계 된 예측 값을 얻고 싶습니다. 궁극적으로 규칙 엔진으로 사용됩니다
도와주세요! 감사.
내가 사용했던이 :
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
}
}
}
감사합니다. @ H.D. 정상적으로 작동합니다. 그러나 나는 반대되는 시나리오를 찾고 있습니다. 나는 어떤 규칙 (들)이 X에서의 첫 번째 관찰에 이어지고 모든 908 번의 관찰들에 대해서도 마찬가지인지 알고 싶다. 그리고 규칙이 지켜지면 관련 예측치가 나온다. –
@NilanjanJoshi 규칙과 데이터 요소 사이의 활성화 관계를 반환하는 다음 함수 (Xij = 1은 i 번째 데이터 요소에 의해 j 번째 규칙이 충족됨을 의미)는 어떨까요? ruleI = sapply (ruleMetric [, "조건"], rule2Table, X, target) 입니다. selectRuleRRF.R 함수에서 사용법을 참조하십시오. https://github.com/cran/inTrees/blob/master/R/selectRuleRRF.R –
btw, 위의 두 가지 해결책은 본질적으로 같습니다. 아이디어는 데이터 포인트가 규칙을 만족시키는 지 여부를 나타내는 행렬을 계산하는 것입니다. 또한이 행렬은 규칙을 데이터 요소에 적용 할 수 있는지 여부를 나타냅니다. –