0

私はランダムフォレストに基づくプロジェクトに取り組んでいます。ランダム フォレストの作成に関する 1 つの ppt (Rec08_Oct21.ppt)(www.cs.cmu.edu/~ggordon/10601/.../rec08/Rec08_Oct21.ppt) を見ました。質問したかった。ランダムに選択された機能とその情報ゲイン値をスキャンした後、機能 j の IG の最大値を持つ機能を選択します。では、この情報を使ってどのように分割するのでしょうか? この後どうやって進めますか?

4

1 に答える 1

1
LearnTree(X, Y)

X を R x M 行列、R データポイントと M 属性、Y を各データ ポイントの出力クラスを含む R 要素とします。

j* = *argmaxj* **IG** j // (This is the splitting attribute we'll use)

IG の最大値は、カテゴリ (テキスト ベース) または実数 (数値ベース) 属性のいずれかから取得できます。

--->カテゴリ属性(j)から来ている場合: j 番目の属性の値 v ごとに、新しい行列を定義します。ここで、X v とY v を入力として子ツリーを派生させます。

Xv = subset of all the rows of X in which Xij = v;
Yv = corresponding subset of Y values;
Child v = LearnTree(Xv, Yv);

PS: 子ツリーの数は、j 番目の属性の一意の値 v の数と同じになります。

--->実際の値の属性(j)から来ている場合: 最適な分割しきい値を見つける必要があります

PS: しきい値tは、その属性の最大IG値を提供する値と同じです。

define IG(Y|X:t) as H(Y) - H(Y|X:t)
define H(Y|X:t) = H(Y|X<t) P(X<t) + H(Y|X>=t) P(X>=t)
define IG*(Y|X) = maxt IG(Y|X:t)

このt値を分割し、 X t とY tの 2 つの新しいペアを定義して、2 つの ChildTree を定義します。

X_lo = subset of all the rows whose Xij < t
Y_lo = corresponding subset Y values
Child_lo = LearnTree(X_lo, Y_lo)

X_hi = subset of all the rows whose Xij >t
Y_hi = corresponding subset Y values
Child_hi = LearnTree(X_hi, Y_hi)

分割が完了すると、データは分類されます。

詳しくはこちら

私はあなたの質問に答えたことを願っています。

于 2013-06-14T07:14:15.420 に答える