エンドツーエンドの特徴量探索¶
このページでは、特徴量探索を使用して、さまざまな詳細度のデータセットを組み合わせ、自動化された特徴量エンジニアリングを実行する方法について説明します。
多くの場合、特徴量は複数のデータアセットに分割されます。 これらのデータアセットをまとめるには、それらを結合してから、さらに機械学習モデルを実行するので、多くの作業が必要となります。 データセットの詳細度が異なる場合、さらに難しくなります。 この場合、データを正常に結合するには集計する必要があります。
特徴量探索では、データセットを結合および集計する手順を自動化することで、この問題を解決します。 データセットの結合方法を定義した後、特徴量の生成とモデリングをDataRobotに任せます。
以下の例では、食料品購入のためのオンラインアグリゲーターであるInstacartから取得したデータを使用しています。 ビジネスの問題は、顧客がバナナを購入する可能性が高いかどうかを予測することです。
要点¶
このページでは、以下の方法について説明します。
- プロジェクトへのデータセットの追加
- 関係性を定義
- 結合条件の設定
- 時間を考慮した設定の構成
- 特徴量探索中に生成された特徴量の確認
- 特徴量探索を使用して構築されたモデルのスコアリング
AIカタログへのデータセットのロード¶
このページの例では、次のデータセットを使用します。
表 | 説明 |
---|---|
ユーザー | ユーザーおよび特定の注文日にバナナを購入したかどうかに関する情報。 |
Orders | ユーザーによる過去の注文。 1つのUserレコードが複数のOrderレコードと結合されます。 |
Transactions | ユーザーが注文で購入した特定の製品。 1つのOrderレコードが複数のTransationレコードと結合されます。 |
これらのテーブルにはそれぞれ異なる分析単位があり、誰が、何を予測するのかだけでなく、予測の詳細度を定義します。 これは、テーブルを結合して、適切な分析単位で良好な結果が得られるようにする方法を示します。
まず、プライマリーデータセットをロードします。これは、予測するターゲット特徴量を含むデータセットです。
-
AIカタログに移動し、アップロードする各データセットに対して、カタログに追加をクリックします。
たとえば、データソースへの接続またはローカルファイルのアップロードなど、さまざまな方法でデータを追加できます。
-
すべてのデータセットがアップロードされたら、プライマリーデータセットにするデータセットを選択し、右上にあるプロジェクトを作成をクリックします。
セカンダリーデータセットを追加¶
データセットをAIカタログにアップロードしたら、作成したプロジェクトのプライマリーデータセットにセカンダリーデータセットを追加できます。
-
作成したプロジェクトでターゲットを指定し、セカンダリーデータセットで、データセットを追加をクリックします。
-
関係性エディターの予測ポイントを指定するページで、予測ポイントとして使用する日付特徴量を選択で、プライマリーデータセットを時間でインデックス化する特徴量を選択します。 次に、予測ポイントとして設定をクリックします。
このデータセットでは、日付特徴量は
time
です。 -
関係性エディターのデータセットを追加ページで、AIカタログを選択します。
-
データセットを追加ウィンドウで、追加する各データセットの隣にある選択をクリックし、追加をクリックします。
-
続行をクリックして、選択を確定します。
関係性を定義¶
次に、たとえば結合する列など、データセットを結合する条件を指定して、データセット間の関係性を作成します。 データに必要な場合は、時間認識の設定を行うこともできます。
-
関係性を定義ページで、セカンダリーデータセットをクリックして強調表示し、プライマリーデータセットタイルの下部に表示されるプラス記号をクリックします。
-
結合条件を設定します。この場合は、結合する列を指定します。 DataRobotでは、
user_id
列を結合に使用することを推奨します。 保存して時間対応を設定するをクリックします。複数の結合条件を持つ複雑な関係性の構築
単一の列ではなく、より複雑な結合操作のための特徴量のリストを追加できます。 + 結合条件をクリックし、特徴量を選択して複雑な関係性を構築します。
-
セカンダリーデータセットと特徴量派生ウィンドウから時間特徴量を選択し、保存をクリックします。
時間認識オプション設定の詳細については、 時系列モデリングを参照してください。
-
これらのステップを繰り返して、他のセカンダリーデータセットを追加します。
この例では、3つのデータセットが、これらの関係性に結合されています。
モデルの構築¶
セカンダリーデータセットが配置され、DataRobotが結合方法を理解したら、プロジェクトに戻ってモデリングを開始できます。
-
右上のプロジェクトを続けるをクリックします。
メインのデータページに戻り、セカンダリーデータセットの下に、Ordersセカンダリーデータセットに2つの関係性が定義され、Transactionsセカンダリーデータセットに1つの関係性が定義されていることがわかります。
-
開始をクリックしてモデリングを開始します。
DataRobotは、セカンダリーデータセットをロードし、特徴量を検出します。
次のセクションでは、それらを分析する方法について学びます。
派生した特徴量のレビュー¶
DataRobotでは、数百個の特徴量が自動的に生成され、冗長な特徴量またはモデルの精度に影響が少ない特徴量が削除されます。
備考
DataRobotがあまり有用でない特徴量を削除しないようにするには、特徴量探索の設定ページにある 特徴量の削減タブで、教師付き特徴量の削減をオフにします。
EDA2が完了したら、派生した特徴量のレビューを開始できます。
-
データタブで、派生した特徴量をクリックし、ヒストグラムタブを表示します。
派生した特徴量名には、データセットのエイリアスと変換のタイプが含まれます。 この例における変換は、各月の日ごとのユニークな注文数です。
-
特徴量の系統タブをクリックして、この特徴量がどのように作成されたかを確認します。
-
データページの一番上までスクロールし、特徴量探索タブを開きます。 メニューアイコン をクリックし、以下で説明するアクションを使用して、DataRobotでの特徴量探索の処理方法の詳細を確認します。
派生した特徴量がどのように構築されているかを把握するには、SQLをダウンロードをクリックします。
派生した特徴量を含む新しいデータセットをダウンロードするには、データセットをダウンロードをクリックします。
DataRobotが特徴量の派生と削減に使用した処理を把握するには、特徴量派生ログをクリックします。
特徴量派生ログには、処理、生成、削除された特徴量に関する情報に加えて、特徴量が削除された理由が表示されます。 必要に応じて、ダウンロードをクリックしてログを保存できます。
特徴量探索で構築されたモデルのスコアリング¶
特徴量探索で構築されたモデルをスコアリングする場合、セカンダリーデータセットが最新であること、およびその特徴量の派生が問題なく完了することを確認する必要があります。
特徴量探索で構築されたモデルで、予測を作成するには:
-
モデルページで、リーダーボードタブをクリックし、デプロイ用に選択したモデルをクリックします。
-
予測をクリックし、予測データセットの下にあるデータのインポート元をクリックして、スコアリングデータセットをインポートします。
データセットには、プロジェクトの作成に使用したデータセットと同じスキーマが必要です。 ターゲット列はオプションであり、この時点で、セカンダリーデータセットをアップロードする必要はありません。
-
データセットがアップロードされたら、予測を計算をクリックします。
-
セカンダリーデータセットのデフォルト設定を変更するには、セカンダリーデータセットの設定で、変更をクリックします。
スコアリングデータの期間が異なる場合、セカンダリーデータセットの設定を更新する必要があり、トレーニングフェーズで使用されるセカンダリーデータセットと結合できません。
-
新しい設定を追加するには、新しく作成をクリックします。
-
セカンダリーデータセットを置き換えるには、セカンダリーデータセットの設定ウィンドウで、セカンダリーデータセットを見つけて置換をクリックします。
備考
セカンダリーデータセットを置換する必要がある場合は、DataRobotにスコアリングデータセットをアップロードする前に行ってください。 そうでない場合、DataRobotは、デフォルト設定を使用して結合を計算し、特徴量派生を実行します。