最終更新日:
【DataRobotを用いた異常検知】DataRobotシリーズ その2
こんにちは。スキルアップAIの東です。
前回の「【DataRobotの基本的な使い方】DataRobotシリーズ その1」では、DataRobotの基本的な使い方についてご紹介しました。
前回は簡単な線形回帰モデルの作成方法をご説明しましたが、DataRobotでは異常検知も行うことができます。今回は、DataRobotを用いた異常検知の方法についてご説明します。
第1回「DataRobotの基本的な使い方」はこちら
DataRobotシリーズの記事一覧はこちら
1.異常検知の考え方
異常検知とは、データが正常か異常かを判定するタスクです。異常はそもそもめったに起こらず、異常ラベルのついたデータは極めて希少であるため、異常検知は二値分類問題とは区別されます。
異常検知では、正常のパターンを定義した上で、そのパターンから大きく外れたデータを異常であると定義し、未知のデータに対して異常か正常化を判定します。異常検知の具体的なタスクとしては、例えば、クレジットカードの不正利用や機器における故障の検知などが挙げられます。
異常検知とは|意味や事例、メリット、代表的な手法、導入課題を解説
2.DataRobotを用いた異常検知
では、ここからは具体的にDataRobotを用いて異常検知を行う方法をご説明します。
まずはDataRobotにログインした後、用意したデータを正常に読み込むための設定から行います。
今回扱うデータはExcelファイルであるため、画面左の欄にある「BOMを含める」をオンにします。BOM(Byte Order Mark)はファイルの先頭に3バイトを加えてエンコードを示すために使用されるバイトシーケンスです。
次に、用意したデータセットの読み込みを行います。
まずホーム画面中央の「機械学習の開発」から新しいプロジェクトを作成します。
画面の中央にある青枠内にダウンロードしたデータ「bleedout_unsupervised_train.xlsx」をドラッグ&ドロップして、xlsxファイルをアップロードします。
データのアップロードが完了すると、以下の画面に遷移します。
以上でデータの読み込みが完了しました。
次に、この読み込んだデータを用いてモデリングを行います。
中央の「開始」ボタンをクリックするとモデリングが開始されます。
ここで、「開始」ボタン下のモデリングモードを「クイック」にすると、通常の4分の1程度の時間で完了することができます。
以上でモデリングが完了しました。
モデリングができたので、次にモデル評価の確認を行います。
ここでは、DataRobotが擬似的に作成したデータを用いて評価を行います。
「合成AUC」と表示されている所をクリックすることでモデル評価を確認できます。合成AUCと合成LogLossの2種類が算出されます。
合成AUCは1に近づくほど精度が良いことを表し、合成LogLossは0に近づくほど精度が良いことを表しています。
合成AUCと合成LogLossは、疑似的に作成されたデータをもとに算出されたAUCとLogLossであるため、ある程度のモデルの評価には使えますが、実際のデータを扱っているわけではないので実運用時の正確な精度についてはわからないという点に注意が必要です。
次に、異常スコアに影響している特徴量を確認します。
いくつかのモデルが表示されるので、確認したいモデルを選択します。
「解釈」タブの「特徴量のインパクト」を開き、「特徴量のインパクトを有効化」をクリックすることで、特徴量のインパクトを確認できます。
特徴量のインパクトでは、異常スコアに対する各特徴量の影響度を表しており、影響度が大きい特徴量を確認できます。
以上でモデルに大きな影響を与えている特徴量を確認できました。
④「疑似的な評価の確認」では疑似的なデータを用いてモデルの評価を確認しました。しかし、実運用時のモデルの正確な予測精度についてはまだ確認できていません。
そこで、実運用時のモデルの正確な予測精度を検証するため、用意したテストデータを用いて外部テストの実行を行います。
ここから、外部テストの実行を行っていきます。
用意したテストデータ「bleedout_unsupervised_test.xlsx」をドラッグ&ドロップして、xlsxファイルをアップロードします。
テストデータの読み込みが完了したら、外部テストを実行します。
以上で外部テストの実行が完了しました。
以下の画像の場合ですと、「Local Outlier Factor Anomaly Detection with Calibration」のAUCが最も高く、精度が良いことが確認できます。
以下の動画では、DataRobotの社員の方に、DataRobotとはどのような会社なのか、また注力されているAI教育への取り組みなどを伺いました。 DataRobotについて詳しく知りたい方は、合わせてチェックしてみてください。
3.まとめ
今回は、DataRobotを用いた異常検知の手順についてご紹介しました。
学習を実行した直後に合成AUCや合成LogLossといった評価指標が出力されますが、これらはあくまでも疑似的なものですので、実際に使うモデルを選定する際は外部テストデータを用いた評価を別途行ってから判断するのがよいでしょう。
スキルアップAIでは、関連講座として「現場で使えるAIプランニング・プロジェクト推進基礎講座(DataRobot活用編)」を開講中です。 本講座では、AIプランニング・プロジェクト推進基礎講座で学ぶPoCフェーズにおいて、実際にDataRobotを活用してケースデータに対してPoCを実施することで、アイディエーションに留まらないプロジェクト推進のイメージを持てるように工夫しています。是非ご検討ください。
また、毎週水曜日に実践的AI勉強会「スキルアップAIキャンプ」を開催しています。勉強会では、様々な実践的テーマを取り上げ、データ分析・AI開発の実務力アップにつながるヒントをご提供します。講師が参加者の皆さんからの質問や悩みに答えるコーナーもあります。
興味がある方はぜひ参加してみてください!
第1回「DataRobotの基本的な使い方」はこちら
DataRobotシリーズの記事一覧はこちら
【監修】スキルアップAI 取締役CTO 小縣信也
AI指導実績は国内トップクラス。「太陽光発電発電量予測および異常検知」など、多数のAI開発案件を手掛けている。日本ディープラーニング協会主催2018E資格試験 優秀賞受賞、2019#1E資格試験優秀賞受賞。著書「徹底攻略ディープラーニングE資格エンジニア問題集」(インプレス)。
配信を希望される方はこちら
また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
公開日: