Skip to content

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

Eureqaモデルのチューニング

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

構築ブロック

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

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

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

構築ブロックの複雑さ

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

通常、デフォルトの複雑さ設定は適切に機能しますが、モデル化する系に関する知識がある場合、設定を変更することができます。系の中心的な動作を正確に捉え、解の一部となることが分かっている(または予想できる)特定の構築ブロックがある場合、複雑さの値を低くして、その構築ブロックを関連するEureqaモデルに表すことができます。同様に、モデルのフィッティングを大幅に向上させないためモデルに表したくない構築ブロックがある場合、その構築ブロックの複雑さの値を大きくすることができます。

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

ターゲット式

ターゲット式は、どのようにEureqaモデルを作成したかを教えてくれます。ターゲット式は、データセット内に存在する特徴量と、数学的な「構築ブロック」で構成されます。DataRobotでは、全ての入力特徴量の関数として選択されたターゲット特徴量をモデル化し、モデルのデフォルトのターゲット式を作成します。

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

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

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

誤差指標

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

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

行加重

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

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

以前の解

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

モデルに対して設定された2つの以前の解(式)(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パラメーターを使用して、デフォルトのデータパーティショニングの設定を変更できます。DataRobotがモデル用にデータを分割する方法を調整するには、split_modeパラメーターを変更します。最後に、(前述のデフォルト設定ではなく)カスタム式に基づいてEureqa内部トレーニングセットと内部検定セットを作成するために、DataRobotはこれらの式を、適応する場合には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内部検定データにさらに分割されます。


更新しました February 22, 2022
Back to top