Rでの機能構築


8

Rに機能構築(既存の予測子から候補予測子を導出する)のためのアルゴリズム(おそらく遺伝的アルゴリズム)があるかどうか疑問に思っていますか?私は、既存の変数(sin、cos、atanなど)の高次のべき、相互作用、比率、線形結合、および非線形関数をテストするルーチンを考えています。

これは、フィルターまたはラッパールーチンである可能性があります(つまり、学習アルゴリズムを使用したり、機能の適合度を定義するために使用したりしません)。

私の目標は、既存の予測子の潜在的に意味のある比率などを「発見」することです。

ありがとう!


「Oblique.tree」パッケージを試しましたか?cran.r-project.org/web/packages/oblique.tree/index.html best

回答:


3

これにより、疑似相関や過剰適合などの問題に対して非常に脆弱になると思われます。試すモデルが多いほど、悪いモデルに出くわすリスクが高くなるという原則の名前を忘れています。実際に遺伝的アルゴリズムを実行するほど多くのモデルを試すと、その原則がどのように違反されるか想像できます。


1
OPは、モデルを見つけるためではなく、遺伝的アルゴリズムを使用して特徴を抽出または操作することについて話していると思います。
アマン

2

このようにすることができます:data.frameから始めて、変換された予測子の「合理的な」セットまたはデータに相互作用さえ追加します(model.matrixと同様のものはこれをオフにできるはずです)。

そこに移動したら、任意の変数選択メソッドで実行できます。glmnet頭に浮かぶが、多くのオプションがあります。この方法の欠点は、相互作用がある場合にモデルに主効果があることを確認するのが難しいことです。おそらく、変数選択のいくつかの形式がこれをサポートしますが、段階的な手順(目的に反する)以外に明白なものは知りません。


1

主要なコンポーネント独立したコンポーネントを見つけるような単純なものから始めることができます。また、少しクレイジーになって、変数の双方向の相互作用をすべて生成することもできます。明らかに、より多くの特徴を生成してテストするので、過剰適合に対してより堅牢な特徴選択アルゴリズムが必要です。

MARS、ランダムフォレスト、非線形SVM などの一部のモデリングアルゴリズムは、元のフィーチャ間の特定の相互作用を自動的に検出します。


1
(+1)RFまたはSVM(およびより一般的には、すべてのアンサンブル法)の問題は、そのような相互作用が直接的な方法で解釈されることはめったにないということです。特定のタイプの予測子で機能選択を実行できるバギングのいくつかのバリエーションが提案されています。たとえば、logicFSパッケージを参照してください。
11
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.