Optimize by Generation (GGA)
概要
この演算子は、元の属性セットから一部の属性を選択する場合があり、元の属性セットから新しい属性を生成する場合もあります。 GGA(Generating Genetic Algorithm)は、属性の追加または削除(または両方)がより良い適合性を証明しない限り、属性の元の数を変更しません。
詳細
機能の選択だけでは不十分な場合があります。これらの場合、機能空間の他の変換を実行する必要があります。指定された属性から新しい属性を生成すると、機能空間が拡張されます。おそらく、拡張機能空間で仮説を簡単に見つけることができます。この演算子は、属性選択手順と属性生成手順を組み合わせたものと考えることができます。元の属性セットから一部の属性を選択し、元の属性から新しい属性を生成することもあります。
遺伝的アルゴリズム(GA)は、自然進化のプロセスを模倣する検索ヒューリスティックです。このヒューリスティックは、最適化と検索の問題に対する有用なソリューションを生成するために日常的に使用されます。遺伝的アルゴリズムは、より大きなクラスの進化的アルゴリズム(EA)に属し、継承、突然変異、選択、クロスオーバーなどの自然進化にヒントを得た手法を使用して、最適化問題の解決策を生成します。遺伝的アルゴリズムの基本的なアルゴリズムを学習するには、最適化選択(進化)演算子の説明を学習してください。
単純な遺伝的アルゴリズムとは対照的に、遺伝的アルゴリズムの生成では新しい属性が生成されるため、個人の長さを変更できます。そのため、特殊な突然変異および交差演算子が適用されています。ジェネレータは、ブールパラメータで指定されたジェネレータのリストからランダムに選択されます。この演算子はネストされた演算子です。つまり、サブプロセスがあります。サブプロセスはパフォーマンスベクトルを返す必要があります。この演算子を適用するには、サブプロセスの基本的な理解が必要です。サブプロセスの基本的な理解については、サブプロセス演算子のドキュメントをご覧ください。
入力
- 設定された例(IOObject)この入力ポートには、ExampleSetが必要です。このExampleSetは、サブプロセスで処理するために、ネストされたチェーンの最初のポート(サブプロセス内)で使用できます。
出力
- 設定例(IOObject)遺伝的アルゴリズムは、入力ExampleSetに適用されます。結果のExampleSetは、このポートを介して配信されます。
- 属性の重み(平均ベクトル)属性の重みは、このポートを介して配信されます。
- パフォーマンスアウト(パフォーマンスベクトル)このポートは、選択した属性のパフォーマンスベクトルを提供します。パフォーマンスベクトルは、パフォーマンス基準値のリストです。
パラメーター
- max_number_of_new_attributesこのパラメーターは、1世代の個人に対して生成する属性の最大数を指定します。 範囲:整数
- limit_max_total_number_of_attributesこのパラメーターは、すべての世代の属性の総数を制限する必要があるかどうかを示します。 trueに設定すると、最大数は属性パラメーターの最大合計数によって指定されます。 範囲:ブール
- max_total_number_of_attributesこのパラメーターは、「属性の最大数の制限の最大数」パラメーターがtrueに設定されている場合にのみ使用可能です。このパラメーターは、すべての世代の属性の最大総数を指定します。 範囲:整数
- use_local_random_seedこのパラメーターは、ランダム化にローカルランダムシードを使用する必要があるかどうかを示します。同じ値のローカルランダムシードを使用すると、同じランダム化が生成されます。 範囲:ブール
- local_random_seedこのパラメータは、 ローカルランダムシードを指定します。このパラメーターは、 ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数
- show_stop_dialogこのパラメーターは、最適な機能スペースの検索を停止する停止ボタンのあるダイアログを表示するかどうかを決定します。最適なフィーチャスペースの検索が停止されると、それまでに見つかった最適な個人が返されます。 範囲:ブール
- maximal_fitnessこのパラメーターは、最大適合度を指定します。適合度がこの値に達すると、最適化は停止します。 範囲:実数
- population_sizeこのパラメータは、母集団のサイズ、つまり世代ごとの個体数を指定します。 範囲:整数
- maximum_number_of_generationsこのパラメーターは、アルゴリズムを終了するまでの世代数を指定します。 範囲:整数
- use_plusこのパラメーターは、新しい属性の生成に加算関数を適用する必要があるかどうかを示します。 範囲:ブール
- use_diffこのパラメーターは、新しい属性の生成に差分関数を適用する必要があるかどうかを示します。 範囲:ブール
- use_multこのパラメーターは、新しい属性の生成に乗算関数を適用する必要があるかどうかを示します。 範囲:ブール
- use_divこのパラメータは、除算関数を新しい属性の生成に適用する必要があるかどうかを示します。 範囲:ブール
- reciprocal_valueこのパラメーターは、新しい属性の生成に逆関数を適用する必要があるかどうかを示します。 範囲:ブール
- use_early_stoppingこのパラメーターは、早期停止を有効にします。 trueに設定されていない場合、常に最大世代数が実行されます。 範囲:ブール
- generations_without_improvalこのパラメーターは、 早期停止パラメーターの使用がtrueに設定されている場合にのみ使用できます。このパラメーターは、早期停止の停止基準を指定します。つまり、パフォーマンスを改善せずにn世代後に停止します。 nはこのパラメーターで指定されます。 範囲:整数
- tournament_sizeこのパラメーターは、トーナメントメンバーとして使用される現在の人口の割合を指定します。 範囲:実数
- start_temperatureこのパラメーターは、スケーリング温度を指定します。 範囲:実数
- dynamic_selection_pressureこのパラメーターをtrueに設定すると、完全な最適化の実行中に選択圧力が最大に増加します。 範囲:ブール
- keep_best_individual trueに設定されている場合、各世代の最高の個人が次の世代に選択されることが保証されます。 範囲:ブール
- p_initialize属性がオンになる初期確率は、このパラメーターによって指定されます。 範囲:実数
- p_crossover個人が交差のために選択される確率は、このパラメーターによって指定されます。 範囲:実数
- crossover_typeこのパラメーターにより、クロスオーバーのタイプを選択できます。 範囲:選択
- p_generateこのパラメーターは、世代に対して個人が選択される確率を指定します。 範囲:実数
- use_heuristic_mutation_probabilityこのパラメーターがtrueに設定されている場合、突然変異の確率は1 / n ( nは属性の数)として選択されます。それ以外の場合、突然変異の確率は、 p突然変異パラメーターRange:booleanで指定する必要があります
- p_mutation属性が変更される確率は、このパラメーターで指定されます。 -1に設定すると、確率は1 / nに設定されます。nは属性の総数です。 範囲:実数
チュートリアルプロセス
多項式データセットにGGAを適用する
「多項式」データセットは、Retrieve演算子を使用してロードされます。 ExampleSetを見ることができるように、ブレークポイントがここに挿入されます。 ExampleSetには、label属性以外に5つの通常の属性があることがわかります。世代別最適化(GGA)演算子は、ExampleSetに適用されます。世代別最適化(GGA)はネストされた演算子です。つまり、サブプロセスがあります。サブプロセスがパフォーマンスベクトルを提供する必要があります。このパフォーマンスベクトルは、基になる遺伝的アルゴリズムによって使用されます。この演算子のサブプロセスを見てください。そこでは、それ自体がネストされた演算子である分割検証演算子が使用されます。 Split Validationオペレーターのサブプロセスをご覧ください。線形回帰演算子は、モデルをトレーニングするために「トレーニング」サブプロセスで使用されます。トレーニング済みモデルは、「テスト」サブプロセスの「モデルの適用」演算子を使用して適用されます。パフォーマンスは、パフォーマンス(回帰)演算子を使用して測定され、結果のパフォーマンスベクトルは、基になるアルゴリズムによって使用されます。プロセスを実行し、結果ワークスペースに切り替えます。 5つの属性を持っていたExampleSetが4つの属性を持っていることがわかります。結果の属性が削減されたExampleSetは、結果ワークスペースに表示されます。