COMPANY

PAGE TOP

BLOG

時系列センサデータから異常検出モデルを作成

製造業の皆さまに共通の課題<時系列センサデータから異常を検出する方法>について、
本記事では前処理が完了したデータセットを使ってモデルを作成する方法をご紹介します。
前処理の方法についてはこちらの記事をご覧ください。

<ビジネスケース>
ある半導体の検査装置では、製造した半導体が出荷OKの良品か出荷NGの不良品かをチェックしています。
製造した半導体の多くは出荷可能な良品ですが、まれに出荷不可な不良品が混じっています。
この不良品を自動的に検出するにはどうすればよいでしょうか?

ここでは、UCI Machine Learning RepositoryのSECOMデータセットを利用して前処理を進めていきます。
前処理が完了したSECOMデータセットはこのような形になります。

このデータセットを使って、RapidMinerで異常検知モデルを作成していきます。

まず、「ReadCSV」オペレータを配置し、データセットを読み込みます。
このとき、WIDは【id】の役割を、状態ラベルは【label】の役割を付与します。

次に、「Decision Tree」オペレータを配置します。
ここでは、正常/異常を分類するため、分類モデルである決定木アルゴリズムを用いています。
結果を解釈しやすいため採用しました。
実行パラメータはデフォルトのままにします。

作成したプロセスを実行すると、次のような結果を得られます。

異常のパターンは、期間内のセンサ1の合計値、センサ9の標準偏差に着目すればよいことが分かります。
このようにして異常検出モデルを作成します。

作成したモデルを新規データに当てはめれば異常を検出できますが、
その前に、更なる前処理(標準化やサンプリング)や交差検証を行い、
精度を高めることが必要です。

この機能もRapidMinerに備わっていますので、ぜひ試してみて下さい!
$$ \begin{aligned} \newcommand\argmin{\mathop{\rm arg~min}\limits} \boldsymbol{\beta}_{\text{ridge}} & = \argmin_{\boldsymbol{\beta} \in \mathcal{R^p}} \biggl[ ||\boldsymbol{y}-\boldsymbol{X\beta}||^2 + \lambda ||\boldsymbol{\beta}||^2 \biggr] \\ & = (\boldsymbol{X}^T\boldsymbol{X} + \lambda\boldsymbol{I_{p+1}})^{-1}\boldsymbol{X}^T\boldsymbol{y} \end{aligned} $$
PAGE TOP