Divide_JPH {lazy.tree}R Documentation

観測値の集合を二つのサブセットに分割する関数

Description

分割に関しては greedy algorothm with Depth-First Search (DFS) を用いる。
英語のヘルプ: Divide.

Usage

Divide( ys, Xs, Ys=NULL, impfunc, S, method=1, ncatx=0
, app=0, maxapp=10, maxncut=50, levelsy=NULL, levelsx=NULL )

Arguments

ys

基準変数ベクトル

Xs

説明変数行列 (data frame)

Ys

2値化された基準変数行列

impfunc

不純度を計算する関数

S

個体の識別番号
(ys, Xs, Ys, S) は同じ長さ(行数)

method

カテゴリカルな説明変数の数量化の方法の指定
= 0 説明変数のダミー展開,
= 1 第1正準変数のみを利用,
= 2 第2正準変数が存在する場合には, それに加えてと、 第1変数との和と差を利用
= 3 method=2 の結果に加えて、基準変数の各水準を one-versus-rest で2値化し そレらの説明変数の各水準ごとの条件付き平均を用いる。
= 4 基準変数の水準の二つのサブセットへの分割をもとに 基準変数を2値化し、説明変数の水準ごとの条件付き平均を用いる。

ncatx

説明変数の水準数からなるベクトル

app

= 0 説明変数の全ての水準の組み合わせを試す方法 (all possible partitions) を使わない。
= 1 ncaty >= 3 and ncatx >= 3 の場合に app を利用する。
= 9 説明変数がカテゴリカルな場合には常に app を利用する。

maxapp

app が利用可能な最大水準数。

maxncut

連続的説明変数の閾値の候補の最大数

levelsy

# of levels of the criterion

levelsx

a list of the # of levels of the regressors

Details

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分割を用いて個体の分割を行う。

Value

以下の要素からなるリスト:

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:       上記の二つの不純度の重み付き平均

Examples

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) )


[Package lazy.tree version 0.1.5 Index]