遺伝的アルゴリズムの過剰適合を回避する方法

user2297037

私は次の問題に直面しています。異常スコアに応じて、いくつかの操作のランキングを作成できるシステムがあります。パフォーマンスを向上させるために、最も異常な操作が最初の位置に表示されるように、特徴選択を実行する遺伝的アルゴリズムを実装しました。私が行っているのは、正確に特徴選択ではありません。バイナリ変数を使用しておらず、合計が1に等しい0-1の間の浮動変数を使用しているためです。

現在、私は50世代にわたって200人の人口を持っています。私は評価関数としてシステム自体を使用しており、真陽性率を使用して、最初のN個の位置に出現する異常な操作の数を数えてソリューションの品質を評価します(Nは異常な操作の数です)。次に、オペレーターとして、均一なクロスオーバーと私は突然変異のために個人の細胞の値を変更します。もちろん、合計が1になるように個人を修正するためのチェックを行うたびに、最後にエリート主義を使用して、これまでの最良の解決策を長期にわたって保存します。

1つの機能の値が非常に高いことがわかりました。これはしばしば重要ですが、常にではありません。これにより、他の機能の値が非常に低くなります。GAが過剰適合しているのではないかと思います。良い停止基準を見つけるのを手伝ってもらえますか?

zegkljan

遺伝的アルゴリズムとプログラミングの過剰適合は大きな問題であり、私を含め、現在GPコミュニティの研究の焦点となっています。研究のほとんどは、遺伝的プログラミングと分類/回帰モデルの進化を目的としていますが、それはあなたの問題にも関係している可能性があります。あなたを助けるかもしれない(そして私も一緒に働いている)いくつかの論文があります:

  • ゴンサルベス、イヴォ、サラシルバ。「遺伝子プログラミングにおける過剰適合の制御に関する実験。」人工知能に関する第15回ポルトガル会議の議事録:人工知能の進歩、EPIA。84.2011。
  • ラングドン、WB「遺伝子プログラミングにおける最小化テスト」。RN 11.10(2011):1。
  • Gonçalves、Ivo、etal。「遺伝子プログラミングにおける過剰適合制御のためのランダムサンプリング手法。」遺伝的プログラミング。シュプリンガーベルリンハイデルベルク、2012年。218-229。
  • ゴンサルベス、イヴォ、サラシルバ。トレーニングデータのインターリーブサンプリングを使用して、遺伝子プログラミングにおける学習と過剰適合のバランスを取ります。シュプリンガーベルリンハイデルベルク、2013年。

scholar.google.comでタイトルを検索すると、論文(最初の2つはPDFで直接)を見つけることができます。

基本的に、すべての論文が扱うのは、進化を指示するためにトレーニングデータのサブセットのみを使用し、世代ごとにこのサブセットを(ランダムに)変更するというアイデアです(1世代のすべての個人に同じサブセットを使用)。興味深いことに、実験では、このサブセットが小さいほど、単一要素のサブセットのみを使用するという極端な場合まで、過剰適合が少なくなることが示されています。論文はこのアイデアに取り組み、いくつかの調整(完全なデータセットとサブセットの切り替えなど)で拡張します。しかし、最初に言ったように、これはすべて、特徴選択ではなく、(多かれ少なかれ)シンボリック回帰を目的としています。

私はかつて別のアプローチを試しました(これも遺伝的プログラミングによるシンボリック回帰のために)-トレーニングデータのサブセット(たとえば半分)を使用して進化を推進します(つまりフィットネスのために)が、「これまでのところ最良の」解決策は残りのトレーニングデータの結果。過剰適合はそれほど重要ではありませんでした。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

NEATアルゴリズム:互いに素な遺伝子と過剰な遺伝子をクロスオーバーする方法は?

分類Dev

遺伝的アルゴリズム:点に適合する曲線を見つける

分類Dev

Haskellの合計と製品タイプを列挙するための遺伝的アルゴリズム?

分類Dev

リストの位置で囲まれた項目を使用して計算する(遺伝的アルゴリズムの適合性)

分類Dev

遺伝的アルゴリズムと従来のアルゴリズムを区別する

分類Dev

Rの遺伝的アルゴリズム

分類Dev

多項式の遺伝的アルゴリズムの最適化

分類Dev

非遺伝的ケースのMatlab遺伝的アルゴリズム

分類Dev

Matlabの遺伝的アルゴリズムを使用した画像再構成アルゴリズムの最適化

分類Dev

遺伝的アルゴリズムが極小値に収束するのを防ぐ方法は?

分類Dev

Javaの遺伝的アルゴリズムにガウス突然変異演算子を実装する方法

分類Dev

Rで遺伝的アルゴリズムを使用してCARTのパラメーターを最適化する方法

分類Dev

遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

分類Dev

遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

分類Dev

過剰適合を回避する方法は?

分類Dev

2次元配列でクロスオーバーを実行する方法-遺伝的アルゴリズム

分類Dev

データセット機能で遺伝的アルゴリズムを変更する方法

分類Dev

遺伝的アルゴリズムの乱数をどのように生成する必要がありますか?

分類Dev

遺伝的アルゴリズムのより良い評価方法を探しています

分類Dev

遺伝的アルゴリズム-収束

分類Dev

DEAP遺伝的アルゴリズム

分類Dev

遺伝的アルゴリズム-可変長最適化の戦略

分類Dev

遺伝的アルゴリズムに部分的に一致したクロスオーバーを使用する場合の重複の処理

分類Dev

遺伝的アルゴリズムツールボックス、Deapで0から1の間の乱数を生成する方法

分類Dev

遺伝的アルゴリズムにおけるこのメカニズムの名前は何ですか?

分類Dev

遺伝的アルゴリズムの配列ヘルプ

分類Dev

Javaと遺伝的アルゴリズムの効率の向上

分類Dev

Pythonの遺伝的アルゴリズムの問題

分類Dev

Matlabの遺伝的アルゴリズムの突然変異段階

Related 関連記事

  1. 1

    NEATアルゴリズム:互いに素な遺伝子と過剰な遺伝子をクロスオーバーする方法は?

  2. 2

    遺伝的アルゴリズム:点に適合する曲線を見つける

  3. 3

    Haskellの合計と製品タイプを列挙するための遺伝的アルゴリズム?

  4. 4

    リストの位置で囲まれた項目を使用して計算する(遺伝的アルゴリズムの適合性)

  5. 5

    遺伝的アルゴリズムと従来のアルゴリズムを区別する

  6. 6

    Rの遺伝的アルゴリズム

  7. 7

    多項式の遺伝的アルゴリズムの最適化

  8. 8

    非遺伝的ケースのMatlab遺伝的アルゴリズム

  9. 9

    Matlabの遺伝的アルゴリズムを使用した画像再構成アルゴリズムの最適化

  10. 10

    遺伝的アルゴリズムが極小値に収束するのを防ぐ方法は?

  11. 11

    Javaの遺伝的アルゴリズムにガウス突然変異演算子を実装する方法

  12. 12

    Rで遺伝的アルゴリズムを使用してCARTのパラメーターを最適化する方法

  13. 13

    遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

  14. 14

    遺伝的アルゴリズムとPYTHONの多目的最適化:使用するライブラリ/ツール?

  15. 15

    過剰適合を回避する方法は?

  16. 16

    2次元配列でクロスオーバーを実行する方法-遺伝的アルゴリズム

  17. 17

    データセット機能で遺伝的アルゴリズムを変更する方法

  18. 18

    遺伝的アルゴリズムの乱数をどのように生成する必要がありますか?

  19. 19

    遺伝的アルゴリズムのより良い評価方法を探しています

  20. 20

    遺伝的アルゴリズム-収束

  21. 21

    DEAP遺伝的アルゴリズム

  22. 22

    遺伝的アルゴリズム-可変長最適化の戦略

  23. 23

    遺伝的アルゴリズムに部分的に一致したクロスオーバーを使用する場合の重複の処理

  24. 24

    遺伝的アルゴリズムツールボックス、Deapで0から1の間の乱数を生成する方法

  25. 25

    遺伝的アルゴリズムにおけるこのメカニズムの名前は何ですか?

  26. 26

    遺伝的アルゴリズムの配列ヘルプ

  27. 27

    Javaと遺伝的アルゴリズムの効率の向上

  28. 28

    Pythonの遺伝的アルゴリズムの問題

  29. 29

    Matlabの遺伝的アルゴリズムの突然変異段階

ホットタグ

アーカイブ