CRAN - Package mvpart
タイトルそのまま.決定木の分岐でGini Indexが増減するのでそれを取得して足しあわせて1つの木における特徴量でどれが有効に働いているかを調べたい.
help読んだらimproveっぽいけどスケールが大きすぎるし,indexの説明は書かれてないし謎.
あとrandomForestパッケージでは変数の重要性をGini indexの増減の平均値で出してるっぽいけどそれの文献情報も知りたい.
> library(mvpart) > library(kernlab) > data(spam) > # 木の学習 > tree.model <- rpart(type~., spam) > tree.model n= 4601 node), split, n, loss, yval, (yprob) * denotes terminal node 1) root 4601 1813 nonspam (0.60595523 0.39404477) 2) charDollar< 0.0555 3471 816 nonspam (0.76490925 0.23509075) 4) remove< 0.055 3141 516 nonspam (0.83572111 0.16427889) 8) charExclamation< 0.378 2737 275 nonspam (0.89952503 0.10047497) * 9) charExclamation>=0.378 404 163 spam (0.40346535 0.59653465) 18) capitalTotal< 55.5 182 52 nonspam (0.71428571 0.28571429) 36) free< 0.845 161 32 nonspam (0.80124224 0.19875776) * 37) free>=0.845 21 1 spam (0.04761905 0.95238095) * 19) capitalTotal>=55.5 222 33 spam (0.14864865 0.85135135) * 5) remove>=0.055 330 30 spam (0.09090909 0.90909091) * 3) charDollar>=0.0555 1130 133 spam (0.11769912 0.88230088) 6) hp>=0.4 70 7 nonspam (0.90000000 0.10000000) * 7) hp< 0.4 1060 70 spam (0.06603774 0.93396226) * > > # ここで gini index を取得したい > # それっぽい値はあるがどれが適切か > tree.model$splits count ncat improve index adj charDollar 4601 -1 714.169725 0.0555 0 charExclamation 4601 -1 711.963840 0.0795 0 remove 4601 -1 597.850385 0.0100 0 free 4601 -1 559.663354 0.0950 0 your 4601 -1 543.249610 0.6050 0 remove 3471 -1 331.322255 0.0550 0 charExclamation 3471 -1 284.613432 0.0915 0 free 3471 -1 266.016363 0.1350 0 your 3471 -1 165.992936 0.6150 0 capitalAve 3471 -1 158.646412 3.6835 0 charExclamation 3141 -1 173.255121 0.3780 0 free 3141 -1 152.118989 0.2000 0 capitalAve 3141 -1 79.004921 3.6380 0 your 3141 -1 69.839590 0.8650 0 hp 3141 1 64.000297 0.0250 0 capitalTotal 404 -1 63.995394 55.5000 0 capitalLong 404 -1 54.957900 10.5000 0 capitalAve 404 -1 53.678467 2.6540 0 free 404 -1 40.704143 0.0400 0 # 以下略