問題タブ [genetic-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
179 参照

genetic-algorithm - 多項式で株式の値を表す方法は?

私は遺伝的アルゴリズムのプロジェクトを行っており、その履歴に基づいて株のセットを選択するソフトウェアを構築する必要があります。遺伝的プログラミングでそれを行う必要があります。つまり、適応度関数と染色体が必要です。右私は、株式の平均履歴と実際の値との正の差によって適応度関数を考えました(したがって、一致した場合は0になります)。誰かが染色体を表現する方法を知っていますか?

0 投票する
2 に答える
372 参照

hadoop - Hadoop上のエージェントフレームワーク

Hadoopを使用して単純なエージェントベースのフレームワークを作成することを考えていました。これは私がかなり前からいじっていたアイデアです(しかし、あまり深く考えていません)。

私が使用したいターゲットアプリケーションは遺伝的プログラミングです。アイデアは、私がたくさんのエージェントを生み出し、彼らにタスクを実行させ、彼らの遺伝的適応度を評価し、そしてそれらを繁殖させ、そしてそれから全体の運動を繰り返すということです。

Hadoopを使用してこれを行うことについて、人々がすぐに考え/批評を持っているかどうかを知りたいと思いました。

前もって感謝します。

0 投票する
2 に答える
789 参照

algorithm - 遺伝的プログラミング-母集団の初期化のためのアルゴリズム

誰かが私に遺伝的プログラミングのための集団初期化アルゴリズムに関するいくつかの指針を提供できますか?

私はすでに成長した、完全な、傾斜した半分(「遺伝的プログラミングのフィールドガイド」から引用)について知っており、1つの新しいアルゴリズムTwo Fast Tree-Creation(まだ論文を読んでいません)を見ました。

0 投票する
1 に答える
5372 参照

classification - 分類のための遺伝的アルゴリズム

MatlabGPTIPSフレームワークを使用して分類の問題を解決しようとしています。これまでのところ、妥当なデータ表現と適応度関数を構築することができ、クラスあたりの平均精度は65%近くになりました。

私が今必要としているのは、2つの困難を伴ういくつかの助けです。

  1. 私のデータは偏っています。基本的に二項分類問題を解いていて、データの20%だけがクラス1に属し、残りの80%はクラス0に属しています。最初は適応度関数として予測の精度を使用しましたが、それは本当に悪かったです。私が今持っている最高のものは

    Fitness = 0.5 *(PositivePredictiveValue + NegativePredictiveValue)-const * ComplexityOfSolution

データの偏りを修正するために関数を改善するにはどうすればよいですか。

  1. 2番目の問題は過剰適合です。データを3つの部分に分割しました:トレーニング(70%)、テスト(20%)、検証(10%)。トレーニングセットで各染色体をトレーニングし、テストセットでその適応度関数を評価します。このルーチンにより、母集団で最高の個人のテストデータで0.82の適合度に達することができます。しかし、検証データに対する同じ個人の結果はわずか60%です。新しい母集団が生成される前に、毎回最良の個人の検証チェックを追加しました。次に、検証セットの適合度とテストセットの適合度を比較します。差が5%を超える場合は、適応度関数のソリューションの複雑さに対するペナルティを増やします。しかし、それは役に立ちませんでした。また、各世代で検証が設定されたすべての個人を評価し、過剰適合した個人を削除することもできます。しかし、私はしません テストデータと検証データの違いを確認してください。ここで他に何ができますか?

アップデート:

私の2番目の質問では、素晴らしい記事「遺伝的プログラミングでの過剰適合の制御に関する実験」を見つけました。GPでの過剰適合の処理に関するいくつかの記事の著者のアイデアとともに、この問題に対する多くの異なるアプローチへの多くの参照を含む印象的なレビューがあります。今、私は自分の問題に対して試すことができるたくさんの新しいアイデアを持っています。残念ながら、データ内の不均衡なクラスの比率を考慮に入れる適切な適応度関数を選択することについては、まだ何も見つかりません。

0 投票する
1 に答える
1047 参照

genetic-algorithm - GAの経験がある人は私の適応度関数を調べることができますか?

これが私の問題です。遺伝的アルゴリズム用に見つけたコードを変更して、関数の数値最適化を実行しています。基本的に、関数Fと目的の値が与えられると、プログラムはGAを使用して、適切な目的の値を提供するxとyの値を検索します。私は自分のフィットネス機能をいじくり回し続けていますが、それが問題の根源だと感じています。

基本的なコードの内訳は次のとおりです。

ランダムな染色体集団を生成する

各染色体の適合性に基づいてバブルソートを使用する

それらのいずれかが機能を解決するために起こったかどうかを確認してください

解決したら、停止して印刷します

それ以外の場合は、親に基づいて子を生成します並べ替え、ベストアンサーを確認し、ループします

誰かが私を正しい方向に向けてくれることを願っています。私は今夜もう一度それを分析するつもりですが、私はこれにひっかかったようです。私がハードコーディングしたものよりも複雑な関数の場合、ランダムなパーセンテージ(通常は20未満)で収束するようです...しかし、0にはるかに近いはずです。単純なコーディングされた関数は約99%の差を返し続けます...だから私は何が起こっているのか100%ではありません。

}

0 投票する
2 に答える
8371 参照

java - Javaの遺伝的アルゴリズムのためのルーレットホイールの選択

遺伝的アルゴリズムのためのルーレットホイール選択法を実装しています。私の質問は、本質的には非常に単純ですが、頭を悩ませることはできません。私の適応度関数では、答えが極端に間違っていると、約-3000%が返される可能性があります。私の問題は、結果に確率を割り当てようとすると、間違った答えに偏ってしまうことです。

例:パーセンテージが配列内にあり、[92、68、5、-4、-3546](高いものから低いものへ)の場合、低いインデックスの数値に、数値よりも選択される可能性を高くする必要があります。より高いインデックスで。

適応度関数を無視して、大きな負の数を考慮に入れて、これに基づいて確率を作成するにはどうすればよいですか?

私がいじくり回したいくつかの基本的なコードは、別の質問で見つかりました:

(元のリンクはこちら:Javaで書かれたGA

GAを別の選択方法で機能させていましたが、代わりにこれを変更して機能させようとしています。どんな助けでも大歓迎です。

***編集

次のコードは、私が変更したrouletteWheelSelectionです。

これが私の適応度関数です:

値が必要な値と100%以上異なるという考えで、ソートされたリストの最後まで押し込むことを否定的にしました。

0 投票する
2 に答える
366 参照

artificial-intelligence - 遺伝的プログラミングを使用して確率を推定する

遺伝的プログラム (gp) を使用して、「イベント」からの「結果」の確率を推定したいと考えています。nn をトレーニングするために、遺伝的アルゴリズムを使用しています。

したがって、私のデータベースには多くのイベントがあり、各イベントには多くの可能な結果が含まれています。

各イベントの各結果に関連する一連の入力変数を gp に与えます。

私の質問は - gp のフィットネス関数はどうあるべきですか????

たとえば、現在、gp に一連の入力データ (結果入力変数) と一連のターゲット データ (結果 DID が発生した場合は 1、結果 DID が発生しなかった場合は 0、フィットネス関数は平均二乗) を与えています。出力とターゲットのエラー)。次に、各結果の各出力の合計を取り、各出力を合計で割ります (確率を求めるため)。ただし、これが正しい方法ではないことは確かです。

明確にするために、これは私が現在これを行っている方法です:

イベントで発生する 5 つの異なる結果の確率を推定したいと思います。

次に、各入力の gp 出力を計算します。

このイベントの各結果の出力の合計は、1.80 になります。次に、出力を合計で割って、各結果の「確率」を計算します。

始める前に - これらは実際の確率ではなく、このアプローチはうまくいかないことを私は知っています!! 私が何を達成しようとしているのかを理解してもらうために、ここにこれを載せました。

各結果の確率を推定する方法について、誰かが私にいくつかの指針を与えることができますか? (また、私の数学はあまり得意ではないことに注意してください)

どうもありがとう

0 投票する
1 に答える
672 参照

neural-network - NEAT における Disjoint 遺伝子と Excess 遺伝子の違いは?

Stanley の論文を読んでいましたが、NEAT の Disjoint 遺伝子と Excess 遺伝子が正確に何であるかを理解できませんでした。それらのすべてに、両方の親に関係しないイノベーション番号が含まれているという事実と、何らかの特定の方法で関連しているように見えることを理解しています. しかし、それらを区別するものは何ですか?

誰かが問題に光を当てることができますか?

0 投票する
2 に答える
7368 参照

genetic-algorithm - 遺伝的アルゴリズムで交差する親を選択しますか?

まず、これは宿題の一部です。

遺伝的アルゴリズムを実装しようとしています。クロスオーバーする親の選択について混乱しています。

私のメモでは(明らかに何かが間違っています)、これは例として行われていることです。

  1. Pc (交叉の可能性) * 集団サイズ = 交叉する推定染色体数 (偶数でない場合は、最も近い偶数に丸める)
  2. すべての染色体に対して [0,1] の範囲の乱数を選択し、この数が Pc より小さい場合は、クロスオーバー ペアとしてこの染色体を選択します。

しかし、2 番目のステップが適用されると、選択された染色体数は最初のステップで見つかった結果と等しくなります。ランダム性のため、これは常に保証されるわけではありません。

したがって、これは意味がありません。クロスオーバーの親を選択する方法を検索しましたが、見つけたのはクロスオーバーのテクニック (ワンポイント、カット、スライスなど) と、選択した親の間でクロスオーバーする方法 (これらに問題はありません) だけでした。クロスオーバーのためにどの染色体を選択すればよいかわかりません。提案や簡単な例はありますか?

0 投票する
2 に答える
2848 参照

optimization - MATLAB 最適化ツールボックスで同じパラメーターを使用して 1 つの目的関数を最適化すると、遺伝的アルゴリズムが異なる結果をもたらすのはなぜですか?

こんにちは、最小化の問題に matlab の最適化ツール ボックスを使用しています。ソルバーを実行すると、同じパラメーターを持つ 1 つの問題に対して異なる結果が得られます。では、どれが最良の答えであるかをどのように結論付けますか? ソルバーが同じパラメーターで実行するたびに1つの結果を返すようにするために必要なこと。どうもありがとうございました