デシジョン ツリー アルゴリズムを使用していて、データ セットが数値で構成されている場合。
プログラムによって提供された結果が、データセットに存在しない値でノードを分割することがわかりました
例:
分類結果
- attrib2 <= 3.761791861252009 : グループ A
- attrib2 > 3.761791861252009 : グループ B
私のデータセットには、3.76179 のような attrib2 の値はありません。なぜそうなのか?
デシジョン ツリー アルゴリズムを使用していて、データ セットが数値で構成されている場合。
プログラムによって提供された結果が、データセットに存在しない値でノードを分割することがわかりました
例:
分類結果
私のデータセットには、3.76179 のような attrib2 の値はありません。なぜそうなのか?
ほとんどの決定木構築アルゴリズム (J48、C4.5、CART、ID3) は次のように機能します。
最適な分割点を見つけたら、アルゴリズムはそれをどのように表現するかについて意見が一致しません。例: -4 (はい)、-3 (はい)、-3 (はい)、-2 (いいえ)、-1 (いいえ) があるとします。-3 から -2 の間の値はすべて同じ純度になります。一部のアルゴリズム (C4.5) では、val <= -3 となります。Weka のような他のものは、平均を選択して val <= -2.5 を与えます。
属性を選択するにはいくつかの方法があります。また、すべてがデータセットの値を選択するわけではありません。
一般的なのは (少し単純化されていますが) 平均を取ることです。3.76179... がデータセットのすべての attrib2 の平均である可能性があります。
たとえば、データ セットが 1 次元で、値で構成されている場合、データ セットに含まれていなくても-10, -9, .. -2, -1, 1, 2, ..9, 10
、適切な分割値は になり0
ます。
別の可能性として、特にランダム フォレスト (複数の決定木) を扱っている場合は、中央値を中心とした確率分布で、分割値がランダムに選択されることがあります。一部のアルゴリズムは、平均/中央値を中心とし、データセットの標準偏差に等しい偏差を持つガウスに従って分割することを決定します。
まず、数値を離散化する方法を確認できます。これらのアルゴリズムは、数値範囲をいくつかの区間に分割し、それぞれが大きなインフォゲインを持っています。たとえば、各スプリットの後にステップ 0.1 を使用してインフォゲインを確認し、最適な位置を選択してから、それでもインターバルを続けます。