Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

Eureqaモデルのチューニング

さまざまな高度なチューニングパラメーターを変更し、カスタムターゲット式を作成することによってEureqaモデルをカスタマイズできます。 モデルで調整できるパラメーターには、構築ブロックターゲット式誤差指標行加重、および以前の解があります。 さらに、DataRobotでEureqaモデル用にデータをパーティション分割する方法をカスタマイズすることもできます。

構築ブロック

Eureqaモデル式は、特徴量の結合およびデータセットからの特徴量の新規作成を行うために構築ブロック(数学関数のセット)を使用します。 構築ブロックには、シンプルな算術関数(加算、減算)や複雑な関数(LogisticやGaussian)があります。

DataRobotでは、プリセットされた問題タイプの構築ブロックのデフォルトセットを使用してEureqaモデルが作成されます。しかし、問題によっては、構築ブロックの別のセットが必要になる場合があります。 既知の動作または予期される動作のある体系を扱う上級ユーザーの場合、特定のモデル構造を使用できます。 たとえば、データにおいて季節などの循環的傾向が要因となる場合、構築ブロックsin(x)およびcos(x)を使用すると、その作用がデータに対してテストされます。

ターゲット式での構築ブロックの選択の詳細については、構成ブロックの設定を参照してください。

構築ブロックの複雑さ

複雑さの設定は、モデルの関連要素にペナルティを科すために特定の構築ブロックおよび条件に適用できる追加の加重です。 特定の構築ブロックまたは条件に適用された複雑さを変更すると、高い精度の最もシンプルなモデルを見つけるために、パレートフロンティアに表示されるモデルに影響します(Eureqaモデルタブ)。

通常、デフォルトの複雑さ設定は適切に機能しますが、モデル化する体形に関する知識がある場合、設定を変更することができます。 体形のコアダイナミクスを正確に捉える解の一部となることが分かっている(または予期される)特定の構築ブロックがある場合、複雑さの値を低くして、その構築ブロックを関連するEureqaモデルに表示することができます。 同様に、モデルの適合性を大幅に向上させる場合以外に表示しない構築ブロックがある場合、その構築ブロックの複雑さの値を大きくすることができます。

詳細については、構築ブロックの複雑さの設定を参照してください。

ターゲット式

ターゲット式を使用して、Eureqaモデルの作成方法を指定できます。 ターゲット式は、データセット内に存在する特徴量と算術「構築ブロック」で構成されます。 DataRobotでは、全ての入力特徴量の関数としてモデル化された選択済みターゲット特徴量を使用してモデルのデフォルトのターゲット式を作成します。

デフォルトのターゲット式の例を以下に示します。

式(モデル方程式)をカスタマイズして、モデル化する関係性のタイプを指定し、体系の本質的な動作に関する専門知識を組み込むことができます。 複雑な式を構築して、微分方程式、多項方程式、二値分類などの複雑な関係性をチューニングできます。

詳細については、ターゲット式のカスタマイズを参照してください。

誤差指標

DataRobotは、誤差指標を使用して解の品質の評価方法をガイドします。 各Eureqaモデルにはデフォルトの誤差指標設定がありますが、上級ユーザーは別の誤差指標に最適化することができます。 誤差指標を変更すると、解の最適化方法が変化します。

詳細については、誤差指標の設定を参照してください。

行加重

Eureqaで各行のデータに加える相対加重(有用性など)の量を示すインジケーターとして特徴量の1つを指定できます。 たとえば、指定した行加重特徴量で最初の行の値が10で、2番目の行の値が20の場合、Eureqaでデータにおけるモデルパフォーマンスを計算するとき、2番目の行のデータには最初の行のデータの2倍の加重が加えられます。 行加重は、行加重特徴量または行加重式を使用して指定できます。

詳細については、行の加重ブロックの設定を参照してください。

以前の解

以前の解を「シード」として使用して、最終的な解で何らかの役割を果たすと考えられる関係性を表す式または式の一部を得ることができます。 Eureqaモデルに以前の解を入力すると、そのモデルを既知の情報で初期化することによって検索パフォーマンスの速度を向上させることができる場合があります。 以前の解パラメーター(prior_solutions)は、予測モデルパラメーター内で使用でき、Eureqaモデルのチューニングの一部として指定できます。複数の式を指定できます。 指摘できるのは1行ごとに1つの式で、各式は有効なターゲット式です(以前のEureqaモデルの式など)。

モデルに対して設定された2つの以前の解(式)sin(x - 1)およびsin(2 * x)の例を以下に示します。

複数の関数を使用するカスタムターゲット式(こちらを参照)を入力した場合、各関数のサブ関数を入力します。 それぞれのf()は、そのサブ式と共に同じ行にカンマで区切られた形でリストされます。 たとえば、式にTarget = f0(x) * f1(x)のような2つの関数が含まれる場合、以前のモデルはTarget = (x-1) * sin(2 * x)となり、以前の式を次のように入力します。

Target = (x - 1), f1 = sin(2 * x)

以前のモデルから複数の式を指定するには、関数の各セットを1つの新規行に入力します。 式は、ターゲット式に存在する関数の一部に対してのみ入力できます。その場合、DataRobotでは、その他の関数のシードとして「0」が補填されます。

たとえば、次の式を入力したとします。

f1 = sin(2 * x)

DataRobotでは、次のように変換されます。

f0 = 0, f1 = sin(2 * x)

トレーニングおよび交差検定用のデータパーティショニング

DataRobotでは、各Eureqaモデルに対してデータパーティショニングの標準プロセスが実行されます(こちらを参照)。 その後、トレーニングセットデータが2つのセット(Eureqa内部トレーニングセットおよびEureqa内部検定セット)にさらに分割されます。 これらのEureqa内部セットのデータは、元のDataRobotトレーニングセットから派生します。 (元のDataRobot検定セットがEureqaデータパーティショニングプロセスの一部として使用されることはありません。)

DataRobotでは、Eureqa内部トレーニングセットを使用して、コアEureqa進化的アルゴリズムが取得されます。また、Eureqa内部トレーニングセットと検定セットの両方を使用して、どちらのモデルが「最良か」が選択され、最終的なEureqaパレートフロントに含められます(「Eureqaモデル」タブ内)。

ランダム分割

ランダム分割では、行がEureqa内部トレーニングおよびEureqa内部検定にランダムに割り当てられます。 (元のトレーニングセット内の)行は、Eureqa内部トレーニングとEureqa内部検定の割合に基づいて分割されます。 トレーニングおよび検定の割合の合計が100%を超える場合、行の重複する割合はトレーニングと検定の両方に割り当てられます。 ほとんどの(非時系列)モデリングの問題では、50%のEureqa内部トレーニングおよび50%のEureqa内部検定でのランダム分割が推奨されます。

非常に小さいデータセット(数百ポイント以下など)の場合、通常、重複するEureqa内部トレーニング/Eureqa内部検定データセットを使用するのが最善です。 データが極端に小さい場合、またはノイズがほとんどない(または皆無の)場合、Eureqa内部トレーニングに元のDataRobotトレーニングデータの50%を使用し、Eureqa検定に100%のトレーニングデータを使用することも可能です。 極端なケースでは、Eureqa内部トレーニングとEureqa内部検定の両方のデータセットにデータの100%を含めて、複雑性の低いモデルに選択を制限できます。

大きなデータセット(1,000以上のポイントなど)の場合、通常、Eureqaトレーニングセットにはデータの小さい部分を使用するのが最良です。 Eureqaトレーニングデータが約10,000行以下になるようなサイズが推奨されます。 Eureqa検定セットには、残りの全てのデータを使用します。

順序付けられた分割

順序付けられた分割では、入力データ(元のDataRobotトレーニングセットなど)の元の順序が維持され、Eureqa内部トレーニングセットに使用する行が割合として最初の行から順に選択され、Eureqa内部検定セットに使用する行が割合として最後の行から遡って選択されます。 トレーニングおよび検定の割合の合計が100%を超える場合、行の重複する割合はEureqa内部トレーニングとEureqa内部検定の両方に割り当てられます。

このオプションは、Eureqa内部トレーニングセットに使用する行でデータセットの最初からデータを配置し、Eureqa内部検定セットに使用する行でデータセットの最後からデータを配置している場合に使用できます。

ここで説明したように、時系列およびOTVモデル用にデータをパーティショニング分割するとき、順序付けられた分割は、デフォルトで適用されます。

特徴量による分割

特徴量による分割では、プロジェクトデータセットで事前定義された特徴量を使用して、トレーニングに使用する行と検定に使用する行を手動で指定できます。 インジケーター特徴量に0より大きい値がある場合、行が選択されます。トレーニング行に対してインジケーターが別途提供されている場合を除き、デフォルトでは、Eureqa内部トレーニング行がEureqa内部検定行の反転として選択されます。

Eureqaにアップロードする前に検定データ特徴量とトレーニングデータ特徴量をデータに含めることや、Eureqaを使用して、データの分割に使用する派生した特徴量を作成することができます。

式による分割

式による分割では、ターゲット式の一部として入力した式を使用して、Eureqa内部トレーイングに使用する行とEureqa内部検定に使用するデータを手動で識別できます。 式に0より大きい値がある場合、行が選択されます。トレーニング行に対して式が別途提供されている場合を除き、デフォルトでは、Eureqa内部トレーニングセット行がEureqa内部検定行セットの反転として選択されます。

Eureqaデータパーティショニング

training_fractionおよびvalidation_fractionパラメーターを使用して、デフォルトのデータパーティショニングを変更できます。 モデル用にデータを分割する方法を調整するには、split_modeパラメーターを変更します。 最後に、(前述のデフォルト設定ではなく)カスタム式に基づいてEureqa内部トレーニングセットと内部検定セットを作成するために、これらの式をtraining_split_exprおよびvalidation_split_exprパラメーターに追加します。

デフォルトの(Eureqa内部トレーニングセットおよび内部検定セットを作成する)Eureqaデータパーティショニングプロセスは、非時系列モデルと時系列モデルで異なります。

  • 時系列モデル以外の場合:DataRobotでは、シャッフルされたトレーニングセットデータの50/50のランダム分割が実行され、最初の半分をEureqa内部トレーニングセットとして使用され、残りの半分がEureqa内部検定セットとして使用されます(ここでランダムの場合、split_mode = 1です)。

  • 日付/時刻パーティションモデル(時系列モデリングまたは時間外検定(OTV)のいずれかとして作成されたモデル)の場合:DataRobotでは、シャッフルされたトレーニングセットデータの70/30の順序付けられた分割が実行され、最初の70%をEureqa内部トレーニングセットとして使用し、残りの30%がEureqa内部検定セットとして使用されます(split_mode = 2、順序づけられた分割)。

ヒント

プロジェクトの開始(高度なオプションを使用)時にランダムパーティショニングを選択した場合、Eureqaモデルをチューニングするときには順序付けられた分割モードを選択しないことを強く推奨します。

交差検定のデータパーティショニング

DataRobotでEureqaモデルに対して交差検定を実行するとき、最初の交差検定分割だけがトレーニングに使用されるので、(最初の交差検定から取得された)そのトレーニングデータがEureqa内部トレーニングデータとEureqa内部検定データにさらに分割されます。

高度なチューニング

高度なチューニングでは、Eureqaモデルパラメーターを手動で設定し、DataRobotのデフォルト値を上書きできます。 高度なチューニングにより、複数のEureqaハイパーパラメーターを選択できる場合に、グリッド検索での検索方法を制御できます。 一般的なモデリングの 高度なチューニングの検索タイプセクションで説明されているように、検索タイプはbrute forcesmart searchです。


更新しました August 16, 2023