良い質問。
あなたの質問から、あなたが「プルーニング」と呼んでいるのは、モデルを構築するためにアルゴリズムが利用できる入力を制限するために事前に実行されるモデル構築ステップだと思います。機械学習で使用される「プルーニング」という用語は、別のものを指します。つまり、モデル構築後の事後ステップであり、利用可能な入力ではなくモデル自体に作用します。(ML ドメインには、「プルーニング」という用語の 2 番目の意味がある可能性がありますが、私はそれを認識していません。) 言い換えれば、プルーニングは実際、文字どおり「推論の連鎖を制限する」ための手法です。あなたはそれを言いますが、それは事後的に、完全な(動作する)モデルのコンポーネントの切除によって、
一方で、モデルの構築に利用できる入力を分離または制限すること (これは、皆さんが念頭に置いていたことだと思います) は、確かに重要な機械学習のテーマです。それは明らかに、より最近の ML アルゴリズムの多くの優れたパフォーマンスの原因となっている要因です。たとえば、サポート ベクター マシン (SVM の根底にある洞察は、データの小さなサブセットのみから最大マージンの超平面を構築することです。つまり、 「サポート ベクター」)、および Multi-Adaptive Regression Splines (「単一の連続曲線を描く」ことによってデータを適合させようとしない回帰手法であり、代わりに、データの個別のセクションが 1 つずつ適合されます。 1 つは、各部分、つまり「スプライン」に有界線形方程式を使用することです。
枝刈りで解決する問題とは?
少なくとも、私が実際にコーディングして使用した特定の ML アルゴリズム (デシジョン ツリー、MARS、およびニューラル ネットワーク) を使用して、最初はオーバー フィット モデル(トレーニング データに非常に密接に適合するモデル) に対してプルーニングが実行されます。一般化することはできません (新しいインスタンスを正確に予測します). 各インスタンスでは、プルーニングには、限界ノード (DT、NN) または回帰方程式 (MARS) の項を 1 つずつ削除することが含まれます。
第二に、剪定が必要/望ましい理由は何ですか?
収束・分岐の基準を正確に設定した方が良いのではないか?それは常に役立つとは限りません。剪定は「ボトムアップ」から機能します。モデルはトップダウンで構築されるため、(剪定と同じ利点を得るために) モデルを調整すると、1 つ以上の決定ノードだけでなく、子ノードも削除されます (幹に近い木をトリミングするなど)。そのため、限界ノードを削除すると、その限界ノードに従属する 1 つまたは複数の強力なノードも削除される可能性がありますが、モデラーは、調整によってその限界ノードでのノードの作成がさらに排除されるため、それを知ることはありません。プルーニングは、他の方向、つまり最下位 (最下位レベル) の子ノードからルート ノードの方向に向かって上向きに機能します。