インテル® DAAL 2018 デベロッパー・ガイド
サイズ p の n 特徴ベクトル x1=(x11, ..., x1p), ..., xn=(xn1, ..., xnp)、応答のベクトル y=(y1, ..., yn) で、決定木を作成します。
ライブラリーは、分割基準 Gini 係数 [Breiman84] および情報利得 [Quinlan86]、[Mitchell97] に基づく決定木分類アルゴリズムを提供します。詳細は、「分類: 決定木」 > 「詳細」 > 「分割基準」を参照してください。
ライブラリーは、平均二乗誤差 (MSE) に基づく決定木回帰アルゴリズム [Breiman84] も提供します。詳細は、「回帰: 決定木」 > 「詳細」 > 「分割基準」を参照してください。
ライブラリーは、次のテストの種類で決定木を構成します。
連続特徴では、テストは fj < constant です。ここで、fj は特徴、j∈ {1, ..., p}。
各連続特徴で可能なすべてのテストを列挙している間、constant は、ノードに達する指定された特徴 fj の一意の値を格納する、連続する値の間の任意のしきい値になります。
カテゴリカル特徴では、テストは fj = constant です。ここで、fj は特徴、j∈ {1, ..., p}。
各カテゴリカル特徴で可能なすべてのテストを列挙している間、constant は、ノードに達する指定された特徴 fj の任意の値になります。
順序特徴では、テストは fj < constant です。ここで、fj は特徴、j∈ {1, ..., p}。
各順序特徴で可能なすべてのテストを列挙している間、constant は、ノードに達する指定された特徴 fj の (昇順で) 最初の値を除く任意の値になります。
オプションで、決定木は、サイズ p の m 特徴ベクトル x1pruning = (x1 1pruning, …, x1 ppruning), …, xmpruning = (xm1pruning, …, xmppruning)、クラスラベルのベクトル ypruning = (y1pruning, …, ympruning) (分類の場合) または応答のベクトル ypruning = (y1pruning, …, ympruning) (回帰の場合) を使用して事後枝刈りを行うことができます。枝刈りの詳細は、[Quinlan87] を参照してください。
枝刈りされたデータセットはオリジナルの訓練データセットの一部 (例えば、ランダムに選択された観測数の 30%) になることがありますが、この場合は、それらの観測数を訓練データセットから除外する必要があります。
ライブラリーは、訓練段階に次のアルゴリズム・フレームワークを使用します。
決定木は、訓練データセット全体に対応する根ノードから再帰的に成長します。このプロセスは、事前枝刈りのパラメーター「最大の木の深さ」および「葉ノードの最小観測数」を考慮します。各特徴について、可能なテストがそれぞれ調査され、指定された分離基準に応じて最良のテストになります。最良のテストは、特徴空間をハイパーキューブのセットに分割するために使用されます。各ハイパーキューブは、決定木の次のレベルで各ノードの構築を行う訓練データセットの適切な部分を表します。
決定木を構築した後、過剰適合を回避するため、オプションで誤差低減枝刈り (REP) [Quinlan87] による枝刈りを行うことができます。REP は、個別の枝刈りデータセットがあり、データセットの観測がそれぞれ、オリジナルの (枝刈りされていない) 木による予測を得るために使用されると仮定します。葉以外のすべての部分木について、部分木が最良の葉と置換された場合に生じる枝刈りデータセットに対して、予測ミスの変化が調査されます。
ここで、
新しい木で予測ミスが増えず () 部分木が同じプロパティーの部分木を含まない場合、部分木は葉と置換されます。さらに置換を行うと枝刈りデータセットの予測ミスが増えるまで、プロセスは続行されます。最終的な木は、枝刈りデータセットに関してオリジナルの木の最も精度の高い部分木であり、その精度で最も小さい木です。
訓練プロシージャーには次のステップが含まれます。
ライブラリーは、予測段階に次のアルゴリズム・フレームワークを使用します。
決定木とベクトル x1, …, xr で、これらのベクトルの応答を計算します。
指定された各ベクトル xi について解くため、アルゴリズムは分離ノードでのテストにより xi を調査して、予測応答を含む葉ノードを見つます。