Divide_JPH {lazy.tree} | R Documentation |
分割に関しては greedy algorothm with Depth-First Search (DFS) を用いる。
英語のヘルプ: Divide.
Divide( ys, Xs, Ys=NULL, impfunc, S, method=1, ncatx=0
, app=0, maxapp=10, maxncut=50, levelsy=NULL, levelsx=NULL )
ys |
基準変数ベクトル |
Xs |
説明変数行列 (data frame) |
Ys |
2値化された基準変数行列 |
impfunc |
不純度を計算する関数 |
S |
個体の識別番号 |
method |
カテゴリカルな説明変数の数量化の方法の指定 |
ncatx |
説明変数の水準数からなるベクトル |
app |
= 0 説明変数の全ての水準の組み合わせを試す方法
(all possible partitions) を使わない。 |
maxapp |
app が利用可能な最大水準数。 |
maxncut |
連続的説明変数の閾値の候補の最大数 |
levelsy |
# of levels of the criterion |
levelsx |
a list of the # of levels of the regressors |
ncat=0
or ncat=1
は変数が数値であることを示す。
ncat=2
は変数が2値であることをしめす。
ncat >= 3
は変数が多値であることを示す。
分割の詳細
数値的な説明変数は、その全てのユニークな値が分割の閾値として試される。
もしも基準変数が数値的か2水準のカテゴリカルな場合には
説明変数の各水準ごとに基準変数の条件付き平均を計算し、その値を
数値化された説明変数の値とする。(以下の全ての method
の指定でも同様)
method=0
:
基準変数の水準数が 3 以上の場合には、基準変数と
説明変数を one-hot なダミー変数に展開したものを数値化された説明変数とする。
(数値化された説明変数の数 = 説明変数の水準の数)
method=1
: もしも基準変数が数値的か2水準のカテゴリカルな場合には
説明変数の各水準ごとに基準変数の条件付き平均を計算し、その値を
数値化された説明変数の値とする。(以下の全ての method
の指定でも同様)
基準変数の水準数が 3 以上の場合には、基準変数と
説明変数を one-hot なダミー変数に展開したものとの間で正準判別分析を行い
計算された第1正準変数 cv1 を数値化された説明変数の値とする。
(数値化された説明変数の数 = 1)
method=2
: もしも第2正準変数 cv2 が計算可能な場合には上記の cv1 に
加えて cv2 と cv1+cv2, cv1-cv2 の全部で 4 つの値を
数値化された説明変数の値とする。 cv2 が計算できない場合には
method=1
と同じ。
(数値化された説明変数の数 = 4 or 1)
method=3
: 上記の 4 つの値に加えて、基準変数の各水準に関して
基準変数を one-versus-rest という形で2値化したものを用いて
説明変数の各水準ごとに基準変数の条件付き平均を計算したものを用いる。
ただし、分散が 0 になたっり他の変数と同一の値になる場合は除く。
(数値化された説明変数の数 = 4 or 1 + 基準変数の水準数)
If method=4
:基準変数の水準を二つのサブセットへの分割をもとに
基準変数を2値化し、説明変数の水準ごとにそれらの条件付き平均を
計算したものを用いる。
ただし、分散が 0 になたっり他の変数と同一の値になる場合は除く。
(数値化された説明変数の数 = 2^nc-1-1、ただし、 nc は基準変数の
水準数。)
基準変数の水準が少なめで、説明変数の水準数が多い場合には最適。
app=1
の場合:
基準変数の水準数が 3 以上で説明変数の水準数も 3 以上の場合には
説明変数の全ての水準の組み合わせからなる2分割を用いて個体の分割を行う。
app=9
の場合:
説明変数がカテゴリカルな場合には常に
説明変数の全ての水準の組み合わせからなる2分割を用いて個体の分割を行う。
以下の要素からなるリスト:
j: 分割に使われた変数名 threshold: 変数 j が数値変数の場合に使われた閾値 valxj: 変数 j がカテゴリカルな場合に、left 群に分類される説明変数 j の水準名 valxjR: 変数 j がカテゴリカルな場合に、right 群に分類される説明変数 j の水準名 k: 数値化されたカテゴリカルな説明変数の番号または 0 nqx: 数値化された変数の数 (unique) locLL, locRR: 各群に分類される個体の 1:nrow(Xs) における場所 left: left 群に分類された個体番号ベクトル right: right 群に分類された個体番号ベクトル left.score: left 群の不純度 right.score: right 群の不純度 score: 上記の二つの不純度の重み付き平均
Xc <- data.frame(x1=as.factor(square$x1),x2=as.factor(square$x2))
Divide( square$Class4, Xc, impfunc=gini, S=1:nrow(Xc), method=1
, ncatx=c(7,5), app=0 )
Divide( square$Class4, Xc, impfunc=gini, S=1:nrow(Xc), app=9
, ncatx=c(7,5) )