Skip to content

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

手動変換

このセクションでは、ユーザー作成の手動による特徴量変換について説明します。変換された特徴量によって元の特徴量が置換されることはありません。変換された特徴量は、モデル構築用の新しい追加特徴量として提供されます。

備考

変換された特徴量(ユーザー定義関数として作成された数値特徴量を含む)は、加重、オフセット、エクスポージャー、イベント数などの特殊な特徴量には使用できません。

変換の作成

DataRobotは、数値データに対する自然対数への変換、積算、関数の実行など、データに適用する各種変換に対応しています。(variable type(特徴量の型)を変更することもできます。)これらの変換は、特徴量のタイプに適切な場合にのみ使用できます。以下のステップは、ユーザー変換の作成方法を示します。

  1. 変換可能な特徴量の上にカーソルを置き、特徴量名の左側に表示されているオレンジ色の矢印をクリックして変換メニューを表示します。

  2. 変換を選択します。自然対数log(<feature>)または積算<feature>^2オプションを選択した場合、変換が直ちに計算され、派生した特徴量が新規作成されます。

  3. 関数オプションf(<feature>)を選択した場合、新しい変換を追加するダイアログが表示されます。

    • 新しい特徴量の名前フィールドに、この変換の名前を入力します。1つの特徴量に対して関数ベースの変換を複数作成することができます。
    • サポートされている構文を使用して関数と特徴量を入力します。
    • 作成をクリックして変換を作成します。

    この機能には、メニューからアクセスすることもできます。

変換された特徴量は、データページで元の特徴量の下に表示されます(すべての特徴量)。変換された特徴量は、新しい特徴量セットに含めることやモデリングに使用することができます。予測用に変換された特徴量を含むモデルを使用する場合、DataRobotはアップロードされたデータセットに新しい特徴量を自動的に含めます。

他の特徴量と同様に、特徴量の名前をクリックすることで、ヒストグラム、チャート化された頻度の高い値、および値の表を表示できます。しかし、更なる variable type(特徴量の型)変換の代わりに、変換された特徴量と元になった特徴量が比較表示されます。

特徴量の型変換

DataRobotでのvariable type(特徴量の型)割り当てはEDAの間に見られた値に基づきます。データセットに含まれる各variable type(特徴量の型)がデータページに一覧表示されます。しかし、特徴量の型を変更する必要がある場合もあるでしょう。たとえば、市外局番は数値として解釈されますが、カテゴリーとしてマップすることが好ましい場合があります。または、カテゴリー特徴量が数値としてエンコードされることがあります(1=yes, 2=no などのように特徴量値にマップする場合)。 この場合、変換なしでは数値として解釈されます。

特定のケースでは、variable type(特徴量の型)変換は使用できません。整数値と浮動小数点値の両方に関して、DataRobotに特殊な列として識別された列のケースです。(日付は特殊なケースであり、変換をサポートします。単一の特徴量の変換を参照してください。)さらに、単一の一意の非数値を除くすべての数値の列は、特殊なものとして扱われます。この場合、DataRobotでは、一意の値がNaNに変換され、その値が失われることを防止するために変換が無効化されます。

備考

数値からカテゴリーへ特徴量の型を変換する場合、小数点以下の値は切り捨てられることに注意してください。値は整数に丸められます。また、欠損値を含む浮動小数点値をカテゴリー特徴量に変換する場合、新しい特徴量に変換されますが、丸め処理は行われません。たとえば、9.9は10ではなく、9になります。

ヒント

DataRobotで予測を行う場合、予測データに含まれる列は元のデータと同じであることが予期されます。モデルで元の特徴量と変換された特徴量を使用する場合、予測データでは、元の特徴量の名前を使用する必要があります。DataRobotの内部で派生した特徴量が生成されます。

バッチ変換を使って複数の特徴量のvariable type(特徴量の型)を同時に変換するか、1つの特徴量を個別に変換することができます。

複数の特徴量の変換

複数の特徴量の型をバッチ操作で変更するには、メニューから特徴量の型を変えるオプションを使用します。このオプションは、ある特徴量の型を持つすべての特徴量を変換する場合などに便利です。

すべての特徴量または複数の特徴量を特定の特徴量の型から別の特徴量の型に変換できます。たとえば、すべてのカテゴリー特徴量をテキストに変換することや、特定のカテゴリー特徴量だけを選択してテキストに変換することができます。変数量の型のバッチ変換を使用して作成されたすべての新しい特徴量は、データページのすべての特徴量から使用できます。(任意の特徴量セットの特徴量を変換できますが、バッチ変換が完了したときにデータページですべての特徴量を表示する必要があります。)新しい特徴量をその他の特徴量セットに追加できます。

ヒント

複数の特徴量を一度に変換する場合は、以下の点に注意してください。

  • 以前の変換操作の結果として作成された特徴量は変換できません。
  • バッチ変換に選択したすべての特徴量は同じvariable type(特徴量の型)である必要があります。
DataRobotで特徴量を変換できない場合は、特徴量のリストを修正してから変換を再試行してください。

  1. 最初に、次のいずれかの方法で変換する特徴量を選択します。

    • 特徴量を手動で選択する場合:変換する各特徴量を選択します(1)。以前に変換された特徴量が選択されていないこと(2)、および選択したすべてのvariable type(特徴量の型)が同じであること(3)を確認します。

    • 特定の特徴量の型のすべての特徴量を選択する場合:メニューの特徴量の型で特徴量を選択から、データセットで変換する特徴量の型を選択します。選択できるのはデータセットに含まれる特徴量の型だけです。

    その特徴量の型のすべての特徴量が選択済みとしてデータページに表示されます(左側のボックスがチェックされます)。

  2. メニューのアクション特徴量の型を変えるをクリックします。(リンクが無効化されている場合、選択した特徴量に問題があります。無効化されたリンクの上にカーソルを置くと、選択した特徴量を変換できない理由が表示されます。詳細については、変換のオプションと構文を参照してください。)

    特徴量の型を変えるダイアログが表示されます。

    備考

    DataRobotでは、1回の操作で最大500の特徴量を変換できます。変換に500以上の特徴量が選択されていることを示すメッセージが表示された場合、いくつかの特徴量の選択を解除する必要があります。

  3. 選択したvariable type(特徴量の型)で新しい特徴量を作成する方法を設定します。

要素 説明
選択された特徴量(1) 選択した特徴量の数、特徴量の型、および変換に選択されたすべての特徴量の名前が識別されます。
「特徴量の型を変える」オプション(2) 選択した特徴量が表示され、変換のターゲット特徴量の型を選択するよう求めるメッセージが表示されます。DataRobotで数値特徴量の型の特定の変換が実行されます。
新しい特徴量の接頭辞(3) 元の特徴量名に適用して変換後の特徴量の名前を作成する接頭辞を指定します。デフォルトの接頭辞(更新された_)を使用するか、独自の接頭辞を作成することができます。接頭辞を作成する場合は、$ - " . { } / \を含めないようにしてください。新しい特徴量の名前には、サフィックス、接頭辞、またはその両方が必要です。サフィックスを定義した場合、接頭辞は必須ではありません。
新しい特徴量のサフィックス(4) 元の特徴量名に適用して変換後の特徴量の名前を作成するサフィックスを指定します。デフォルトのサフィックス(新しい特徴量の型)を使用するか、独自のサフィックスを作成することができます。(サフィックスを作成する場合は、$ - " . { } / \を含めないようにしてください。新しい特徴量の名前には、サフィックス、接頭辞、またはその両方が必要です。接頭辞を定義した場合、サフィックスは必須ではありません。
新しい特徴量の名前(5) 新しい(変換済み)特徴量の命名方法を示します:prefix_[original feature name]_suffix(実際の接頭辞とサフィックスが使用されます)。
変更(6) 選択されたすべての特徴量から設定したターゲット特徴量の型で新しい特徴量が作成されます。

変更をクリックすると、選択した特徴量のリストが作成され、特徴量の型変換に送信されます。特徴量が選択され、変換が開始されたことを示すメッセージが表示されます。

バックグラウンドで変換済み特徴量が作成されます。処理が完了した新しい(変換済み)特徴量は、データページに表示されます(すべての特徴量)。変換に選択した特徴量の数によっては、変換処理が終了してすべての新しい特徴量が使用可能になるまでに数分かかることがあります。すべての変換が完了したことを示すメッセージが表示されます。

特徴量の変換の制限

DataRobotでは、一度に最大500の特徴量の変換がサポートされます。500を超える数の特徴量が選択されている場合、特徴量の型を変えるダイアログにメッセージが表示されます。

その場合、いくつかの特徴量の選択を解除して、選択されている特徴量の数を500以下にする必要があります。特徴量の選択を解除するには、ダイアログを閉じて、データページで特徴量の選択を解除します。

変換に選択した特徴量の数が500以下になったことを確認して、特徴量の型を変えるを選択します。

単一の特徴量の変換

単一の特徴量の型を変更するには、次のいずれかの方法を使用します。

  • 特徴量の変換メニューを表示し、特徴量の型を変える、または
  • 特徴量のヒストグラムを表示し、特徴量の型変換をクリックします。

いずれの方法でも同じダイアログが開きますが、ダイアログは選択した特徴量の型に応じて異なります。

カテゴリー特徴量の変換の設定を次の表に示します。

要素 説明
現在の特徴量の型変換(1) 特徴量に関連付けられた現在の特徴量の型が表示されます。
変換オプション(2) ドロップダウンを使用して、現在の特徴量で使用可能な特徴量の型から新しい特徴量の型を選択します。DataRobotで数値およびカテゴリー特徴量の型の特定の変換が実行されます。
新しい特徴量の名前(3) 新しい特徴量の名前を入力するフィールドが提供されます。デフォルトでは、新しい特徴量の型が追加された既存の特徴量名が使用されます。
特徴量セットの適用(4) 新しい特徴量を追加する特徴量セットを選択します。「すべての特徴量」に追加するか、ドロップダウン(5)を使用して特定のリストに追加します。
特徴量セットの選択(5) プロジェクトから特徴量セットを選択するドロップダウンが提供され、特徴量を追加するセットを選択できます。
特徴量の作成(6) 新しい特徴量を作成します。データページで新しい特徴量が元の特徴量の下に表示されます。

同じ特徴量から任意の数の変換を作成できます。デフォルトでは、各変換に一意の名前が適用されます。間違って作成された重複した特徴量は、重複としてマークされ、処理において無視されます。

日付変換の例を以下に示します。日付固有の派生を選択できます。また、結果をカテゴリーとして扱うか数値として扱うかを選択することもできます。

数値特徴量からカテゴリー型特徴量への変換の例を以下に示します。

オプションと構文の変換をクリックします。

PythonのNumexpパッケージを使用して列値(特徴量)のユーザー変換が作成されます。変換メニューから関数オプション f() を選択すると、ユーザー変換の構文を入力するダイアログが表示されます。以下に、DataRobotでのNumexprの使用方法と例を示します。

備考

DataRobot PrimeとDataRobot APIは、どちらも特徴量の型変換のみをサポートします。

変換を作成するには、特徴量名を中カッコ{}で囲んで入力し、適切な関数および演算子を適用します。DataRobotでは、特徴量名でオートコンプリート機能が提供されます。最初の中カッコの後ろをクリックすると、選択された特徴量のリストから選択できます。

以下の点に注意してください。

  • 特徴量名では大文字と小文字が区別されます。
  • 日付型のvariable type(特徴量の型)を変換することはできません。代わりに、派生した日付特徴量などから新しい特徴量を作成できます(Timestamp (Hour of Dayなど)。
  • ターゲットで特徴量の変換を行うことはできません。
使用可能な関数 説明
log({feature}) 自然対数
sqrt({feature}) 平方根
abs({feature}) 絶対値
where({feature1} 演算子 {feature2}, value-if-true, value-if-false) If-Then-Else(条件分岐)機能

使用できる2進算術演算子の一覧を以下に示します。(1 + 2) * (3 + 4)のようにカッコを使用して演算子のグループ化と順序設定を行います。単一の変換で複数の特徴量を呼ぶことができます({number_inpatient} + {num_medications}など)。

サポートされる算術演算子を以下に示します。

  • +(加算)
  • – (subtraction)
  • * (乗算)
  • /(除算)
  • **(べき乗)

比較演算子も使用できますが、where()関数(where({feature1} operator {feature2}, value-if-true, value-if-false)など)内にラップする必要があります。サポートされる比較演算子を以下に示します。

  • <、>(より小さい、より大きい)
  • ==(等しい)
  • !=(等しくない) * <=、>= (より小さいまたは等しい、より大きいまたは等しい)

欠損値を含む比較演算子

データセットに欠損値(NaN)がある場合、特徴量値と入力値を比較する変換を適用するには、特に配慮が必要です。NaN値との比較演算子を使用してステートメントを作成した場合(元の特徴量がNaNであれば、目標が派生した特徴量がNaNを返すことである場合)、必ず想定された動作と結果を比較してください。

例えば、次のステートメントを使用した特徴量salesからexcellent_salesへの変換では、売上がNaNである場合、常にFalesが返されます。特徴量salesのデータに欠損値がある場合であっても、欠損値は結果で返されません。

Excellent_Sales = where({Sales}>300000,1,0)

これが目的の結果でない場合、次のような式を検討してください。

Excellent_Sales = where(~({Sales} > 300000) & ~({Sales} <= 300000), {Sales}, where({Sales} > 300000, 1,0))

以下に変換の例をいくつか示します。

  • OrderOfMag = log({NumberOfLabs})
  • Success = sqrt({sales} + 10)
  • CostBreakdown = abs({sales} - {costs})
  • IsRich = where({YearlyIncome} > 1000000, 1, 0)

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