次の決定木があります(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 などのプロパティの名前のみの形式の 1 つなので、ツリーの各レベルの後に親が続きます。上記の場合、次のような各レベル間のセパレーターとして「(」を取得したいと思います。
(MSTV (MLTV...) (DP...) )
2 番目の形式では、次のような値を持つノードを取得したいと考えています。
(MSTV 0.4 (MLTV 4.1 ....) (DP 0..... ) )
関連情報を抽出するにはどうすればよいですか。ノード値を区切るには、次を使用して文字を区切る必要があると思いますがgsub("[A-Z]:", "", string)
、最後の行は無視する必要があります。どうもありがとうございました。