# データ漏洩

データ漏洩とは、機械学習アルゴリズムのトレーニングに使用されるデータに、予測しようとしている情報が含まれていることを意味します。これにより、トレーニング中のモデルのパフォーマンスが現実よりも高くなり、モデルのパフォーマンスの信頼性が失われる可能性があります。データ漏洩を特定および防止して、信頼性の高い予測を得る方法を学びます。

一般的に、データ漏洩は少なくとも次のいずれかによって発生します。

* トレーニング セット内の 1 つ以上の特徴量を、予測しようとするターゲット変数を導き出すために使用できる場合。たとえば、ターゲットが Sales 項目であり、特徴量の 1 つが Salesから計算される Sales Tax 項目であるとします。

* トレーニング セット内の 1 つ以上の特徴量に、予測時には認識されていない情報が含まれている場合。

次のテーブルでは、Stage という列は、予測する Stage (Binary) の列と重複しています。トレーニング データセットに Stage を含めることで、予想される結果に対する答えが提供され、モデルのスコアが高くなります。

Stage (Binary)Stage (Binary) のターゲット列の情報を含む、StageStage の「漏洩列」を含むテーブル

| Total Employees | Annual Revenue (M$) | Lead Source | Forecast Deal ($) | Stage | Stage (Binary) |
| --- | --- | --- | --- | --- | --- |
| 12078 | 2705 | Partner | 369,000 | 6 - Closed/Lost | LOST |
| 10076 | 1783 | Inside sales | 71,000 | 6 - Closed/Won | WON |
| 8518 | 2114 | Inside sales | 294,000 | 6 - Closed/Lost | LOST |
| 3978 | 1159 | Sales rep | 214,000 | 6 - Closed/Won | WON |
| 3517 | 2285 | Marketing promo | 154,000 | 6 - Closed/Lost | LOST |
| 3370 | 97 | Customer referral | 41,000 | 6 - Closed/Won | WON |

## ターゲット漏洩

ターゲット漏洩はデータ漏洩の一種です。ターゲット漏洩は、特徴量データが予測に使用できるターゲット データを参照するときに発生します。参照、つまり「漏洩」は直接的であることも間接的であることもあります。

インテリジェント モデル最適化により、Qlik Predict はターゲット漏洩を識別し、漏洩がモデルに導入されるのを防ぎます。ターゲット漏洩を示す特徴量は自動的に検出され、モデル トレーニングから除外されます。インテリジェント モデル最適化の詳細については、「[インテリジェント モデル最適化](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/intelligent-model-optimization.htm)」を参照してください。

## データ漏洩の特定

データ漏洩を特定するには、「予測する時点でレコードに同じ情報があるか」、または「30 日後に同じレコードになっているか」などの質問について検討してください。トレーニング データセット内のすべてのデータは、ビジネス上の質問における時間的制約に関連している必要があることに注意してください。

モデルをトレーニングしたら、モデル メトリクスから次の手がかりを探すことができます。

* ハイ スコア: スコアは本当に高いか。例えば、F1 スコアは 85 を超えているか

* 特徴量の重要度: 1 つの特徴量の重要度が他の特徴量と比べてはるかに高いか

* ホールドアウト スコア: ホールドアウト スコアはクロス検証スコアと比べてかなり低いか

以下の表は、データ漏洩の原因となる一般的な特徴量の例を示しています。

| ビジネス ユース ケース | ターゲット | 漏洩の可能性がある特徴量 |
| --- | --- | --- |
| 販売機会は成立するか | 成立 (「はい」または「いいえ」) | ステージ、成立日、請求書の詳細、支払手数料 |
| 将来の取引額を予測する | 次回の取引額 | 税金、注文の詳細 |
| 見込み顧客は機会に変換するか | 変換 (「はい」または「いいえ」) | 機会の詳細、変換日 |
| 顧客はチャーンするか | チャーン (「はい」または「いいえ」) | チャーンの理由、チャーンの日付、静的な顧客の加入期間、顧客の温度感 |
| 従業員は自ら退職しているか | 退職 (「はい」または「いいえ」) | 退職面談の詳細、退職日、退職届の情報 |

## データ漏洩の防止

データ漏洩を防ぐ最善の方法は、構造化されたフレームワークを使用して、優れたビジネス上の質問とデータセットを取得することです。詳細については、「[機械学習の質問の定義](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/machine-learning-framework.htm)」を参照してください。

ヒント メモモデルのトレーニングで使用すべきではない漏洩列を特定した場合でも、その列をデータセットに保持できます。単に、機械学習実験のトレーニング データから、その特徴量を除外してください。