短いバージョン:意思決定ツリーを構築できるRパッケージを探していますが、意思決定ツリーの各リーフは完全な線形回帰モデルです。知る限り、ライブラリrpart
は、各リーフで従属変数が定数である決定木を作成します。rpart
そのようなツリーを構築できる別のライブラリ(または私が知らない設定)はありますか?
ロングバージョン:トレーニングデータセットに基づいて決定木を構築するアルゴリズムを探しています。ツリー内の各決定は、独立変数の1つの条件に従って、トレーニングデータセットを2つの部分に分割します。ツリーのルートには完全なデータセットが含まれ、データセットの各アイテムは1つのリーフノードに含まれています。
アルゴリズムは次のようになります。
- ツリーのルートノードである完全なデータセットから始めます。このノードを選択してと呼びます。
- のデータに線形回帰モデルを作成します。
- 場合はのさん線形モデルがある閾値以上である、そして、我々が行われている、そのマークステップ5に葉やジャンプなど。 N θ R 2 N N
- ランダムな決定を試して、サブノードで最適なを生成するものを選択します。
R 2
- ランダムな独立変数と、ランダムなしきい値ます。θ I
- 決定は、のデータセットを2つの新しいノードおよび分割します。 N N 〜N
- と両方で線形回帰モデルを作成し、それらのを計算します(それらをおよびと呼びます)。 〜N R2、R 〜R
- それらすべてのタプルから、最大持つものを選択します。これによりツリーで新しい決定が行われ、は2つの新しいサブノードおよび\ tilde {N}が追加されます。(V I、θ I、R、〜R)は、mは、I N (R、〜R)N N 〜N
- 処理が完了しました。まだ処理されていない新しいノードを選択し、手順2に戻ります。すべてのノードが処理された場合、アルゴリズムは終了します。N
これにより、データを小さな部分に分割し、各部分の線形モデルを計算する決定ツリーが再帰的に構築されます。
ステップ3は終了条件であり、アルゴリズムが過剰適合するのを防ぎます。もちろん、他の可能な終了条件があります。
- ツリーのの深さが超える場合は終了し
- のデータセットがより小さい場合は終了します
Rパッケージにそのようなアルゴリズムはありますか?