決定木を構築するときには、各ノードで最良の特徴を選択し、その特徴の最適な分割位置を選択します。 しかし、現在のノード/セット内のサンプルについて、最良のフィーチャの値がすべて0である場合、私は何をしますか?すべてのサンプルは片側(< = 0ブランチ)にグループ化され続け、無限ループが発生します。たとえば :...決定木の構築
ただ、参考のために、私は次の擬似コードを、その後
#left: 1500, #right: 0
、
#left: 1500, #right: 0
というように、次のよ。
GrowTree(S)
if (y_i = C for all i in S and some class C) then {
return new leaf(C)
} else {
choose best splitting feature j and splitting point beta (*)
I choose the one that gives me the max entropy drop
S_l = {i : X_ij < beta}
S_r = {i : X_ij >= beta}
return new node(j, beta, GrowTree(S_l), GrowTree(S_r))
}
ツリーを構築するためのコードを表示できますか? – Reti43
私の質問を編集しました。 – Jobs
"但し、最高の特徴のためのすべての値がサンプルのために0である"。このノードに到達するすべてのサンプルが同じクラスであるようです(確認できますか?)。もしそうなら、ノードは役に立たず、作成されてはいけません。 –