モデルのパフォーマンス低下テスト
モデルがトレーニングおよびデプロイされた後、トレーニング データとスコア付けされるデータの間の差異により、予測パフォーマンスがある程度低下する可能性があります。このページでは、モデルをテストして、そのパフォーマンスが事前に定義された許容範囲内にあることを確認する方法について説明します。
モデルのトレーニング
この例では、無料で利用できる Bank Marketing データセットを使用します。このデータは、提供されている定期預金 (金融商品の一種) に申し込むマーケティング キャンペーンの対象となったポルトガルの銀行の顧客 41,188 人の人口統計情報、顧客関係情報、経済状況情報で構成されています。目標は、クライアントがオファーを受け入れるかどうかを予測することです。これは分類タスクです。
データセットを 3 つのセットに分割します。トレーニング データセットと検証データセットは最初の 39,000 クライアントで構成され、2007 年から 2009 年のマーケティング データを表します (日付はデータセットに含まれる 3M LIBOR カラムを使用して検証されます)。残りの 2,188 クライアントは 2010 年にサンプリングされ、運用設定におけるパフォーマンスの低下についてモデルをテストするために使用されます。
モデルのトレーニング ワークフローは次のとおりです。
2007 年から 2009 年のマーケティング データを含むデータセットを、モデル検証用のトレーニング セットとテスト セットに分割しました。インデックスとターゲット変数を除くデータセット内のすべてのカラムを使用してトレーニング データにロジスティック回帰モデルを構築し、ROC 曲線を生成してテスト データに対するトレーニング済みのロジスティック回帰モデルのパフォーマンスを検証します。
このモデルはテストデータで満足のいくパフォーマンスを示したので、他の運用ワークフローで使用するために、モデルをローカルの TIBCO Data Science - Team Studio ワークスペースにエクスポートします。
運用ワークフローでのモデルのテスト
モデルがトレーニングされた基礎となるデータセットがテストされたデータセットと大幅に異なる場合、トレーニングされたモデルは運用設定でパフォーマンスが低下する可能性があります。これは、さまざまなシナリオをカバーする十分に大規模で多様なデータセットでモデルがトレーニングされていない場合によく発生します。別の可能性としては、古いデータセットと比較して、新しいデータセットの構成に重大な変化が生じた場合が考えられます。たとえば、消費者金融データセットのデフォルト率は金融危機の間に劇的に変化しました。より穏やかな融資環境でトレーニングされた予測モデルは、この変化を適切に予測できませんでした。
次のワークフローでは、最近利用可能な銀行マーケティング データに対する事前定義モデルのパフォーマンスをチェックするメカニズムを作成します。モデルのパフォーマンスが引き続き満足のいくものである場合は、実稼働環境で使用するためにモデルをスコアリング エンジンにプッシュします。そうでない場合は、警告メールを送信して関係者にこの失敗を通知します。全体的なワークフローは次のようになります。
まず、ローカルの TIBCO Data Science - Team Studio ワークスペースから保存されたモデルをロードします。ロードされたモデルと最新のデータセットに対して予測器オペレーターを実行し、新しいエラー変数を導入して行ごとの予測エラーをチェックします
error 変数は、実際のターゲット値 (accepted_offer) とモデルによって予測された値 (PRED_LOR) を比較し、これらが一致する場合は 1 に設定されます。値が同一ではありません。集計オペレーターを使用してデータセット全体の平均エラー率を計算し、エラー数を数えます。モデルのエラー率は 5% 未満であることが予想され、行フィルター オペレーターを使用してエラー率が高すぎる (つまり、0.05 より大きい) かどうかをチェックします。最後に、フロー制御オペレーターを使用して、このデータセットに対するモデルのパフォーマンスに応じて実行するアクションを決定します。
エラー率がしきい値を超えると、以下の最初のサブ・フローが実行され、モデルのパフォーマンスが低下する可能性があることを通知する電子メールが関係者に送信されます。一方、エラー率がしきい値を下回る場合は、以下の 2 番目のサブ・フローが実行され、モデルの PMML 形式がスコアリング エンジンにプッシュされます。読み込まれたモデルと最新のデータセットに対して 予測器 オペレーターを実行し、新しい エラー変数を導入して行単位の予測エラーをチェックします。
最後のアクション [スコアリング エンジンへの PMML のプッシュ (Push PMML to Scoring Engine) ] と [関係者へのメールの送信 (Send email to stakeholders) ] は、TIBCO Data Science - Team Studio のカスタム オペレーター SDK を使用して構築されたカスタム オペレーターであり、TIBCO Data Science - Team Studio のコアサービスの一部としては利用できないことに注意してください。