RapidMinerでデータドリフトを可視化する - Natic | Application Modernization Platform – 日商エレクトロニクス
RapidMinerでデータドリフトを可視化する

目次 Table of Contents
1.はじめに
みなさん、運用開始後に「モデルの予測精度」が低下していることに気が付いた場合、どのように対応されていますでしょうか。
例えば、運用開始後の「データの分布」が学習データと変化していないかをチェックされたりはしていないでしょうか?
「データの分布」のずれを可視化する機能を一から開発するのも大変ですよね。
そこで本記事ではデータ分析ツール“RapidMiner”の「データドリフト機能」についてご紹介いたします。
<補足>
- 学習時のデータの分布と運用開始後のデータの分布に「ずれ」が生じている状態を「データドリフト」と呼びます。
- 「ずれ」が生じていることで学習時のデータをもとに作成したモデルに新たなデータがフィットせず、モデルが劣化し、予測精度が落ちてしまう可能性があります。
2.データの分布の「ずれ」とは?
まずは「データ分布」について説明します。
例えば、観測地点「東京」の「2013年~2022年」と「1913年~1922年」の8月の日別最高気温についてみてみましょう。
(*)データ出典:気象庁|過去の気象データ・ダウンロード
1913~1922年、2013~2022年それぞれ「10年間の8月における31日間(=310個ずつ)」のデータを気温1度単位でプロットしてみました。
上記のグラフは実数の分布を表したものですが、各データの「確率分布図」についても見てみたいと思います。データの分布が右斜め下へスライドしているのがわかると思います。
縦軸が「確率密度」で横軸は「最高気温」を表しています。例えば、「2013-2022」のグラフでは最高気温(℃)が26度より低いデータの割合が少ないことがわかりますが、これは発生頻度が「ごくまれ」であるというように解釈できます。
ちなみに図はRapidMinerのビジュアライゼーション機能(Bell Curve)で作成したものです。
3.データの分布が変わることの影響
それでは、「データの分布」が変わると予測精度に影響があるかを検証してみたいと思います。
①検証概要
データ:サンプルデータ(RapidMinerのサンプルデータ自動生成機能(*)を用いて作成)
予測する値:ダイレクトメールに反応のある顧客 (response :反応あり/ no response:反応なし)
説明変数:
変数名 | データ型 |
---|---|
earning(所得) | 数値 |
age(年齢) | 数値 |
family status(既婚/独身) | カテゴリ変数 |
lifestyle(生活スタイル) | カテゴリ変数 |
car(車) | カテゴリ変数 |
sports(スポーツ) | カテゴリ変数 |
データ数:1,000
予測モデルのアルゴリズム:ランダムフォレスト
検証方法:K-fold法(k=5)で交差検証を実施する
(*)RapidMinerの「Generate Mail Marketing Data」オペレーターを利用しています。
②評価指標
(1)混同行列(学習データの評価)
(2)AUC
(3)モデルに対する各説明変数の重要度
earning/age/sportsのデータ分布が変わったときに予測精度にどのような影響があるか③以降で検証します。
今回のモデルについて、重要度が相対的に高い説明変数「(A)earnings/(B)age」と低い説明変数「(C)sports」の「データ分布」を変化させてみます。
③検証
「データの分布」を変えた場合、予測精度に影響が出るのかを確認します。
(A) earning
学習データ(TRAINING)と学習データからの分布変更後(DRIFT)の確率分布図
平均値 | 標準偏差 | |
---|---|---|
学習データ(TRAINING) | 85,329.23 | 37,182.98 |
earningドリフト時(DRIFT) | 103,896.72 | 44,333.84 |
(1)混同行列
(2)AUC
(B) Age
学習データ(TRAINING)とデータドリフト時(DRIFT)の確率分布図
平均値 | 標準偏差 | |
---|---|---|
学習データ(TRAINING) | 41.27 | 15.88 |
Ageドリフト時(DRIFT) | 50.04 | 17.15 |
(1)混同行列
(2)AUC
(C) sports
学習データ(TRAINING)とデータドリフト時(DRIFT)の集計グラフ(人数)
badminton | soccer | athletics | 合計 | |
---|---|---|---|---|
学習データ(TRAINING) | 311 | 359 | 30 | 1,000 |
sportsドリフト時(DRIFT) | 0 | 0 | 1,000 | 1,000 |
(1)混同行列
(2)AUC
④検証結果まとめ
(A)earnings(B)ageのデータドリフト時には、予測精度への影響が見られることがわかりました。
((A)(B)はモデルへの重要度が相対的に高い説明変数ではありましたが、他のデータ・モデルでの比較検証も必要と思いました。あくまで本サンプルデータを用いた検証の結果とご理解ください。)
実際の運用場面では、予測精度が悪くなっていった場合、複数の要因を分析するかと思います。その際に「データの分布」が変わっている可能性も視野に入れ、調査・対処ができるとよいですね。
正解率(Accuracy) | 適合率(Precision) | AUC | |
---|---|---|---|
モデル作成時 | 94.70% | 92.14% | 0.95226 |
(A)earningsのデータドリフト時 | 73.30% | 56.14% | 0.72773 |
(B)ageのデータドリフト時 | 59.80% | 41.18% | 0.65345 |
(C)sportsのデータドリフト時 | 96.40% | 95.53% | 0.99498 |
(補足)正解率/適合率は100%に近づくほど正しく予測できている、AUCは1に近づくほどよいと判断します。
4.RapidMinerにおけるData Drift可視化機能
RapidMinerでは学習時と運用時の「データの分布差異」を可視化する「Data Drift」機能がございます。(「Data Drift」はRapidMinerの運用監視機能Deploymentsの一機能になります。)
<運用イメージ>
- 運用データ(正解ラベル付き)で「予測精度」チェックした結果、「正解率」が低下していることが判明
- どの説明変数で「データドリフト」が発生しているかのチェックを行う(なぜ精度が低下したかの調査につながる)
- (精度低下の背景・要因を踏まえ)モデルの再作成を実施する
以下が「Data Drift」機能で表示されるグラフのイメージです。
「Training」が学習時のデータ、「Scoring」が運用時のデータの確率分布図を表しています。
この情報より「Data Drift」具合が分かるようになっています。
※1説明変数に対する確率分布図(学習データ:Training、運用データ:Scoring)。
また「各説明変数のデータドリフト率」と「モデルへの各説明変数の重要度」をプロットした図も表示可能です。
5.まとめ
予測モデル運用開始後に予測精度の低下に気が付いた場合、「Data Drift」からインサイトを得て、より深く調査するべき説明変数の当たりをつけることができるかもしれません。
説明変数の当たりをつけたら、データドリフトが発生した背景や要因、データドリフトによって精度が低下しているのかを調査します。
背景・要因を踏まえて、モデルの再作成を実施するなど対応を検討します。
本記事ではAI/機械学習モデルの劣化を引き起こす可能性のある「データドリフト」についてご紹介いたしました。
RapidMiner(*1)では「ノーコード」で「Data Drift」を可視化することが可能です。またその他に「処理時間」や「正解率」の推移(*2)などのモニタリング機能やアラート機能 (Deployments機能)がございます。
なお、モデルの作成をノーコードで実装できる「Auto Model」といった機能もございます。
「ノーコード」での「機械学習モデル作成・運用」にご興味がある方はぜひ弊社へお問い合わせください。
製品情報:Business Data Science Platform – Natic | 日商エレクトロニクス
(*2)予測データに対する正解データの入手が可能であれば、事後で正解率を算出する機能です。
参考資料:Deployments – RapidMiner Documentation
記事担当者::アプリケーション事業推進部 長井典子
投稿日:2022/09/30