でC4.5 アルゴリズムを実装して.net
いますが、「連続 (数値) データ」をどのように処理するかについて明確な考えがありません。誰かが私にもっと詳細な説明をしてもらえますか?
1 に答える
連続データの場合、C4.5 はしきい値を使用します。しきい値よりも小さいものはすべて左側のノードにあり、しきい値よりも大きいものはすべて右側のノードに入ります。問題は、与えられたデータからそのしきい値を作成する方法です。ここでのコツは、データを連続変数で昇順にソートすることです。次に、データ メンバー間のしきい値を選択してデータを反復処理します。たとえば、属性 x のデータが次の場合:
0.5, 1.2, 3.4, 5.4, 6.0
最初に、0.5 から 1.2 の間のしきい値を選択します。この場合、平均値 0.85 を使用できます。次に、不純物を計算します。
H(x < 0.85) = H(s) - l/N * H(x<0.85) - r/N * H(x>0.85).
ここで、l は左側のノードのサンプル数、r は右側のノードのサンプル数、N は分割されるノードのサンプルの総数です。上記の例では、分割として x>0.85 を使用しており、l=1、r=4、N=5 です。
計算された不純物の差を思い出して、2 と 3 の間の分割 (つまり、x>2.3) について計算します。すべての分割 (つまり、n-1 分割) に対してこれを繰り返します。次に、H を最も小さくした分割を選択します。つまり、分割は分割しないよりも純粋にする必要があります。結果のノードの純度を上げることができない場合は、分割しないでください。また、左または右のノードにサンプルが 1 つしか含まれないように、ノードの最小サイズを設定することもできます。