外れ値検出装置、外れ値検出方法、プログラム及び車両故障診断システム
【課題】非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行する外れ値検出装置等を提供する。
【解決手段】外れ値検出装置1が、データセットに含まれる各データを次元ごとにビット列に変換し、ビット列に基づいて、データセットの観測領域を構築する。次に、外れ値検出装置1が、データセットに含まれるデータの中から着目データを1つずつ決定し、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度に基づいて、着目データの外れ度合を算出する。
【解決手段】外れ値検出装置1が、データセットに含まれる各データを次元ごとにビット列に変換し、ビット列に基づいて、データセットの観測領域を構築する。次に、外れ値検出装置1が、データセットに含まれるデータの中から着目データを1つずつ決定し、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度に基づいて、着目データの外れ度合を算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置等に関するものである。
【背景技術】
【0002】
外れ値検出問題は、与えられたデータセットの中から、データ密度が低い領域に属するデータを外れ値として見つける問題と考えられる。外れ値検出問題を解く技術の応用例としては、データセットに含まれるノイズデータの除去処理(データスクリーニングの前処理)、クレジット取引のデータセットの中から通常行われていない取引を行っている顧客を検出する処理、生産ラインにおける生産物のデータセットの中から不良品を検出する処理などが考えられる。
【0003】
外れ値検出問題を解く技術としては、例えば、以下の3つが知られている。
・マハラノビス距離
・One−Class Support Vector Machine(以下、「OC−SVM」と省略。)
・Local
Outlier Factor(以下、「LOF」と省略。)
【0004】
非特許文献1には、マハラノビス距離について記載されている。非特許文献1では、与えられたデータセットの全体の重心(平均)と共分散行列を求め、各データに対して共分散行列を用いて正規化した重心との距離を求め、距離が大きいデータを外れ値とみなす。
マハラノビス距離では、データセットが多変量正規分布に従うことを仮定しており、データセットが多変量正規分布では記述できない場合、すなわちデータセットが非線形の場合、適切な外れ値を検出することができない。
【0005】
非特許文献2には、OC−SVMについて記載されている。非特許文献2では、入力されるデータセットを非線形写像によって高次の特徴空間Fに写像し、写像されたデータ群と原点を分離する超平面のうち、原点からの距離が最大のものを選択する。OC−SVMを外れ値検出問題に適用する場合には、一定割合のデータが超平面よりも原点側に分類されることを許すように超平面を決定し、原点側に分類されたデータを外れ値とみなす。
OC−SVMでは、解が求まり易い凸最適化問題を解くことによって、超平面を求めることができる。また、非線形写像を用いるので、非線形なデータセットに適用できる。
【0006】
非特許文献3には、LOFについて記載されている。非特許文献3では、まず、各データxに対し、データx自身に近いk個のデータとの距離の平均値を、データxのk近傍距離として求める。次に、{データxのk近傍距離÷周辺のデータk個のk近傍距離の平均値}を、データxのLOFとして求める。これらの処理から分かるように、データx自身のk近傍距離よりも、周辺のデータk個のk近傍距離の平均値が小さい程、LOFは大きな値を取る。そして、LOFが大きいデータを、外れ値とみなす。
LOFも、非線形なデータセットに適用できる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Mahalanobis, P.C., On the generalized distance in statistics,Proceedings of the National Institute of Science, 49-55, 1936
【非特許文献2】Scholkopf, B. et. al., Estimating the Support of a High-DimensionalDistribution, Neural computation, 7, 1443-1471, 2001
【非特許文献3】Breunig, M.M. et. al., LOF: Identifying Density-Based LocalOutliers, SIGMOD Conference, 93-104, 2000
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、前述の3つの従来技術は、以下の問題がある。
前述の通り、マラハノビス距離は、データセットが非線形の場合、適切な外れ値を検出することができないという問題がある。
【0009】
OC−SVMは、適切な非線形写像を選ぶことが難しいという未解決の問題がある。これは、非線形写像を決めるパラメータを人間が試行錯誤によって決定するパラメータチューニング作業が必要という課題に帰結する。
また、OC−SVMは、データ数が多い場合、最適化問題を解く為に時間がかかる。データ数をNとすると、何ら工夫をしなければ、OC−SVMの計算量のオーダーはО(Nの3乗)である。
【0010】
LOFは、適切なkを選ぶことが難しいという未解決の問題がある。これも、OC−SVMと同様、パラメータチューニング作業が必要という課題に帰結する。
また、LOFは、計算負荷も比較的高い。データ数をNとすると、何ら工夫をしなければ、LOFの計算量のオーダーはО(Nの2乗)である。
【0011】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行する外れ値検出装置等を提供することである。
【課題を解決するための手段】
【0012】
前述した目的を達成するために第1の発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置であって、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、を具備する外れ値検出装置である。
第1の発明によって、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行することができる。
【0013】
第1の発明における前記構築手段は、前記観測領域を二分決定グラフとして構築し、前記算出手段は、各ノードにおける局所密度から単一データの密度換算値を引いた値を単一データ除外局所密度とし、更に、前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出することが望ましい。
これによって、データ数をN、ノード数をDとすると、少なくとも、第1の発明の計算量のオーダーは、О(N×D)であり、OC−SVMやLOFよりも優位である。
【0014】
また、第1の発明における前記構築手段は、数値属性の次元に係る前記ビット列群を最上位ビットから最下位ビットの順に並び変えて、前記二分決定グラフを階層的に構築し、前記算出手段は、前記二分決定グラフでの前記着目データを表すパスを探索し、階層が変化するノードに係る前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出することが望ましい。
これによって、データセットの特性について事前に何も情報を持っていない場合にも、適切な外れ度合を算出することができる。
【0015】
また、前記算出手段は、例えば、階層が変化するノードに係る前記単一データ除外局所密度の一部若しくは全部の最大値、中央値又は平均値を、前記着目データの外れ度合とする。
また、第1の発明は、例えば、前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段、を更に具備しても良い。
【0016】
第2の発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出方法であって、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築ステップと、前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出ステップと、を含む外れ値検出方法である。
【0017】
第3の発明は、コンピュータを、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行し、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出手段と、を具備する外れ値検出装置として機能させる為のプログラムである。
【0018】
第4の発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置と、車両データを収集するデータ収集装置と、を含む車両故障診断システムであって、前記外れ値検出装置は、前記データ収集装置によって収集される前記車両データを前記データセットとし、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段と、を具備する車両故障診断システムである。
【発明の効果】
【0019】
本発明により、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行する外れ値検出装置等を提供することができる。
【図面の簡単な説明】
【0020】
【図1】外れ値検出装置のハードウエア構成図
【図2】外れ値検出装置の処理の詳細を示すフローチャート
【図3】データセットの変換処理を説明する図
【図4】カルノー図を示す図
【図5】二分決定グラフを示す図
【図6】最小項の数の算出処理を説明する図
【図7】最小項の数の算出結果を示す図
【図8】局所密度の算出処理を説明する図
【図9】局所密度の算出結果を示す図
【図10】LOO密度の算出結果を示す図
【図11】二分決定グラフにおける着目データを表すパスを示す図
【図12】カルノー図における着目データを表す領域を示す図
【図13】抽出されるLOO密度を説明する図
【図14】実施例1及び比較例に用いたデータセットを示す図
【図15】実施例1における外れ値の検出結果を示す図
【図16】比較例1における外れ値の検出結果を示す図
【図17】比較例2における外れ値の検出結果を示す図
【図18】比較例3における外れ値の検出結果を示す図
【図19】比較例4における外れ値の検出結果を示す図
【図20】実施例2における車両故障診断システムの構成図
【図21】実施例2における車両故障診断システムの処理を示すフローチャート
【図22】実施例2における外れ値の検出結果を示す図
【発明を実施するための形態】
【0021】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
本発明の実施形態では、与えられたデータセットの中から、データ密度が低い領域に属するデータを外れ値として見つける外れ値検出問題を解く。
最初に、クレジット取引を例にして、「データセット」について説明する。例えば、クレジット取引のデータセットとして、顧客の性別、顧客の年齢、取引金額の3種類の情報の組み合わせが単一のデータとして与えられる場合を考える。そして、x1=(男性、25歳、1万円)、x2=(女性、30歳、2万円)の2個のデータが、データセットとして与えられる場合を考える。
【0022】
上記の例では、データの次元数が「3」かつデータ数が「2」のデータセットが与えられていることになる。データの次元は、変量とも呼ばれる(例えば、多変量解析とは、多次元のデータを解析することを意味する。)。また、データ数は、サンプル数とも呼ばれる。
データの各次元は、カテゴリ属性又は数値属性のいずれかである。上記の例では、顧客の性別がカテゴリ属性、顧客の年齢や取引金額が数値属性である。
【0023】
また、データセットの他の例として、自動車の車載装置によって取得されるデータセットなどが考えられる。この場合、ある時刻に観測された車速、回転数、ACC(Auto Cruse Control)のON/OFFなどが、各次元(各変量)となる。車速、回転数は数値属性、ACCのON/OFFはカテゴリ属性である。そして、複数の時刻に観測される複数のデータが、データセットとして与えられる。
【0024】
以下では、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置について説明する。本発明の実施の形態における外れ値検出装置は、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行することができる。
【0025】
図1は、外れ値検出装置のハードウエア構成図である。尚、図1のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
【0026】
外れ値検出装置1は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される。
【0027】
制御部11は、CPU(Central Processing Unit)、ROM(Read Only
Memory)、RAM(Random Access Memory)等によって構成される。
【0028】
CPUは、記憶部12、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、外れ値検出装置1が行う後述する処理を実現する。
ROMは、不揮発性メモリであり、外れ値検出装置1のブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAMは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
【0029】
記憶部12は、HDD(ハードディスクドライブ)であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述する処理を外れ値検出装置1に実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0030】
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)等のメディア入出力装置を有する。
通信制御部14は、通信制御装置、通信ポート等を有し、外れ値検出装置1とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
【0031】
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部15を介して、外れ値検出装置1に対して、操作指示、動作指示、データ入力等を行うことができる。
表示部16は、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携して外れ値検出装置1のビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
【0032】
周辺機器I/F(インタフェース)部17は、外れ値検出装置1に周辺機器を接続させるためのポートであり、周辺機器I/F部17を介して外れ値検出装置1は周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USBやIEEE1394やRS−232C等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0033】
以上、外れ値検出装置1のハードウエア構成について説明したが、外れ値検出装置1として実装される装置は、この例に限定されない。例えば、外れ値検出装置1は、自動車などの車載装置、家電などの制御装置、生産ラインの不良品を検出する検品装置などに、後述する処理を実現する為のプログラムをインストールすることによって、自動車、家電、生産ラインなどの一部として実装されることもある。また、例えば、外れ値検出装置1は、複数のコンピュータから構成されるサーバ装置として実装されることもある。
以下では、外れ値検出装置1が単一のコンピュータによって実装されるものとして説明する。
【0034】
図2は、外れ値検出装置の処理の詳細を示すフローチャートである。以下では、必要に応じて図3〜図13を参照し、データセットの一例に対する処理の詳細を説明する。
【0035】
図2に示すように、外れ値検出装置1の制御部11は、入力手段(メディア入出力部13、通信制御部14、入力部15、周辺機器I/F部17等)を介して、データセットを入力する(S1)。また、制御部11は、記憶部12にファイルとして記憶されているデータセットを入力しても良い。
【0036】
図3は、データセットの変換処理を説明する図である。図3には、データセット21が図示されている。データセット21は、データの次元数が「2」、データ数が「19」である。各次元は数値属性であり、取り得る値は、0〜7の整数値である。
【0037】
制御部11は、図3に示されるデータセット21のように、正規化されたデータセットを入力する場合に限らず、生のデータセットを入力して正規化処理を行っても良い。例えば、制御部11は、生のデータセットに対して様々な加工処理を施して所定の範囲の整数値とする。
生のデータセットに含まれる一部の次元(変量)が数値属性の場合、制御部11は、細かく区切って離散化し、デジタル化する。制御部11は、例えば、実数値を小数点第1位において四捨五入して整数値とし、コンピュータがint型として扱うことが可能な値に変換する。取り得る範囲が極端に狭い、または広い場合、制御部11は、適当な係数をかけて想定する範囲に満遍なく収まるようにする。また、尺度が異なるデータが混ざっている場合、制御部11は、平均0、分散1に標準化する。また、分布が極端に偏っている場合、制御部11は、対数変換なども行う。
また、数値属性の次元(変量)の場合であっても、取り得る値が少ない場合、例えば0〜3の整数値しか取らない場合、制御部11は、カテゴリ属性の次元(変量)として取り扱っても良い。また、カテゴリ属性の次元(変量)の場合であっても、取り得る値に何らかの距離の概念が導入できる場合、制御部11は、数値属性の次元(変量)として取り扱っても良い。
【0038】
図2の説明に戻る。次に、制御部11は、各データを次元(変量)ごとにビット列に変換する(S2)。図3には、データx1に対するビット列22a、データx2に対するビット列22bが図示されている。例えば、データx1=6に対するビット列22aは、(d1,d2,d3)=(1,1,0)である。また、例えば、データx2=2に対するビット列22bは、(e1,e2,e3)=(0,1,0)である。
【0039】
次に、制御部11は、数値属性のビット列群を最上位ビットから最下位ビットの順に並び替える(S3)。図3には、並び替え後ビット列23が図示されている。例えば、(d1,d2,d3)=(1,1,0)のビット列22a、及び(e1,e2,e3)=(0,1,0)のビット列22bに対して、並び替え後ビット列23は、(d1,e1,d2,e2,d3,e3)=(1,0,1,1,0,0)である。
以下では、d1とe1のように最も左端のビットを「最上位ビット」(MSB:Most Significant Bit)、d3とe3のように最も右端のビットを「最下位ビット」(LSB:Least Significant Bit)とする。
【0040】
尚、S3における並び替えの処理は、必ずしも必須ではない。S3における並び替えの処理は、全ての次元(変量)を同等に扱うことになるので、データセットの特性について事前に何らかの情報を持っている場合、並び替えを行わない方が良いこともある。例えば、x1の次元(変量)は、データの特徴を良く表しており、x2の次元(変量)は、ほとんど変化がなく、データの特徴をあまり表していないことが分かっている場合には、S3における並び替えの処理を行わず、両者を同等に扱わない方が良い。
S3における並び替えの処理は、データセットの特性について事前に何も情報を持っていない場合に有効である。
【0041】
また、カテゴリ属性のビット列群は、数値属性のビット列群と区別し、カテゴリ属性のビット列が上位、数値属性のビット列が下位となるように並べることが望ましい。例えば、図3に示す数値属性のx1、x2の他に、カテゴリ属性のx3を含むデータを考え、カテゴリ属性のx3を変換したビット列を(f1,f2,f3)とする。この場合、制御部11は、(f1,f2,f3,d1,e1,d2,e2,d3,e3)の順に並び替えることが望ましい。
カテゴリ属性と数値属性を分けた理由は、一般にカテゴリ属性の取り得る値に対して距離の概念を導入することができず、数値属性と一緒に取り扱うことが困難だからである。
データセットの特性について事前に何も情報を持っていない場合、カテゴリ属性同士や数値属性同士は、どちらが上位になっても構わない。
【0042】
図2の説明に戻る。次に、制御部11は、観測領域Fとして二分決定グラフを構築する(S4)。制御部11は、観測領域Fとして、二分決定グラフ(BDD:Binary Decision Diagram)ではなく、カルノー図などを構築しても良い。二分決定グラフ及びカルノー図のいずれも、論理関数を表現するために使われるデータ構造の1つである。つまり、観測領域Fは、論理関数を表現できれば良い。
【0043】
尚、後述するように、観測領域Fとして二分決定グラフを構築する場合、外れ値検出装置1は、データ数が増大しても、実用的な時間内に外れ値の検出を支援又は実行することができる。以下では、混乱を避ける為に、外れ値検出装置1が、観測領域Fとして二分決定グラフを構築する場合について説明する。また、外れ値検出装置1の処理を分かり易く説明する為に、カルノー図も例示する。
【0044】
図4は、カルノー図を示す図である。
図4に示すカルノー図30aは、図3に示すビット列22aの(d1,d2,d3)を縦、図3に示すビット列22bの(e1,e2,e3)を横に配置している。黒の正方形の1個分が、1個のデータに対応する。従って、図4に示すカルノー図30aには、19個の黒の正方形が図示されている。
【0045】
図5は、二分決定グラフを示す図である。図5に示す二分決定グラフ31は、図3の並び替え後ビット列23に基づいて構築されたものである。
二分決定グラフは、コンピュータにおいてポインタの配列で表現されるので、必要な記憶容量を減らすことができる。また、既約な順序付き二分決定グラフの場合、論理関数同士の演算がグラフのサイズにほぼ比例する程度の計算時間によって実行できる。グラフのサイズは、ノード数である。
図5に示す例では、楕円形状の32などがノードである。図3に示す並び替え後ビット列23の各ビットは、ブーリアン変数(「真」と「偽」のいずれかを取る変数)とみなすことができる。例えば、1番目のビットd1は、ノード32aに対応している。
順序付き二分決定グラフとは、(1)ノード同士に全順序関係が定義されている、(2)最上位ノードから定数ノードに至る全てのパスについて変数の出現順序が、全順序関係に矛盾しない、二分決定グラフである。ここで、図5に示す例では、33が最上位ノード(ルートノード)、34が定数ノードである。図5に示す例では、定数ノードは、「1」(「真」を意味する。)である。尚、最上位ノード及び定数ノードは特別なノードである為、通常のノードと符号を区別する。
既約な二分決定グラフとは、(1)冗長なノードを全て削除、(2)等価なノードを全て共有、という2つの簡約化規則がこれ以上適用できなくなるまで適用されている二分決定グラフである。
図5に示す二分決定グラフは、既約な順序付き二分決定グラフである。
【0046】
図5に示す二分決定グラフは、実線によって示されるThen枝、間隔が広い点線によって示されるElse枝、「*」(アスタリスク)を付した間隔が狭い点線によって示される否定Else枝の3つを用いている。否定Else枝を用いると、否定演算が短い時間によって実行できる。例えば、枝35aは、Else枝である。
【0047】
図2の説明に戻る。次に、制御部11は、二分決定グラフの各ノードにおける最小項の数を算出する(S5)。最小項の数の算出処理は、図6、図7を参照して説明する。
【0048】
図6は、最小項の数の算出処理を説明する図である。図7は、最小項の数の算出結果を示す図である。
最小項(Minterm)とは、ブーリアン変数の集合が与えられたとき、全てのブーリアン変数のリテラルを含む積項である。例えば、ブーリアン変数の集合が(a、b、c)のとき、a¬bcは最小項であり、a¬bは最小項ではない。尚、「¬b」は、bの否定を意味する。
【0049】
制御部11は、ノードごとに、P:最上位ノードから辿って否定枝を偶数回通る場合の最小項の数、及び、N:最上位ノードから辿って否定枝を奇数回通る場合の最小項の数、を算出する。
最初に、制御部11は、定数ノードの最小項の数を算出する。定数ノードのPは2のn乗(nはブーリアン変数の数、すなわち、並び替え後ビット列23のビット数)であり、Nは0である。図3に示す通り、並び替え後ビット列23のビット数は「6」なので、定数ノードのP=2の6乗=64となる。従って、図7に示す定数ノード34については、P=64、N=0となる。
【0050】
次に、制御部11は、深さ優先探索によって、定数ノード以外の各ノードの最小項の数を再帰的に算出する。
制御部11は、図6に示すように、(a)Else枝が否定枝ではない場合と、(b)Else枝が否定枝の場合に分けて、各ノードにおける最小項の数を算出する。
まず、図6(a)の場合について説明する。図6(a)では、ノード32dが算出対象のノード、Then枝によって接続された下位のノード32bのPの値がt_p(既知)及びNの値がt_n(既知)、並びに、Else枝によって接続された下位のノード32cのPの値がe_p(既知)及びNの値がe_n(既知)である。このとき、制御部11は、下位のノード32bと32cの算出結果を用いて、P=t_p/2+e_p/2、N=t_n/2+e_n/2の式によって、ノード32dの最小項の数を算出する。
次に、図6(b)の場合について説明する。図6(b)では、ノード32gが算出対象のノード、Then枝によって接続された下位のノード32eのPの値がt_p(既知)及びNの値がt_n(既知)、並びに、否定Else枝によって接続された下位のノード32fのPの値がe_p(既知)及びNの値がe_n(既知)である。このとき、制御部11は、下位のノード32eと32fの算出結果を用いて、P=t_p/2+e_n/2、N=t_n/2+e_p/2の式によって、ノード32gの最小項の数を算出する。
【0051】
例えば、図7に示すノード32hの場合、下位のノード(=定数ノード34)と接続されたElse枝が否定枝であるから、図6(b)の算出方法によって最小項の数を算出する。つまり、ノード34については、P=64/2+0/2=32、N=64/2+0/2=32となる。
【0052】
また、例えば、図7に示すノード32iの場合、下位のノードと接続されたElse枝が否定枝ではないことから、図6(a)の算出方法によって最小項の数を算出する。つまり、ノード32iについては、P=32/2+64/2=48、N=32/2+0/2=16となる。
【0053】
図2の説明に戻る。次に、制御部11は、二分決定グラフの各ノードにおける局所密度を算出する(S6)。局所密度の算出処理は、図8、図9を参照して説明する。
【0054】
図8は、局所密度の算出処理を説明する図である。図9は、局所密度の算出結果を示す図である。尚、図9に示すP及びNの数値の意味と、図7に示すP及びNの数値の意味は異なることに留意する。
【0055】
図8(a)は、図7のノード32jのP接続の局所密度を、便宜的にカルノー図30bによって示している。また、図8(b)は、図7のノード32kのP接続の局所密度を、便宜的にカルノー図30cによって示している。
ここで、最上位ノードから辿って着目しているノードまでに否定枝を偶数回通るパスのことを、「P接続」という。また、最上位ノードから辿って着目しているノードまでに否定枝を奇数回通るパスのことを、「N接続」という。
【0056】
まず、ノード32jについて考える。
図7を参照すると分かるように、最上位ノード33からノード32jまでのパスは、枝35a、枝35bを順に通るパスのみである。
枝35aはElse枝であり、ブーリアン変数d1が「0」であることに対応する。同様に、枝35bはElse枝であり、ブーリアン変数e1が「0」であることに対応する。それ以外のブーリアン変数d2、e2、d3、e3については、ドントケア(「ドントケア」とは、値が「0」でも「1」でも良いことを意味する。)となる。図8(a)に示す点線の矩形領域41aは、この領域を示しており、d1が「0」、e1が「0」、それ以外がドントケアの領域である。
更に、図8(a)に示すカルノー図30bは、カルノー図30aにおける矩形領域41aのパターンを4個繰り返したものである。そして、ノード32jのP接続の局所密度は、カルノー図30bの全体密度と一致する。つまり、図9に示すように、ノード32jのP接続の局所密度は、「0.25」である。
【0057】
次に、ノード32kについて考える。
図7を参照すると分かるように、最上位ノード33からノード32kまでのパスは、枝35a、枝35b、枝35c、枝35dを順に通る第1のパスと、枝35a、枝35b、枝35e、枝35fを順に通る第2のパスの2つである。
第1のパスについては、ブーリアン変数d1が「0」、e1が「0」、d2が「1」、e2が「0」に対応する。それ以外のブーリアン変数d3、e3については、ドントケアとなる。図8(b)に示す点線の矩形領域41bは、この領域を示している。
また、第2のパスについては、ブーリアン変数d1が「0」、e1が「0」、d2が「0」、e2が「1」に対応する。それ以外のブーリアン変数d3、e3については、ドントケアとなる。図8(b)に示す点線の矩形領域41cは、この領域を示している。
更に、図8(b)に示すカルノー図30cは、カルノー図30aにおける矩形領域41b(又は41c)のパターンを16個繰り返したものである。そして、ノード32kのP接続の局所密度は、カルノー図30cの全体密度と一致する。つまり、図9に示すように、ノード32kのP接続の局所密度は、「0.25」である。
【0058】
本発明の実施の形態では、制御部11は、S5において、二分決定グラフ31の各ノードにおける最小項の数を算出している。従って、制御部11は、ビット列のビット数をnとしたとき、「二分決定グラフ31の各ノードにおける最小項の数÷2のn乗」を各ノードにおけるP接続の局所密度として算出することができる。つまり、制御部11は、各ノードにおける最小項の数を用いることによって、図8に示すカルノー図30b、30cの構築処理を実行する必要はない。
例えば、ノード32jのP接続の局所密度=ノード32jにおける最小項の数÷2のn乗=16/2の6乗=0.25である。また、例えば、ノード32kのP接続の局所密度=ノード32kにおける最小項の数÷2のn乗=16/2の6乗=0.25である。他のノードについても同様である。
尚、各ノードのN接続の局所密度は、「1−各ノードのP接続の局所密度」である。
【0059】
図2の説明に戻る。次に、制御部11は、局所密度から単一データの密度換算値を引いた値を単一データ除外局所密度として算出する(S7)。
以下、単一データ除外局所密度を、「LOO(Leave−One−Out)密度」と省略して記載する。LOO密度の算出処理は、図10を参照して説明する。
【0060】
図10は、LOO密度の算出結果を示す図である。尚、図10に示すP及びNの数値の意味と、図7、図9に示すP及びNの数値の意味は異なることに留意する。
【0061】
LOO密度は、「局所密度−単一データの密度換算値」である。また、次元数をM、局所密度に対応するノードのレベルをLとしたとき、各ノードの密度換算値は、「{2の(L×M)乗}の逆数」と定義する。纏めると、LOO密度=局所密度−{2の(L×M)乗}の逆数、となる。
そして、制御部11は、ノードごとにLOO密度を算出する。
【0062】
ここで、レベルLについて説明する。図10に示すように、定数ノード34を「レベル0」、「最下位ビット」(LSB)であるd3、e3に対応するノードを「レベル1」、次の階層のビットであるd2、e2に対応するノードを「レベル2」、「最上位ビット」(MSB)であるd1、e1に対応するノードを「レベル3」とする。つまり、数値属性の次元(変量)を表すのに用いたビット列の長さKとレベルLの最大値が一致し、レベルLは0〜Mの整数値を取る。
【0063】
図10を参照しながら、LOO密度の算出例を説明する。
例えば、ノード32jのP接続のLOO密度は、0.25−1/(2の(2×2)乗)=0.25−1/16=3/16≒0.19となる。
また、例えば、ノード32jのN接続のLOO密度は、0.75−1/(2の(2×2)乗)=0.75−1/16=11/16≒0.69となる。
また、例えば、ノード32kのP接続のLOO密度は、0.25−1/(2の(1×2)乗)=0.25−1/4=0となる。
また、例えば、ノード32kのN接続のLOO密度は、0.75−1/(2の(1×2)乗)=0.75−1/4=0.5となる。
尚、定数ノード34については、LOO密度=max{0,局所密度−{2の(L×M)乗}の逆数}の式によって算出している。これは、LOO密度が負の値になることを避ける為である。但し、このことは本質的なことではなく、LOO密度が負の値になっても、本発明では特に問題はない。
【0064】
図2の説明に戻る。次に、制御部11は、LOO密度に基づいて、各データの外れ度合を算出する(S8)。外れ度合の算出処理は、図11〜図13を参照して説明する。
【0065】
図11は、二分決定グラフにおける着目データを表すパスを示す図である。図12は、カルノー図における着目データを表す領域を示す図である。図13は、抽出されるLOO密度を説明する図である。
制御部11は、データセットの中から1つずつ着目データを決定し、着目データごとに処理を実行する。以下では、着目データxとして、(d1,e1,d2,e2,d3,e3)=(1,0,0,1,1,0)の例を示す。
【0066】
制御部11は、二分決定グラフでの着目データxを表すパスを探索し、レベル(階層)が変化するノードに係るLOO密度を抽出し、抽出されたLOO密度に基づいて、着目データxの外れ度合を算出する。
【0067】
図11に示す例であれば、レベル(階層)が変化するノードは、ノード32a、32l、32m、34の4つである。
P接続のLOO密度を抽出するか、それとも、N接続のLOO密度を抽出するかについては、最上位ノードから辿って否定枝を通る回数によって決まる。つまり、制御部11は、最上位ノードから辿って否定枝を偶数回通る場合にはP接続のLOO密度を抽出し、最上位ノードから辿って否定枝を奇数回通る場合にはN接続のLOO密度を抽出する。
制御部11は、ノード32aについては、否定枝を1回通ることから、N接続のLOO密度「0.28」を抽出する。また、制御部11は、ノード32lについても、否定枝を1回通ることから、N接続のLOO密度「0.38」を抽出する。また、制御部11は、ノード32mについても、否定枝を1回通ることから、N接続のLOO密度「0.25」を抽出する。また、制御部11は、定数ノード34については、否定枝を2回通ることから、P接続のLOO密度「0」を抽出する。
結局、制御部11は、(0.28、0.38、0.25、0)を抽出する。
【0068】
図13を参照しながら、抽出された各LOO密度の意味について説明する。
図13(a)に示すように、レベル0のLOO密度、すなわち定数ノード34のLOO密度は、1個の単位領域(=着目データx自身が占める領域)である矩形領域41dを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
また、図13(b)に示すように、レベル1のLOO密度、すなわちノード32mのLOO密度は、4個の単位領域である矩形領域41eを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
また、図13(c)に示すように、レベル2のLOO密度、すなわちノード32lのLOO密度は、16個の単位領域である矩形領域41fを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
また、図13(d)に示すように、レベル3のLOO密度、すなわちノード32aのLOO密度は、64個の単位領域である矩形領域41gを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
このように、抽出されたLOO密度は、階層局所密度(HLD:Hierarchical Local Densities)と言える。
【0069】
制御部11は、例えば、抽出されたLOO密度(階層局所密度)の最大値を、着目データの外れ度合とする。図11に示す例では、制御部11は、(0.28、0.38、0.25、0)の最大値「0.38」を、着目データxの外れ度合とする。
また、制御部11は、抽出されたLOO密度の最大値に代えて、抽出されたLOO密度の平均値や中央値などを、着目データの外れ度合としても良い。
【0070】
また、制御部11は、抽出されたLOO密度の全部に基づいて外れ度合を算出するのではなく、抽出されたLOO密度の一部に基づいて外れ度合を算出しても良い。
例えば、制御部11は、抽出されたLOO密度の中から、高いレベル(階層)のノードに係るLOO密度に基づいて、外れ度合を算出しても良い。図11に示す例であれば、制御部11は、「レベル3」、「レベル2」のノードに係るLOO密度(0.28、0.38)に基づいて外れ度合を算出しても良い。この場合も、制御部11は、最大値、平均値、中央値などを、着目データの外れ度合とすることができる。
【0071】
前述の説明では、観測領域を2分決定グラフとして構築したが、観測領域をカルノー図やその他のデータ構造によって構築した場合も、本発明を適用することが可能である。
制御部11は、データセットに含まれるデータの中から着目データを1つずつ決定し、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度に基づいて、着目データの外れ度合を算出すれば良い。LOO密度は、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度の1例である。
【0072】
図2の説明に戻る。次に、制御部11は、S8によって算出された外れ度合と、予め定められた閾値を比較することによって、外れ値を検出する(S9)。尚、S9は必須ではない。例えば、制御部11は、出力手段(メディア入出力部13、通信制御部14、表示部16、周辺機器I/F部17等)を介して、S8によって算出された外れ度合の一覧を出力しても良い。そして、ユーザが、外れ度合の一覧を参照して、外れ値を検出しても良い。
【0073】
図2に示す処理の中で最も計算負荷が高い処理は、S4の二分決定グラフの構築処理である。データセットのデータ数をN、二次元グラフのノード数をDとすると、二分決定グラフの構築処理の計算量のオーダーは、О(N×D)である。
ところで、データセットの次元数が小さい場合、ノード数Dはあまり大きくならないことが多い。そこで、与えられたデータセットの次元数が大きい場合、次元縮約の手法を用いて次元数を小さくしても良い。適切な次元縮約を行えば、結果に影響を与えることなく、次元数を小さくすることができる。また、数値属性のデータを丸めて、ビット数を制限することによって、ノード数Dを小さくすることもできる。
従って、S4の二分決定グラフの構築処理を行う前に、適切な前処理を行うことによって、D≪Nとみなすことができる。つまり、計算量のオーダーは、О(Nの1乗)とみなすことができる。
【0074】
また、図2の各ステップを見れば分かるように、ユーザがチューニングすべきパラメータは、S9の閾値のみである。ここで、S9の閾値は、外れ値か否かを判定する為のパラメータであって、外れ度合を算出する為のパラメータではない。つまり、外れ値検出装置1は、パラメータチューニング作業を行わなくても、外れ度合を算出することができる。
そして、S9の閾値を変更しても、S1〜S8の処理を再度実行する必要はなく、S9の処理の計算負荷は無視できる程度に小さいことから、外れ値検出装置1は、実用的な時間内に外れ値の検出を支援又は実行することができる。
【0075】
以上、本発明の実施の形態では、外れ値検出装置1が、データセットに含まれる各データを次元ごとにビット列に変換し、ビット列に基づいて、データセットの観測領域を構築する。次に、外れ値検出装置1が、データセットに含まれるデータの中から着目データを1つずつ決定し、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度に基づいて、着目データの外れ度合を算出する。
これによって、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行することができる。
【実施例1】
【0076】
以下では、図14〜図19を参照しながら、本発明の実施例1及び比較例について説明する。
図14は、実施例1及び比較例に用いたデータセットを示す図である。図14に示すデータセットは、2次元空間において、夜空の月(Moon)と星(Star)の光を模式的にプロットしたものである。以下では、図14に示すデータセットを、MoonStarデータセットと呼ぶ。MoonStarデータセットの性質は、以下の通りである。
・人工的に発生させたデータ
・次元数M=2
・データの95%は三日月形状の領域内に分布し、残り5%はランダムに分布
・データ数N=1000、5000
図14(a)は、データ数N=1000のデータセットであり、MoonStar1000と呼ぶ。図14(b)は、データ数N=5000のデータセットであり、MoonStar5000と呼ぶ。いずれも、「○」が各データを示している。
【0077】
判定精度を適切に比較できるように、後述する通り、いずれの例においても、データセットの5%を外れ値(Star)と判定した。また、計算時間も適切に比較できるように、全て同じコンピュータによって実行した。
【0078】
実施例1では、外れ値検出装置1によって外れ度合を算出し、値の小さかった5%(S9の閾値)を外れ値と判定した。
比較例1では、OC−SVM(One−Class Support Vector Machine)において、非線形写像を決めるカーネルパラメータγを「0.5」、外れ値の割合を指定するパラメータvを「0.05」とした。
比較例2では、OC−SVMにおいて、非線形写像を決めるカーネルパラメータγを「2」、外れ値の割合を指定するパラメータvを「0.05」とした。
比較例3では、LOF(Local Outlier Factor)において、パラメータkを「10」とし、値の大きかった5%を外れ値と判定した。
比較例4では、LOFにおいて、パラメータkを「100」とし、値の大きかった5%を外れ値と判定した。
尚、OC−SVMの計算では、いずれも、統計計算言語Rのe1071ライブラリに含まれるsvm関数を使用した。また、LOFの計算では、いずれも、統計計算言語Rのdprepライブラリに含まれるlofactor関数を使用した。
【0079】
図15は、実施例1における外れ値の検出結果を示す図である。図15(a)はMoonStar1000、図15(b)はMoonStar5000の結果である。いずれも、「×」が外れ値(Star)として検出されたデータ、「○」がMoonと判定されたデータを示している。尚、「×」(外れ値)の視認性を上げる為、「○」の色を淡いグレーによって図示している。以下、図16〜図19も同様である。
【0080】
以下に示す表1、表2は、それぞれ、実施例1におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0081】
【表1】
【0082】
【表2】
【0083】
ここで、4つのマスのうち、左上のマスは、「Moon」を「Moon」と検出した数を示している。右上のマスは、「Moon」を「Star」と検出した数を示している。左下のマスは、「Star」を「Moon」と検出した数を示している。右下のマスは、「Star」を「Star」と検出した数を示している。左上と右下の合計が、正しく検出した数である。左下と右上の合計が、誤って検出した数である。以下、表3〜表10も同様である。
【0084】
実施例1では、MoonStar1000に対して計算時間が0.03秒、MoonStar5000に対して計算時間が0.17秒であった。つまり、データ数が5倍の増加に対して、計算時間の増加率は約5.7倍であることから、データ数Nに対して、実施例1の計算時間のオーダーはО(Nの1乗)と言える。
【0085】
図16は、比較例1における外れ値の検出結果を示す図である。また、以下に示す表3、表4は、それぞれ、比較例1におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0086】
【表3】
【0087】
【表4】
【0088】
比較例1では、MoonStar1000に対して計算時間が0.07秒、MoonStar5000に対して計算時間が1.30秒であった。つまり、データ数が5倍の増加に対して、計算時間は約18.6倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0089】
図17は、比較例2における外れ値の検出結果を示す図である。また、以下に示す表5、表6は、それぞれ、比較例2におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0090】
【表5】
【0091】
【表6】
【0092】
比較例2では、MoonStar1000に対して計算時間が0.11秒、MoonStar5000に対して計算時間が1.69秒であった。つまり、データ数が5倍の増加に対して、計算時間は約15.4倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0093】
図18は、比較例3における外れ値の検出結果を示す図である。また、以下に示す表7、表8は、それぞれ、比較例3におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0094】
【表7】
【0095】
【表8】
【0096】
比較例3では、MoonStar1000に対して計算時間が2.05秒、MoonStar5000に対して計算時間が34.95秒であった。つまり、データ数が5倍の増加に対して、計算時間は約17.0倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0097】
図19は、比較例4における外れ値の検出結果を示す図である。また、以下に示す表9、表10は、それぞれ、比較例4におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0098】
【表9】
【0099】
【表10】
【0100】
比較例4では、MoonStar1000に対して計算時間が6.38秒、MoonStar5000に対して計算時間が150.47秒であった。つまり、データ数が5倍の増加に対して、計算時間は約23.6倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0101】
以上から、計算時間は、OC−SVMやLOFよりも、本発明の外れ値検出装置1の方が優位であることが分かった。
以下では、計算精度についても、本発明の外れ値検出装置1の方が、OC−SVMやLOFよりも優位であることについて説明する。
【0102】
実施例1と比較例1〜4の計算精度を比較する為、以下に示す表11では、実施例1と比較例1〜4のAUC(area under the ROC curve)を示している。ここで、ROCは、receiver operating characteristic(受診者操作特性)の略である。AUCは0〜1の値を取り、1に近い程、精度が良いことを示している。
【0103】
【表11】
【0104】
表11に示すように、本発明では、MoonStar1000とMoonStar5000の両方ともAUCが0.9以上であり、安定して高い精度を達成している。これに対して、OC−SVMでは、MoonStar1000とMoonStar5000の両方ともAUCが0.9以下であり、十分な精度が達成できていない。また、LOFについては、パラメータ次第で結果が大きく左右されており、パラメータチューニング作業が不可欠であることが分かる。
【実施例2】
【0105】
以下では、図20〜図22を参照しながら、本発明の実施例2について説明する。実施例2は、外れ値検出装置1を車両故障診断システムに適用する例である。
【0106】
図20は、実施例2における車両故障診断システムの構成図である。図20に示すように、車両故障診断システム100は、故障診断の対象となる車両システム101、データ収集装置102、及び外れ値検出装置1によって構成される。
【0107】
車両システム101は、自動車等の車両に搭載されるシステムである。車両システム101は、複数のECU(Electronic Control Unit:電子制御装置)、複数のセンサ、複数のアクチュエータ等が車載ネットワークを介して接続されている。
【0108】
データ収集装置102は、走行中の車両データを収集する装置である。データ収集装置102は、車載ネットワークに流れる信号、各コンポーネント(ECU、センサ、アクチュエータ等)の状態値等を車両データとして収集する。そして、データ収集装置102は、無線又は有線によって接続される外れ値検出装置1に車両データを送信する。
【0109】
データ収集装置102は、例えば、車両システム101の内部に設置されても良いし、外付け装置として設置されても良い。また、データ収集装置102は、例えば、車両システム101から物理的に離れた場所に設置されるコンピュータ(外れ値検出装置1を含む。)でも良い。データ収集装置102が車両システム101から物理的に離れた場所に設置される場合、車両システム101は、無線通信によってデータ収集装置102に車両データを送信する。
【0110】
外れ値検出装置1は、データ収集装置102によって収集される車両データから外れ値を検出する。これに対して、車両の故障診断を行う専門家は、検出される外れ値を詳細に確認し、車両に異常が発生しているか否かを確認する。
【0111】
図21は、実施例2における車両故障診断システムの処理を示すフローチャートである。図21に示すように、データ収集装置102は、車両システム101から、走行中の車両データを収集する(S11)。
【0112】
次に、外れ値検出装置1は、前述の図2に示すフローチャートに従って、データ収集装置102によって収集される車両データから外れ値を検出する(S12)。
【0113】
車両の故障診断を行う専門家は、外れ値検出装置1によって検出される外れ値を詳細に確認する。対処が必要な異常が発生している場合(S13のY)、専門家は運転者に通知し、修理を促す(S14)。又は、外れ値検出装置1が無線通信によって車両システム101に異常がある旨のメッセージを送信し、車両システム101が出力装置(表示装置や音声出力装置等)によって警報を出力しても良い。
【0114】
図22は、実施例2における外れ値の検出結果を示す図である。図22は、アクセル操作量、エンジン回転数、変速位置の3次元(3変量)のデータセットに対して、外れ値検出装置1が外れ値の検出を行った結果を示している。
【0115】
アクセル操作量及びエンジン回転数は、数値属性の変量である。変速位置は、「Low」、「2nd」、「3rd」の3つの値を取り得ることから、カテゴリ属性の変量とも言えるし、数値属性の変量とも言える。
【0116】
図22では、「×」が外れ値として検出されたデータ、「○」が外れ値ではないと判定されたデータを示している。図22に示す例では、変速位置が「Low」のとき、1つの外れ値が検出されている。これは、「アクセル操作量に対してエンジンの吹け上がりが悪い」という異常を示すものである。このように、本発明の外れ値検出装置1を車両故障診断システム100に適用すれば、車両の故障診断を精度良く行うことができる。
【0117】
以上、添付図面を参照しながら、本発明に係る外れ値検出装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0118】
1………外れ値検出装置
21………データセット
22a、22b………ビット列
23………並び替え後ビット列
30a〜30c………カルノー図
31………二分決定グラフ
32a〜32m………ノード
33………最上位ノード
34………定数ノード
35a〜35f………枝
41a〜41g………矩形領域
【技術分野】
【0001】
本発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置等に関するものである。
【背景技術】
【0002】
外れ値検出問題は、与えられたデータセットの中から、データ密度が低い領域に属するデータを外れ値として見つける問題と考えられる。外れ値検出問題を解く技術の応用例としては、データセットに含まれるノイズデータの除去処理(データスクリーニングの前処理)、クレジット取引のデータセットの中から通常行われていない取引を行っている顧客を検出する処理、生産ラインにおける生産物のデータセットの中から不良品を検出する処理などが考えられる。
【0003】
外れ値検出問題を解く技術としては、例えば、以下の3つが知られている。
・マハラノビス距離
・One−Class Support Vector Machine(以下、「OC−SVM」と省略。)
・Local
Outlier Factor(以下、「LOF」と省略。)
【0004】
非特許文献1には、マハラノビス距離について記載されている。非特許文献1では、与えられたデータセットの全体の重心(平均)と共分散行列を求め、各データに対して共分散行列を用いて正規化した重心との距離を求め、距離が大きいデータを外れ値とみなす。
マハラノビス距離では、データセットが多変量正規分布に従うことを仮定しており、データセットが多変量正規分布では記述できない場合、すなわちデータセットが非線形の場合、適切な外れ値を検出することができない。
【0005】
非特許文献2には、OC−SVMについて記載されている。非特許文献2では、入力されるデータセットを非線形写像によって高次の特徴空間Fに写像し、写像されたデータ群と原点を分離する超平面のうち、原点からの距離が最大のものを選択する。OC−SVMを外れ値検出問題に適用する場合には、一定割合のデータが超平面よりも原点側に分類されることを許すように超平面を決定し、原点側に分類されたデータを外れ値とみなす。
OC−SVMでは、解が求まり易い凸最適化問題を解くことによって、超平面を求めることができる。また、非線形写像を用いるので、非線形なデータセットに適用できる。
【0006】
非特許文献3には、LOFについて記載されている。非特許文献3では、まず、各データxに対し、データx自身に近いk個のデータとの距離の平均値を、データxのk近傍距離として求める。次に、{データxのk近傍距離÷周辺のデータk個のk近傍距離の平均値}を、データxのLOFとして求める。これらの処理から分かるように、データx自身のk近傍距離よりも、周辺のデータk個のk近傍距離の平均値が小さい程、LOFは大きな値を取る。そして、LOFが大きいデータを、外れ値とみなす。
LOFも、非線形なデータセットに適用できる。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Mahalanobis, P.C., On the generalized distance in statistics,Proceedings of the National Institute of Science, 49-55, 1936
【非特許文献2】Scholkopf, B. et. al., Estimating the Support of a High-DimensionalDistribution, Neural computation, 7, 1443-1471, 2001
【非特許文献3】Breunig, M.M. et. al., LOF: Identifying Density-Based LocalOutliers, SIGMOD Conference, 93-104, 2000
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、前述の3つの従来技術は、以下の問題がある。
前述の通り、マラハノビス距離は、データセットが非線形の場合、適切な外れ値を検出することができないという問題がある。
【0009】
OC−SVMは、適切な非線形写像を選ぶことが難しいという未解決の問題がある。これは、非線形写像を決めるパラメータを人間が試行錯誤によって決定するパラメータチューニング作業が必要という課題に帰結する。
また、OC−SVMは、データ数が多い場合、最適化問題を解く為に時間がかかる。データ数をNとすると、何ら工夫をしなければ、OC−SVMの計算量のオーダーはО(Nの3乗)である。
【0010】
LOFは、適切なkを選ぶことが難しいという未解決の問題がある。これも、OC−SVMと同様、パラメータチューニング作業が必要という課題に帰結する。
また、LOFは、計算負荷も比較的高い。データ数をNとすると、何ら工夫をしなければ、LOFの計算量のオーダーはО(Nの2乗)である。
【0011】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行する外れ値検出装置等を提供することである。
【課題を解決するための手段】
【0012】
前述した目的を達成するために第1の発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置であって、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、を具備する外れ値検出装置である。
第1の発明によって、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行することができる。
【0013】
第1の発明における前記構築手段は、前記観測領域を二分決定グラフとして構築し、前記算出手段は、各ノードにおける局所密度から単一データの密度換算値を引いた値を単一データ除外局所密度とし、更に、前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出することが望ましい。
これによって、データ数をN、ノード数をDとすると、少なくとも、第1の発明の計算量のオーダーは、О(N×D)であり、OC−SVMやLOFよりも優位である。
【0014】
また、第1の発明における前記構築手段は、数値属性の次元に係る前記ビット列群を最上位ビットから最下位ビットの順に並び変えて、前記二分決定グラフを階層的に構築し、前記算出手段は、前記二分決定グラフでの前記着目データを表すパスを探索し、階層が変化するノードに係る前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出することが望ましい。
これによって、データセットの特性について事前に何も情報を持っていない場合にも、適切な外れ度合を算出することができる。
【0015】
また、前記算出手段は、例えば、階層が変化するノードに係る前記単一データ除外局所密度の一部若しくは全部の最大値、中央値又は平均値を、前記着目データの外れ度合とする。
また、第1の発明は、例えば、前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段、を更に具備しても良い。
【0016】
第2の発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出方法であって、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築ステップと、前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出ステップと、を含む外れ値検出方法である。
【0017】
第3の発明は、コンピュータを、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行し、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出手段と、を具備する外れ値検出装置として機能させる為のプログラムである。
【0018】
第4の発明は、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置と、車両データを収集するデータ収集装置と、を含む車両故障診断システムであって、前記外れ値検出装置は、前記データ収集装置によって収集される前記車両データを前記データセットとし、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段と、を具備する車両故障診断システムである。
【発明の効果】
【0019】
本発明により、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行する外れ値検出装置等を提供することができる。
【図面の簡単な説明】
【0020】
【図1】外れ値検出装置のハードウエア構成図
【図2】外れ値検出装置の処理の詳細を示すフローチャート
【図3】データセットの変換処理を説明する図
【図4】カルノー図を示す図
【図5】二分決定グラフを示す図
【図6】最小項の数の算出処理を説明する図
【図7】最小項の数の算出結果を示す図
【図8】局所密度の算出処理を説明する図
【図9】局所密度の算出結果を示す図
【図10】LOO密度の算出結果を示す図
【図11】二分決定グラフにおける着目データを表すパスを示す図
【図12】カルノー図における着目データを表す領域を示す図
【図13】抽出されるLOO密度を説明する図
【図14】実施例1及び比較例に用いたデータセットを示す図
【図15】実施例1における外れ値の検出結果を示す図
【図16】比較例1における外れ値の検出結果を示す図
【図17】比較例2における外れ値の検出結果を示す図
【図18】比較例3における外れ値の検出結果を示す図
【図19】比較例4における外れ値の検出結果を示す図
【図20】実施例2における車両故障診断システムの構成図
【図21】実施例2における車両故障診断システムの処理を示すフローチャート
【図22】実施例2における外れ値の検出結果を示す図
【発明を実施するための形態】
【0021】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
本発明の実施形態では、与えられたデータセットの中から、データ密度が低い領域に属するデータを外れ値として見つける外れ値検出問題を解く。
最初に、クレジット取引を例にして、「データセット」について説明する。例えば、クレジット取引のデータセットとして、顧客の性別、顧客の年齢、取引金額の3種類の情報の組み合わせが単一のデータとして与えられる場合を考える。そして、x1=(男性、25歳、1万円)、x2=(女性、30歳、2万円)の2個のデータが、データセットとして与えられる場合を考える。
【0022】
上記の例では、データの次元数が「3」かつデータ数が「2」のデータセットが与えられていることになる。データの次元は、変量とも呼ばれる(例えば、多変量解析とは、多次元のデータを解析することを意味する。)。また、データ数は、サンプル数とも呼ばれる。
データの各次元は、カテゴリ属性又は数値属性のいずれかである。上記の例では、顧客の性別がカテゴリ属性、顧客の年齢や取引金額が数値属性である。
【0023】
また、データセットの他の例として、自動車の車載装置によって取得されるデータセットなどが考えられる。この場合、ある時刻に観測された車速、回転数、ACC(Auto Cruse Control)のON/OFFなどが、各次元(各変量)となる。車速、回転数は数値属性、ACCのON/OFFはカテゴリ属性である。そして、複数の時刻に観測される複数のデータが、データセットとして与えられる。
【0024】
以下では、データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置について説明する。本発明の実施の形態における外れ値検出装置は、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行することができる。
【0025】
図1は、外れ値検出装置のハードウエア構成図である。尚、図1のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
【0026】
外れ値検出装置1は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される。
【0027】
制御部11は、CPU(Central Processing Unit)、ROM(Read Only
Memory)、RAM(Random Access Memory)等によって構成される。
【0028】
CPUは、記憶部12、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、外れ値検出装置1が行う後述する処理を実現する。
ROMは、不揮発性メモリであり、外れ値検出装置1のブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAMは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
【0029】
記憶部12は、HDD(ハードディスクドライブ)であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述する処理を外れ値検出装置1に実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0030】
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)等のメディア入出力装置を有する。
通信制御部14は、通信制御装置、通信ポート等を有し、外れ値検出装置1とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
【0031】
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部15を介して、外れ値検出装置1に対して、操作指示、動作指示、データ入力等を行うことができる。
表示部16は、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携して外れ値検出装置1のビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
【0032】
周辺機器I/F(インタフェース)部17は、外れ値検出装置1に周辺機器を接続させるためのポートであり、周辺機器I/F部17を介して外れ値検出装置1は周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USBやIEEE1394やRS−232C等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0033】
以上、外れ値検出装置1のハードウエア構成について説明したが、外れ値検出装置1として実装される装置は、この例に限定されない。例えば、外れ値検出装置1は、自動車などの車載装置、家電などの制御装置、生産ラインの不良品を検出する検品装置などに、後述する処理を実現する為のプログラムをインストールすることによって、自動車、家電、生産ラインなどの一部として実装されることもある。また、例えば、外れ値検出装置1は、複数のコンピュータから構成されるサーバ装置として実装されることもある。
以下では、外れ値検出装置1が単一のコンピュータによって実装されるものとして説明する。
【0034】
図2は、外れ値検出装置の処理の詳細を示すフローチャートである。以下では、必要に応じて図3〜図13を参照し、データセットの一例に対する処理の詳細を説明する。
【0035】
図2に示すように、外れ値検出装置1の制御部11は、入力手段(メディア入出力部13、通信制御部14、入力部15、周辺機器I/F部17等)を介して、データセットを入力する(S1)。また、制御部11は、記憶部12にファイルとして記憶されているデータセットを入力しても良い。
【0036】
図3は、データセットの変換処理を説明する図である。図3には、データセット21が図示されている。データセット21は、データの次元数が「2」、データ数が「19」である。各次元は数値属性であり、取り得る値は、0〜7の整数値である。
【0037】
制御部11は、図3に示されるデータセット21のように、正規化されたデータセットを入力する場合に限らず、生のデータセットを入力して正規化処理を行っても良い。例えば、制御部11は、生のデータセットに対して様々な加工処理を施して所定の範囲の整数値とする。
生のデータセットに含まれる一部の次元(変量)が数値属性の場合、制御部11は、細かく区切って離散化し、デジタル化する。制御部11は、例えば、実数値を小数点第1位において四捨五入して整数値とし、コンピュータがint型として扱うことが可能な値に変換する。取り得る範囲が極端に狭い、または広い場合、制御部11は、適当な係数をかけて想定する範囲に満遍なく収まるようにする。また、尺度が異なるデータが混ざっている場合、制御部11は、平均0、分散1に標準化する。また、分布が極端に偏っている場合、制御部11は、対数変換なども行う。
また、数値属性の次元(変量)の場合であっても、取り得る値が少ない場合、例えば0〜3の整数値しか取らない場合、制御部11は、カテゴリ属性の次元(変量)として取り扱っても良い。また、カテゴリ属性の次元(変量)の場合であっても、取り得る値に何らかの距離の概念が導入できる場合、制御部11は、数値属性の次元(変量)として取り扱っても良い。
【0038】
図2の説明に戻る。次に、制御部11は、各データを次元(変量)ごとにビット列に変換する(S2)。図3には、データx1に対するビット列22a、データx2に対するビット列22bが図示されている。例えば、データx1=6に対するビット列22aは、(d1,d2,d3)=(1,1,0)である。また、例えば、データx2=2に対するビット列22bは、(e1,e2,e3)=(0,1,0)である。
【0039】
次に、制御部11は、数値属性のビット列群を最上位ビットから最下位ビットの順に並び替える(S3)。図3には、並び替え後ビット列23が図示されている。例えば、(d1,d2,d3)=(1,1,0)のビット列22a、及び(e1,e2,e3)=(0,1,0)のビット列22bに対して、並び替え後ビット列23は、(d1,e1,d2,e2,d3,e3)=(1,0,1,1,0,0)である。
以下では、d1とe1のように最も左端のビットを「最上位ビット」(MSB:Most Significant Bit)、d3とe3のように最も右端のビットを「最下位ビット」(LSB:Least Significant Bit)とする。
【0040】
尚、S3における並び替えの処理は、必ずしも必須ではない。S3における並び替えの処理は、全ての次元(変量)を同等に扱うことになるので、データセットの特性について事前に何らかの情報を持っている場合、並び替えを行わない方が良いこともある。例えば、x1の次元(変量)は、データの特徴を良く表しており、x2の次元(変量)は、ほとんど変化がなく、データの特徴をあまり表していないことが分かっている場合には、S3における並び替えの処理を行わず、両者を同等に扱わない方が良い。
S3における並び替えの処理は、データセットの特性について事前に何も情報を持っていない場合に有効である。
【0041】
また、カテゴリ属性のビット列群は、数値属性のビット列群と区別し、カテゴリ属性のビット列が上位、数値属性のビット列が下位となるように並べることが望ましい。例えば、図3に示す数値属性のx1、x2の他に、カテゴリ属性のx3を含むデータを考え、カテゴリ属性のx3を変換したビット列を(f1,f2,f3)とする。この場合、制御部11は、(f1,f2,f3,d1,e1,d2,e2,d3,e3)の順に並び替えることが望ましい。
カテゴリ属性と数値属性を分けた理由は、一般にカテゴリ属性の取り得る値に対して距離の概念を導入することができず、数値属性と一緒に取り扱うことが困難だからである。
データセットの特性について事前に何も情報を持っていない場合、カテゴリ属性同士や数値属性同士は、どちらが上位になっても構わない。
【0042】
図2の説明に戻る。次に、制御部11は、観測領域Fとして二分決定グラフを構築する(S4)。制御部11は、観測領域Fとして、二分決定グラフ(BDD:Binary Decision Diagram)ではなく、カルノー図などを構築しても良い。二分決定グラフ及びカルノー図のいずれも、論理関数を表現するために使われるデータ構造の1つである。つまり、観測領域Fは、論理関数を表現できれば良い。
【0043】
尚、後述するように、観測領域Fとして二分決定グラフを構築する場合、外れ値検出装置1は、データ数が増大しても、実用的な時間内に外れ値の検出を支援又は実行することができる。以下では、混乱を避ける為に、外れ値検出装置1が、観測領域Fとして二分決定グラフを構築する場合について説明する。また、外れ値検出装置1の処理を分かり易く説明する為に、カルノー図も例示する。
【0044】
図4は、カルノー図を示す図である。
図4に示すカルノー図30aは、図3に示すビット列22aの(d1,d2,d3)を縦、図3に示すビット列22bの(e1,e2,e3)を横に配置している。黒の正方形の1個分が、1個のデータに対応する。従って、図4に示すカルノー図30aには、19個の黒の正方形が図示されている。
【0045】
図5は、二分決定グラフを示す図である。図5に示す二分決定グラフ31は、図3の並び替え後ビット列23に基づいて構築されたものである。
二分決定グラフは、コンピュータにおいてポインタの配列で表現されるので、必要な記憶容量を減らすことができる。また、既約な順序付き二分決定グラフの場合、論理関数同士の演算がグラフのサイズにほぼ比例する程度の計算時間によって実行できる。グラフのサイズは、ノード数である。
図5に示す例では、楕円形状の32などがノードである。図3に示す並び替え後ビット列23の各ビットは、ブーリアン変数(「真」と「偽」のいずれかを取る変数)とみなすことができる。例えば、1番目のビットd1は、ノード32aに対応している。
順序付き二分決定グラフとは、(1)ノード同士に全順序関係が定義されている、(2)最上位ノードから定数ノードに至る全てのパスについて変数の出現順序が、全順序関係に矛盾しない、二分決定グラフである。ここで、図5に示す例では、33が最上位ノード(ルートノード)、34が定数ノードである。図5に示す例では、定数ノードは、「1」(「真」を意味する。)である。尚、最上位ノード及び定数ノードは特別なノードである為、通常のノードと符号を区別する。
既約な二分決定グラフとは、(1)冗長なノードを全て削除、(2)等価なノードを全て共有、という2つの簡約化規則がこれ以上適用できなくなるまで適用されている二分決定グラフである。
図5に示す二分決定グラフは、既約な順序付き二分決定グラフである。
【0046】
図5に示す二分決定グラフは、実線によって示されるThen枝、間隔が広い点線によって示されるElse枝、「*」(アスタリスク)を付した間隔が狭い点線によって示される否定Else枝の3つを用いている。否定Else枝を用いると、否定演算が短い時間によって実行できる。例えば、枝35aは、Else枝である。
【0047】
図2の説明に戻る。次に、制御部11は、二分決定グラフの各ノードにおける最小項の数を算出する(S5)。最小項の数の算出処理は、図6、図7を参照して説明する。
【0048】
図6は、最小項の数の算出処理を説明する図である。図7は、最小項の数の算出結果を示す図である。
最小項(Minterm)とは、ブーリアン変数の集合が与えられたとき、全てのブーリアン変数のリテラルを含む積項である。例えば、ブーリアン変数の集合が(a、b、c)のとき、a¬bcは最小項であり、a¬bは最小項ではない。尚、「¬b」は、bの否定を意味する。
【0049】
制御部11は、ノードごとに、P:最上位ノードから辿って否定枝を偶数回通る場合の最小項の数、及び、N:最上位ノードから辿って否定枝を奇数回通る場合の最小項の数、を算出する。
最初に、制御部11は、定数ノードの最小項の数を算出する。定数ノードのPは2のn乗(nはブーリアン変数の数、すなわち、並び替え後ビット列23のビット数)であり、Nは0である。図3に示す通り、並び替え後ビット列23のビット数は「6」なので、定数ノードのP=2の6乗=64となる。従って、図7に示す定数ノード34については、P=64、N=0となる。
【0050】
次に、制御部11は、深さ優先探索によって、定数ノード以外の各ノードの最小項の数を再帰的に算出する。
制御部11は、図6に示すように、(a)Else枝が否定枝ではない場合と、(b)Else枝が否定枝の場合に分けて、各ノードにおける最小項の数を算出する。
まず、図6(a)の場合について説明する。図6(a)では、ノード32dが算出対象のノード、Then枝によって接続された下位のノード32bのPの値がt_p(既知)及びNの値がt_n(既知)、並びに、Else枝によって接続された下位のノード32cのPの値がe_p(既知)及びNの値がe_n(既知)である。このとき、制御部11は、下位のノード32bと32cの算出結果を用いて、P=t_p/2+e_p/2、N=t_n/2+e_n/2の式によって、ノード32dの最小項の数を算出する。
次に、図6(b)の場合について説明する。図6(b)では、ノード32gが算出対象のノード、Then枝によって接続された下位のノード32eのPの値がt_p(既知)及びNの値がt_n(既知)、並びに、否定Else枝によって接続された下位のノード32fのPの値がe_p(既知)及びNの値がe_n(既知)である。このとき、制御部11は、下位のノード32eと32fの算出結果を用いて、P=t_p/2+e_n/2、N=t_n/2+e_p/2の式によって、ノード32gの最小項の数を算出する。
【0051】
例えば、図7に示すノード32hの場合、下位のノード(=定数ノード34)と接続されたElse枝が否定枝であるから、図6(b)の算出方法によって最小項の数を算出する。つまり、ノード34については、P=64/2+0/2=32、N=64/2+0/2=32となる。
【0052】
また、例えば、図7に示すノード32iの場合、下位のノードと接続されたElse枝が否定枝ではないことから、図6(a)の算出方法によって最小項の数を算出する。つまり、ノード32iについては、P=32/2+64/2=48、N=32/2+0/2=16となる。
【0053】
図2の説明に戻る。次に、制御部11は、二分決定グラフの各ノードにおける局所密度を算出する(S6)。局所密度の算出処理は、図8、図9を参照して説明する。
【0054】
図8は、局所密度の算出処理を説明する図である。図9は、局所密度の算出結果を示す図である。尚、図9に示すP及びNの数値の意味と、図7に示すP及びNの数値の意味は異なることに留意する。
【0055】
図8(a)は、図7のノード32jのP接続の局所密度を、便宜的にカルノー図30bによって示している。また、図8(b)は、図7のノード32kのP接続の局所密度を、便宜的にカルノー図30cによって示している。
ここで、最上位ノードから辿って着目しているノードまでに否定枝を偶数回通るパスのことを、「P接続」という。また、最上位ノードから辿って着目しているノードまでに否定枝を奇数回通るパスのことを、「N接続」という。
【0056】
まず、ノード32jについて考える。
図7を参照すると分かるように、最上位ノード33からノード32jまでのパスは、枝35a、枝35bを順に通るパスのみである。
枝35aはElse枝であり、ブーリアン変数d1が「0」であることに対応する。同様に、枝35bはElse枝であり、ブーリアン変数e1が「0」であることに対応する。それ以外のブーリアン変数d2、e2、d3、e3については、ドントケア(「ドントケア」とは、値が「0」でも「1」でも良いことを意味する。)となる。図8(a)に示す点線の矩形領域41aは、この領域を示しており、d1が「0」、e1が「0」、それ以外がドントケアの領域である。
更に、図8(a)に示すカルノー図30bは、カルノー図30aにおける矩形領域41aのパターンを4個繰り返したものである。そして、ノード32jのP接続の局所密度は、カルノー図30bの全体密度と一致する。つまり、図9に示すように、ノード32jのP接続の局所密度は、「0.25」である。
【0057】
次に、ノード32kについて考える。
図7を参照すると分かるように、最上位ノード33からノード32kまでのパスは、枝35a、枝35b、枝35c、枝35dを順に通る第1のパスと、枝35a、枝35b、枝35e、枝35fを順に通る第2のパスの2つである。
第1のパスについては、ブーリアン変数d1が「0」、e1が「0」、d2が「1」、e2が「0」に対応する。それ以外のブーリアン変数d3、e3については、ドントケアとなる。図8(b)に示す点線の矩形領域41bは、この領域を示している。
また、第2のパスについては、ブーリアン変数d1が「0」、e1が「0」、d2が「0」、e2が「1」に対応する。それ以外のブーリアン変数d3、e3については、ドントケアとなる。図8(b)に示す点線の矩形領域41cは、この領域を示している。
更に、図8(b)に示すカルノー図30cは、カルノー図30aにおける矩形領域41b(又は41c)のパターンを16個繰り返したものである。そして、ノード32kのP接続の局所密度は、カルノー図30cの全体密度と一致する。つまり、図9に示すように、ノード32kのP接続の局所密度は、「0.25」である。
【0058】
本発明の実施の形態では、制御部11は、S5において、二分決定グラフ31の各ノードにおける最小項の数を算出している。従って、制御部11は、ビット列のビット数をnとしたとき、「二分決定グラフ31の各ノードにおける最小項の数÷2のn乗」を各ノードにおけるP接続の局所密度として算出することができる。つまり、制御部11は、各ノードにおける最小項の数を用いることによって、図8に示すカルノー図30b、30cの構築処理を実行する必要はない。
例えば、ノード32jのP接続の局所密度=ノード32jにおける最小項の数÷2のn乗=16/2の6乗=0.25である。また、例えば、ノード32kのP接続の局所密度=ノード32kにおける最小項の数÷2のn乗=16/2の6乗=0.25である。他のノードについても同様である。
尚、各ノードのN接続の局所密度は、「1−各ノードのP接続の局所密度」である。
【0059】
図2の説明に戻る。次に、制御部11は、局所密度から単一データの密度換算値を引いた値を単一データ除外局所密度として算出する(S7)。
以下、単一データ除外局所密度を、「LOO(Leave−One−Out)密度」と省略して記載する。LOO密度の算出処理は、図10を参照して説明する。
【0060】
図10は、LOO密度の算出結果を示す図である。尚、図10に示すP及びNの数値の意味と、図7、図9に示すP及びNの数値の意味は異なることに留意する。
【0061】
LOO密度は、「局所密度−単一データの密度換算値」である。また、次元数をM、局所密度に対応するノードのレベルをLとしたとき、各ノードの密度換算値は、「{2の(L×M)乗}の逆数」と定義する。纏めると、LOO密度=局所密度−{2の(L×M)乗}の逆数、となる。
そして、制御部11は、ノードごとにLOO密度を算出する。
【0062】
ここで、レベルLについて説明する。図10に示すように、定数ノード34を「レベル0」、「最下位ビット」(LSB)であるd3、e3に対応するノードを「レベル1」、次の階層のビットであるd2、e2に対応するノードを「レベル2」、「最上位ビット」(MSB)であるd1、e1に対応するノードを「レベル3」とする。つまり、数値属性の次元(変量)を表すのに用いたビット列の長さKとレベルLの最大値が一致し、レベルLは0〜Mの整数値を取る。
【0063】
図10を参照しながら、LOO密度の算出例を説明する。
例えば、ノード32jのP接続のLOO密度は、0.25−1/(2の(2×2)乗)=0.25−1/16=3/16≒0.19となる。
また、例えば、ノード32jのN接続のLOO密度は、0.75−1/(2の(2×2)乗)=0.75−1/16=11/16≒0.69となる。
また、例えば、ノード32kのP接続のLOO密度は、0.25−1/(2の(1×2)乗)=0.25−1/4=0となる。
また、例えば、ノード32kのN接続のLOO密度は、0.75−1/(2の(1×2)乗)=0.75−1/4=0.5となる。
尚、定数ノード34については、LOO密度=max{0,局所密度−{2の(L×M)乗}の逆数}の式によって算出している。これは、LOO密度が負の値になることを避ける為である。但し、このことは本質的なことではなく、LOO密度が負の値になっても、本発明では特に問題はない。
【0064】
図2の説明に戻る。次に、制御部11は、LOO密度に基づいて、各データの外れ度合を算出する(S8)。外れ度合の算出処理は、図11〜図13を参照して説明する。
【0065】
図11は、二分決定グラフにおける着目データを表すパスを示す図である。図12は、カルノー図における着目データを表す領域を示す図である。図13は、抽出されるLOO密度を説明する図である。
制御部11は、データセットの中から1つずつ着目データを決定し、着目データごとに処理を実行する。以下では、着目データxとして、(d1,e1,d2,e2,d3,e3)=(1,0,0,1,1,0)の例を示す。
【0066】
制御部11は、二分決定グラフでの着目データxを表すパスを探索し、レベル(階層)が変化するノードに係るLOO密度を抽出し、抽出されたLOO密度に基づいて、着目データxの外れ度合を算出する。
【0067】
図11に示す例であれば、レベル(階層)が変化するノードは、ノード32a、32l、32m、34の4つである。
P接続のLOO密度を抽出するか、それとも、N接続のLOO密度を抽出するかについては、最上位ノードから辿って否定枝を通る回数によって決まる。つまり、制御部11は、最上位ノードから辿って否定枝を偶数回通る場合にはP接続のLOO密度を抽出し、最上位ノードから辿って否定枝を奇数回通る場合にはN接続のLOO密度を抽出する。
制御部11は、ノード32aについては、否定枝を1回通ることから、N接続のLOO密度「0.28」を抽出する。また、制御部11は、ノード32lについても、否定枝を1回通ることから、N接続のLOO密度「0.38」を抽出する。また、制御部11は、ノード32mについても、否定枝を1回通ることから、N接続のLOO密度「0.25」を抽出する。また、制御部11は、定数ノード34については、否定枝を2回通ることから、P接続のLOO密度「0」を抽出する。
結局、制御部11は、(0.28、0.38、0.25、0)を抽出する。
【0068】
図13を参照しながら、抽出された各LOO密度の意味について説明する。
図13(a)に示すように、レベル0のLOO密度、すなわち定数ノード34のLOO密度は、1個の単位領域(=着目データx自身が占める領域)である矩形領域41dを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
また、図13(b)に示すように、レベル1のLOO密度、すなわちノード32mのLOO密度は、4個の単位領域である矩形領域41eを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
また、図13(c)に示すように、レベル2のLOO密度、すなわちノード32lのLOO密度は、16個の単位領域である矩形領域41fを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
また、図13(d)に示すように、レベル3のLOO密度、すなわちノード32aのLOO密度は、64個の単位領域である矩形領域41gを全体領域としたときに、着目データx自身を除外したときのデータ密度に相当する。
このように、抽出されたLOO密度は、階層局所密度(HLD:Hierarchical Local Densities)と言える。
【0069】
制御部11は、例えば、抽出されたLOO密度(階層局所密度)の最大値を、着目データの外れ度合とする。図11に示す例では、制御部11は、(0.28、0.38、0.25、0)の最大値「0.38」を、着目データxの外れ度合とする。
また、制御部11は、抽出されたLOO密度の最大値に代えて、抽出されたLOO密度の平均値や中央値などを、着目データの外れ度合としても良い。
【0070】
また、制御部11は、抽出されたLOO密度の全部に基づいて外れ度合を算出するのではなく、抽出されたLOO密度の一部に基づいて外れ度合を算出しても良い。
例えば、制御部11は、抽出されたLOO密度の中から、高いレベル(階層)のノードに係るLOO密度に基づいて、外れ度合を算出しても良い。図11に示す例であれば、制御部11は、「レベル3」、「レベル2」のノードに係るLOO密度(0.28、0.38)に基づいて外れ度合を算出しても良い。この場合も、制御部11は、最大値、平均値、中央値などを、着目データの外れ度合とすることができる。
【0071】
前述の説明では、観測領域を2分決定グラフとして構築したが、観測領域をカルノー図やその他のデータ構造によって構築した場合も、本発明を適用することが可能である。
制御部11は、データセットに含まれるデータの中から着目データを1つずつ決定し、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度に基づいて、着目データの外れ度合を算出すれば良い。LOO密度は、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度の1例である。
【0072】
図2の説明に戻る。次に、制御部11は、S8によって算出された外れ度合と、予め定められた閾値を比較することによって、外れ値を検出する(S9)。尚、S9は必須ではない。例えば、制御部11は、出力手段(メディア入出力部13、通信制御部14、表示部16、周辺機器I/F部17等)を介して、S8によって算出された外れ度合の一覧を出力しても良い。そして、ユーザが、外れ度合の一覧を参照して、外れ値を検出しても良い。
【0073】
図2に示す処理の中で最も計算負荷が高い処理は、S4の二分決定グラフの構築処理である。データセットのデータ数をN、二次元グラフのノード数をDとすると、二分決定グラフの構築処理の計算量のオーダーは、О(N×D)である。
ところで、データセットの次元数が小さい場合、ノード数Dはあまり大きくならないことが多い。そこで、与えられたデータセットの次元数が大きい場合、次元縮約の手法を用いて次元数を小さくしても良い。適切な次元縮約を行えば、結果に影響を与えることなく、次元数を小さくすることができる。また、数値属性のデータを丸めて、ビット数を制限することによって、ノード数Dを小さくすることもできる。
従って、S4の二分決定グラフの構築処理を行う前に、適切な前処理を行うことによって、D≪Nとみなすことができる。つまり、計算量のオーダーは、О(Nの1乗)とみなすことができる。
【0074】
また、図2の各ステップを見れば分かるように、ユーザがチューニングすべきパラメータは、S9の閾値のみである。ここで、S9の閾値は、外れ値か否かを判定する為のパラメータであって、外れ度合を算出する為のパラメータではない。つまり、外れ値検出装置1は、パラメータチューニング作業を行わなくても、外れ度合を算出することができる。
そして、S9の閾値を変更しても、S1〜S8の処理を再度実行する必要はなく、S9の処理の計算負荷は無視できる程度に小さいことから、外れ値検出装置1は、実用的な時間内に外れ値の検出を支援又は実行することができる。
【0075】
以上、本発明の実施の形態では、外れ値検出装置1が、データセットに含まれる各データを次元ごとにビット列に変換し、ビット列に基づいて、データセットの観測領域を構築する。次に、外れ値検出装置1が、データセットに含まれるデータの中から着目データを1つずつ決定し、観測領域から着目データに相当する領域を除去したときの着目データの周辺のデータ密度に基づいて、着目データの外れ度合を算出する。
これによって、非線形のデータセットに対して、パラメータチューニング作業を行うことなく、実用的な時間内に外れ値の検出を支援又は実行することができる。
【実施例1】
【0076】
以下では、図14〜図19を参照しながら、本発明の実施例1及び比較例について説明する。
図14は、実施例1及び比較例に用いたデータセットを示す図である。図14に示すデータセットは、2次元空間において、夜空の月(Moon)と星(Star)の光を模式的にプロットしたものである。以下では、図14に示すデータセットを、MoonStarデータセットと呼ぶ。MoonStarデータセットの性質は、以下の通りである。
・人工的に発生させたデータ
・次元数M=2
・データの95%は三日月形状の領域内に分布し、残り5%はランダムに分布
・データ数N=1000、5000
図14(a)は、データ数N=1000のデータセットであり、MoonStar1000と呼ぶ。図14(b)は、データ数N=5000のデータセットであり、MoonStar5000と呼ぶ。いずれも、「○」が各データを示している。
【0077】
判定精度を適切に比較できるように、後述する通り、いずれの例においても、データセットの5%を外れ値(Star)と判定した。また、計算時間も適切に比較できるように、全て同じコンピュータによって実行した。
【0078】
実施例1では、外れ値検出装置1によって外れ度合を算出し、値の小さかった5%(S9の閾値)を外れ値と判定した。
比較例1では、OC−SVM(One−Class Support Vector Machine)において、非線形写像を決めるカーネルパラメータγを「0.5」、外れ値の割合を指定するパラメータvを「0.05」とした。
比較例2では、OC−SVMにおいて、非線形写像を決めるカーネルパラメータγを「2」、外れ値の割合を指定するパラメータvを「0.05」とした。
比較例3では、LOF(Local Outlier Factor)において、パラメータkを「10」とし、値の大きかった5%を外れ値と判定した。
比較例4では、LOFにおいて、パラメータkを「100」とし、値の大きかった5%を外れ値と判定した。
尚、OC−SVMの計算では、いずれも、統計計算言語Rのe1071ライブラリに含まれるsvm関数を使用した。また、LOFの計算では、いずれも、統計計算言語Rのdprepライブラリに含まれるlofactor関数を使用した。
【0079】
図15は、実施例1における外れ値の検出結果を示す図である。図15(a)はMoonStar1000、図15(b)はMoonStar5000の結果である。いずれも、「×」が外れ値(Star)として検出されたデータ、「○」がMoonと判定されたデータを示している。尚、「×」(外れ値)の視認性を上げる為、「○」の色を淡いグレーによって図示している。以下、図16〜図19も同様である。
【0080】
以下に示す表1、表2は、それぞれ、実施例1におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0081】
【表1】
【0082】
【表2】
【0083】
ここで、4つのマスのうち、左上のマスは、「Moon」を「Moon」と検出した数を示している。右上のマスは、「Moon」を「Star」と検出した数を示している。左下のマスは、「Star」を「Moon」と検出した数を示している。右下のマスは、「Star」を「Star」と検出した数を示している。左上と右下の合計が、正しく検出した数である。左下と右上の合計が、誤って検出した数である。以下、表3〜表10も同様である。
【0084】
実施例1では、MoonStar1000に対して計算時間が0.03秒、MoonStar5000に対して計算時間が0.17秒であった。つまり、データ数が5倍の増加に対して、計算時間の増加率は約5.7倍であることから、データ数Nに対して、実施例1の計算時間のオーダーはО(Nの1乗)と言える。
【0085】
図16は、比較例1における外れ値の検出結果を示す図である。また、以下に示す表3、表4は、それぞれ、比較例1におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0086】
【表3】
【0087】
【表4】
【0088】
比較例1では、MoonStar1000に対して計算時間が0.07秒、MoonStar5000に対して計算時間が1.30秒であった。つまり、データ数が5倍の増加に対して、計算時間は約18.6倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0089】
図17は、比較例2における外れ値の検出結果を示す図である。また、以下に示す表5、表6は、それぞれ、比較例2におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0090】
【表5】
【0091】
【表6】
【0092】
比較例2では、MoonStar1000に対して計算時間が0.11秒、MoonStar5000に対して計算時間が1.69秒であった。つまり、データ数が5倍の増加に対して、計算時間は約15.4倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0093】
図18は、比較例3における外れ値の検出結果を示す図である。また、以下に示す表7、表8は、それぞれ、比較例3におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0094】
【表7】
【0095】
【表8】
【0096】
比較例3では、MoonStar1000に対して計算時間が2.05秒、MoonStar5000に対して計算時間が34.95秒であった。つまり、データ数が5倍の増加に対して、計算時間は約17.0倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0097】
図19は、比較例4における外れ値の検出結果を示す図である。また、以下に示す表9、表10は、それぞれ、比較例4におけるMoonStar1000、MoonStar5000の判別結果を示している。
【0098】
【表9】
【0099】
【表10】
【0100】
比較例4では、MoonStar1000に対して計算時間が6.38秒、MoonStar5000に対して計算時間が150.47秒であった。つまり、データ数が5倍の増加に対して、計算時間は約23.6倍の増加であることから、実施例1と比較すると、明らかに、データ数の増加に対する計算時間の増加率が高い。
【0101】
以上から、計算時間は、OC−SVMやLOFよりも、本発明の外れ値検出装置1の方が優位であることが分かった。
以下では、計算精度についても、本発明の外れ値検出装置1の方が、OC−SVMやLOFよりも優位であることについて説明する。
【0102】
実施例1と比較例1〜4の計算精度を比較する為、以下に示す表11では、実施例1と比較例1〜4のAUC(area under the ROC curve)を示している。ここで、ROCは、receiver operating characteristic(受診者操作特性)の略である。AUCは0〜1の値を取り、1に近い程、精度が良いことを示している。
【0103】
【表11】
【0104】
表11に示すように、本発明では、MoonStar1000とMoonStar5000の両方ともAUCが0.9以上であり、安定して高い精度を達成している。これに対して、OC−SVMでは、MoonStar1000とMoonStar5000の両方ともAUCが0.9以下であり、十分な精度が達成できていない。また、LOFについては、パラメータ次第で結果が大きく左右されており、パラメータチューニング作業が不可欠であることが分かる。
【実施例2】
【0105】
以下では、図20〜図22を参照しながら、本発明の実施例2について説明する。実施例2は、外れ値検出装置1を車両故障診断システムに適用する例である。
【0106】
図20は、実施例2における車両故障診断システムの構成図である。図20に示すように、車両故障診断システム100は、故障診断の対象となる車両システム101、データ収集装置102、及び外れ値検出装置1によって構成される。
【0107】
車両システム101は、自動車等の車両に搭載されるシステムである。車両システム101は、複数のECU(Electronic Control Unit:電子制御装置)、複数のセンサ、複数のアクチュエータ等が車載ネットワークを介して接続されている。
【0108】
データ収集装置102は、走行中の車両データを収集する装置である。データ収集装置102は、車載ネットワークに流れる信号、各コンポーネント(ECU、センサ、アクチュエータ等)の状態値等を車両データとして収集する。そして、データ収集装置102は、無線又は有線によって接続される外れ値検出装置1に車両データを送信する。
【0109】
データ収集装置102は、例えば、車両システム101の内部に設置されても良いし、外付け装置として設置されても良い。また、データ収集装置102は、例えば、車両システム101から物理的に離れた場所に設置されるコンピュータ(外れ値検出装置1を含む。)でも良い。データ収集装置102が車両システム101から物理的に離れた場所に設置される場合、車両システム101は、無線通信によってデータ収集装置102に車両データを送信する。
【0110】
外れ値検出装置1は、データ収集装置102によって収集される車両データから外れ値を検出する。これに対して、車両の故障診断を行う専門家は、検出される外れ値を詳細に確認し、車両に異常が発生しているか否かを確認する。
【0111】
図21は、実施例2における車両故障診断システムの処理を示すフローチャートである。図21に示すように、データ収集装置102は、車両システム101から、走行中の車両データを収集する(S11)。
【0112】
次に、外れ値検出装置1は、前述の図2に示すフローチャートに従って、データ収集装置102によって収集される車両データから外れ値を検出する(S12)。
【0113】
車両の故障診断を行う専門家は、外れ値検出装置1によって検出される外れ値を詳細に確認する。対処が必要な異常が発生している場合(S13のY)、専門家は運転者に通知し、修理を促す(S14)。又は、外れ値検出装置1が無線通信によって車両システム101に異常がある旨のメッセージを送信し、車両システム101が出力装置(表示装置や音声出力装置等)によって警報を出力しても良い。
【0114】
図22は、実施例2における外れ値の検出結果を示す図である。図22は、アクセル操作量、エンジン回転数、変速位置の3次元(3変量)のデータセットに対して、外れ値検出装置1が外れ値の検出を行った結果を示している。
【0115】
アクセル操作量及びエンジン回転数は、数値属性の変量である。変速位置は、「Low」、「2nd」、「3rd」の3つの値を取り得ることから、カテゴリ属性の変量とも言えるし、数値属性の変量とも言える。
【0116】
図22では、「×」が外れ値として検出されたデータ、「○」が外れ値ではないと判定されたデータを示している。図22に示す例では、変速位置が「Low」のとき、1つの外れ値が検出されている。これは、「アクセル操作量に対してエンジンの吹け上がりが悪い」という異常を示すものである。このように、本発明の外れ値検出装置1を車両故障診断システム100に適用すれば、車両の故障診断を精度良く行うことができる。
【0117】
以上、添付図面を参照しながら、本発明に係る外れ値検出装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0118】
1………外れ値検出装置
21………データセット
22a、22b………ビット列
23………並び替え後ビット列
30a〜30c………カルノー図
31………二分決定グラフ
32a〜32m………ノード
33………最上位ノード
34………定数ノード
35a〜35f………枝
41a〜41g………矩形領域
【特許請求の範囲】
【請求項1】
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置であって、
前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、
前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、
を具備する外れ値検出装置。
【請求項2】
前記構築手段は、前記観測領域を二分決定グラフとして構築し、
前記算出手段は、各ノードにおける局所密度から単一データの密度換算値を引いた値を単一データ除外局所密度とし、更に、前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出する
請求項1に記載の外れ値検出装置。
【請求項3】
前記構築手段は、数値属性の次元に係る前記ビット列群を最上位ビットから最下位ビットの順に並び変えて、前記二分決定グラフを階層的に構築し、
前記算出手段は、前記二分決定グラフでの前記着目データを表すパスを探索し、階層が変化するノードに係る前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出する
請求項2に記載の外れ値検出装置。
【請求項4】
前記算出手段は、階層が変化するノードに係る前記単一データ除外局所密度の一部若しくは全部の最大値、中央値又は平均値を、前記着目データの外れ度合とする
請求項3に記載の外れ値検出装置。
【請求項5】
前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段、
を更に具備する請求項1乃至請求項4のいずれかに記載の外れ値検出装置。
【請求項6】
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出方法であって、
前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築ステップと、
前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出ステップと、
を含む外れ値検出方法。
【請求項7】
コンピュータを、
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行し、
前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、
前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出手段と、
を具備する外れ値検出装置として機能させる為のプログラム。
【請求項8】
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置と、車両データを収集するデータ収集装置と、を含む車両故障診断システムであって、
前記外れ値検出装置は、
前記データ収集装置によって収集される前記車両データを前記データセットとし、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、
前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、
前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段と、
を具備する車両故障診断システム。
【請求項1】
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置であって、
前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、
前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、
を具備する外れ値検出装置。
【請求項2】
前記構築手段は、前記観測領域を二分決定グラフとして構築し、
前記算出手段は、各ノードにおける局所密度から単一データの密度換算値を引いた値を単一データ除外局所密度とし、更に、前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出する
請求項1に記載の外れ値検出装置。
【請求項3】
前記構築手段は、数値属性の次元に係る前記ビット列群を最上位ビットから最下位ビットの順に並び変えて、前記二分決定グラフを階層的に構築し、
前記算出手段は、前記二分決定グラフでの前記着目データを表すパスを探索し、階層が変化するノードに係る前記単一データ除外局所密度に基づいて、前記着目データの外れ度合を算出する
請求項2に記載の外れ値検出装置。
【請求項4】
前記算出手段は、階層が変化するノードに係る前記単一データ除外局所密度の一部若しくは全部の最大値、中央値又は平均値を、前記着目データの外れ度合とする
請求項3に記載の外れ値検出装置。
【請求項5】
前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段、
を更に具備する請求項1乃至請求項4のいずれかに記載の外れ値検出装置。
【請求項6】
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出方法であって、
前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築ステップと、
前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出ステップと、
を含む外れ値検出方法。
【請求項7】
コンピュータを、
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行し、
前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、
前記データセットに含まれるデータの中から着目データを決定し、前記観測領域において、前記着目データ自身が占める領域を除く前記着目データ周辺のデータ密度である着目データ除去局所密度を算出する算出手段と、
を具備する外れ値検出装置として機能させる為のプログラム。
【請求項8】
データの次元数が1又は複数、かつデータ数が複数のデータセットから外れ値の検出を支援又は実行する外れ値検出装置と、車両データを収集するデータ収集装置と、を含む車両故障診断システムであって、
前記外れ値検出装置は、
前記データ収集装置によって収集される前記車両データを前記データセットとし、前記データセットに含まれる各データを次元ごとにビット列に変換し、前記ビット列に基づいて、前記データセットの観測領域を構築する構築手段と、
前記データセットに含まれるデータの中から着目データを1つずつ決定し、前記観測領域から前記着目データに相当する領域を除去したときの前記着目データの周辺のデータ密度に基づいて、前記着目データの外れ度合を算出する算出手段と、
前記外れ度合と閾値を比較することによって、外れ値を検出する検出手段と、
を具備する車両故障診断システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図20】
【図21】
【図22】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図20】
【図21】
【図22】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2012−256311(P2012−256311A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−3272(P2012−3272)
【出願日】平成24年1月11日(2012.1.11)
【出願人】(000003609)株式会社豊田中央研究所 (4,200)
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成24年1月11日(2012.1.11)
【出願人】(000003609)株式会社豊田中央研究所 (4,200)
【Fターム(参考)】
[ Back to top ]