XGBoostを理解する: 決定株編

XGBoostを理解する: 決定株編

XGBoostを理解するためには,決定木(decision tree)を理解しなければならない.決定木を理解するためには,決定株(decision stump)を理解しなければならない.というわけで決定株について勉強してみた.と言ってもそんなに難しい話ではない.でも少しだけ奥が深い.

入力をxRd\bm{x} \in \mathbb{R}^d,出力をyYy \in \mathcal{Y}とし,学習データ{(xi,yi)}i=1n\left\{(\bm{x}_i, y_i)\right\}_{i=1}^nが与えられるとする.決定株では,I={1,,n}\mathcal{I} = \{1, \ldots, n\}IL,IRI_L, I_Rに分割する.そして,ある関数w:2IYw: 2^{\mathcal{I}} \rightarrow \mathcal{Y}を用いてIL,IRI_L, I_RwL=w(IL),wR=w(IR)w_L = w(I_L), w_R = w(I_R)を割り当てる.この分割は,i^I,j^{1,,d}\hat{i} \in \mathcal{I}, \hat{j} \in \{1, \ldots, d\}を選ぶことにより決定する.なので,ここからは,IL(i,j),IR(i,j)I_L(i, j), I_R(i, j)と表記する.(i,j)(i, j)に対する損失L(i,j)L(i, j)を以下のように定義し,これを最小化するようにi^,j^\hat{i}, \hat{j}を選ぶ.

(i^,j^)=argmin(i,j) L(i,j)L(i,j)=L~(IL(i,j))+L~(IR(i,j))L~(I)=iI(yi,w(I))IL(i,j)={iiI,xi,j<xi,j}IR(i,j)={iiI,xi,jxi,j} \begin{aligned} (\hat{i}, \hat{j}) &= \text{argmin}_{(i, j)} \ L(i, j) \\ L(i, j) &= \tilde{L}(I_L(i, j)) + \tilde{L}(I_R(i, j)) \\ \tilde{L}(I) &= \sum_{i \in I} \ell(y_i, w(I))\\ I_L(i, j) &= \left\{i' \vert i' \in \mathcal{I}, x_{i', j} < x_{i, j}\right\} \\ I_R(i, j) &= \left\{i' \vert i' \in \mathcal{I}, x_{i', j} \geq x_{i, j}\right\} \end{aligned}

ただし,\ellは適当な損失関数である.
流れとしては,(i,j)(i, j)に対して,分割IL(i,j),IR(i,j)I_L(i, j), I_R(i, j)が決まり,その損失L~(IL(i,j)),L~(IL(i,j))\tilde{L}(I_L(i, j)), \tilde{L}(I_L(i, j))が求まり,その合計である.L(i,j)L(i, j)が求まるという 感じだ.

wwに関しては,分類問題の場合,Y={1,1}\mathcal{Y} = \{-1, 1\}として,例えば以下のようなものが考えられるだろう.

w(I)=sgn(iIyi) \begin{aligned} w(I) = sgn \left(\sum_{i \in I} y_i\right) \end{aligned}

回帰の場合は,以下のものが考えられるだろう.

w(I)=1IiIyi \begin{aligned} w(I) = \frac{1}{|I|} \sum_{i \in I} y_i \end{aligned}

損失関数は,分類の場合,0-1損失,回帰の場合は二乗誤差を使えば良いのではないか.この辺は自由である.

今回は,決定株について書いた.調べてもなかなか丁寧に説明している文献がなかったので,自分で書いてみたが,なんか複雑になった.正直自分以外わかりにくいと思う....次は決定木について書こうと思う.

Written with StackEdit.

機械学習の問題設定

機械学習の問題設定 機械学習の問題設定を見直したのでメモ. ( Ω , F , P ) (\Omega, \mathcal{F}, P) ( Ω , F , P ) : ベースとなる確率空間 ( X , F X ) (\mathcal...