我有以下决策树(由 JWEKA 包创建 - 通过命令J48(NSP~., data=training)
):
[[1]]
J48 pruned tree
------------------
MSTV <= 0.4
| MLTV <= 4.1: 3 -2
| MLTV > 4.1
| | ASTV <= 79
| | | b <= 1383:00:00 2 -18
| | | b > 1383
| | | | UC <= 05:00 1 -2
| | | | UC > 05:00 2 -2
| | ASTV > 79:00:00 3 -2
MSTV > 0.4
| DP <= 0
| | ALTV <= 09:00 1 (170.0/2.0)
| | ALTV > 9
| | | FM <= 7
| | | | LBE <= 142:00:00 1 (27.0/1.0)
| | | | LBE > 142
| | | | | AC <= 2
| | | | | | e <= 1058:00:00 1 -5
| | | | | | e > 1058
| | | | | | | DL <= 04:00 2 (9.0/1.0)
| | | | | | | DL > 04:00 1 -2
| | | | | AC > 02:00 1 -3
| | | FM > 07:00 2 -2
| DP > 0
| | DP <= 1
| | | UC <= 03:00 2 (4.0/1.0)
| | | UC > 3
| | | | MLTV <= 0.4: 3 -2
| | | | MLTV > 0.4: 1 -8
| | DP > 01:00 3 -8
Number of Leaves : 16
Size of the tree : 31
我想以 2 种格式提取节点的值:一种格式只有属性的名称,例如:MSTV、MLTV、DP ......等等,所以树的每一级都将跟随他的父级,在在上述情况下,我想将'('作为每个级别之间的分隔符,例如:
(MSTV (MLTV...) (DP...) )
在第二种格式中,我想获取具有它们的值的节点,例如:
(MSTV 0.4 (MLTV 4.1 ....) (DP 0..... ) )
如何提取相关信息。我认为要分隔节点值,我们应该使用分隔字符gsub("[A-Z]:", "", string)
但是我们需要忽略最后几行。非常感谢你的帮助。