(57)【要約】【課題】複数の変数を含むデータについて、特徴を適切かつ自動的に抽出する、特徴抽出装置およびプログラムを提供する。【解決手段】特徴抽出装置１０は、Ｎ個（ただしＮは２以上の整数）のカラムを含むレコードの特徴を抽出する。特徴抽出装置１０は、複数のレコードを取得する機能と、Ｎ個のカラムのうちＭ個（ただしＭは２≦Ｍ≦Ｎとなる整数）からなるすべての組み合わせについて、カラム組を生成する機能（カラム組生成機能）と、レコードのそれぞれについて、カラム組のそれぞれに係る特徴数を決定する機能（ただし、特徴数は、当該レコードの、当該カラム組に含まれるすべてのカラムのデータ値を組み合わせた値の、そのカラム組における頻度を表す）と、レコードのそれぞれに、特徴数を関連付けて出力する機能とを備える。【選択図】図３
2018106383.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個（ただしＮは２以上の整数）のカラムを含むレコードの特徴を抽出する、特徴抽出装置であって、
複数の前記レコードを取得する機能と、
前記Ｎ個のカラムのうちＭ個（ただしＭは２≦Ｍ≦Ｎとなる整数）からなるすべての組み合わせについて、カラム組を生成する、カラム組生成機能と、
前記レコードのそれぞれについて、前記カラム組のそれぞれに係る特徴数を決定する機能であって、前記特徴数は、当該レコードの、当該カラム組に含まれるすべてのカラムのデータ値を組み合わせた値の、そのカラム組における頻度を表す、特徴数を決定する機能と、
前記レコードのそれぞれに、前記特徴数を関連付けて出力する機能と
を備える、特徴抽出装置。
【請求項２】
前記カラム組生成機能は、所定の上限カラム数Ｌ（ただしＬは２≦Ｌ≦Ｎとなる整数）に対し、少なくとも、２≦Ｍ≦ＬとなるすべてのＭについて実行される、請求項１に記載の装置。
【請求項３】
各レコードの各カラムのデータ値を数値に変換する機能と、
各カラムについて、各レコードの数値を正規化する機能と、
各カラム組について、各レコードの特徴数を正規化する機能と、
をさらに備える、請求項１または２に記載の装置。
【請求項４】
前記特徴抽出装置は、各カラム組について、各レコードの特徴数に基づき、所定の異常判定規則を用いて、各レコードが異常レコードであるか否か判定する、異常判定機能をさらに備える、請求項１〜３のいずれか一項に記載の装置。
【請求項５】
前記特徴抽出装置は、すべてのカラムおよびカラム組のうちから選択される、合計２個のカラムまたはカラム組からなる判定対象対について、各レコードの数値または特徴数に基づき、所定の異常判定規則を用いて、各レコードが異常レコードであるか否か判定する、異常判定機能をさらに備える、請求項１〜４のいずれか一項に記載の装置。
【請求項６】
前記異常判定機能は、
前記判定対象対が２つのカラム組からなる場合には実行されず、
前記判定対象対がカラムおよびカラム組からなり、かつ、そのカラム組にそのカラムが含まれない場合には実行されず、
前記判定対象対にカラムが含まれ、かつ、そのカラムのデータ値がすべてのレコードについて同一である場合には実行されず、
前記判定対象対にカラム組が含まれ、かつ、そのカラム組の特徴数がすべてのレコードについて同一である場合には実行されない、
請求項５に記載の装置。
【請求項７】
前記異常判定機能は、前記判定対象対を構成するカラムおよびカラム組に関わらず、同一の前記異常判定規則を用いて実行される、請求項５または６に記載の装置。
【請求項８】
前記特徴抽出装置は、すべてのカラムおよびカラム組のうちから選択される、合計２個のカラムまたはカラム組のそれぞれを軸とする直交座標系において、各レコードの位置を示す画像を生成する、画像生成機能をさらに備え、
前記特徴抽出装置は、カラムおよびカラム組のうち２個からなるすべての組み合わせについて、前記画像生成機能を実行する、
請求項１〜７のいずれか一項に記載の装置。
【請求項９】
コンピュータを、請求項１〜８のいずれか一項に記載の特徴抽出装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの特徴を抽出する特徴抽出装置に関する。
【背景技術】
【０００２】
データを分類する技術が公知である。たとえば、大量のデータを、正常なデータと異常なデータとに分類する処理が行われている。このような方法の例は特許文献１および特許文献２にそれぞれ記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１３８０４４号公報
【特許文献２】特許第５９７３６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、複数の変数を含むデータの分類を行う場合に、基準となる特徴を手作業で決定しなければならないという問題があった。
【０００５】
たとえば、大量のデータを扱う場合には、すべてのデータを参照するのは労力の点で困難であるため、一部のデータを抜き出して基準を決定するという省略作業が必要になり、選別作業の適切さが問題となる。さらに、たとえば１組のデータに多数の変数の値が含まれる場合には、特徴となる相関を検討すべき変数の組み合わせの数が膨大となり、すべての組み合わせを網羅的に考慮するのは困難である。
【０００６】
この発明は、このような問題点を解決するためになされたものであり、複数の変数を含むデータについて、特徴を適切かつ自動的に抽出する、特徴抽出装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の問題点を解決するため、この発明に係る特徴抽出装置は、Ｎ個（ただしＮは２以上の整数）のカラムを含むレコードの特徴を抽出する、特徴抽出装置であって、
複数の前記レコードを取得する機能と、
前記Ｎ個のカラムのうちＭ個（ただしＭは２≦Ｍ≦Ｎとなる整数）からなるすべての組み合わせについて、カラム組を生成する、カラム組生成機能と、
前記レコードのそれぞれについて、前記カラム組のそれぞれに係る特徴数を決定する機能であって、前記特徴数は、当該レコードの、当該カラム組に含まれるすべてのカラムのデータ値を組み合わせた値の、そのカラム組における頻度を表す、特徴数を決定する機能と、
前記レコードのそれぞれに、前記特徴数を関連付けて出力する機能と
を備える。
特定の態様によれば、前記カラム組生成機能は、所定の上限カラム数Ｌ（ただしＬは２≦Ｌ≦Ｎとなる整数）に対し、少なくとも、２≦Ｍ≦ＬとなるすべてのＭについて実行される。
特定の態様によれば、
各レコードの各カラムのデータ値を数値に変換する機能と、
各カラムについて、各レコードの数値を正規化する機能と、
各カラム組について、各レコードの特徴数を正規化する機能と、
をさらに備える。
特定の態様によれば、前記特徴抽出装置は、各カラム組について、各レコードの特徴数に基づき、所定の異常判定規則を用いて、各レコードが異常レコードであるか否か判定する、異常判定機能をさらに備える。
特定の態様によれば、前記特徴抽出装置は、すべてのカラムおよびカラム組のうちから選択される、合計２個のカラムまたはカラム組からなる判定対象対について、各レコードの数値または特徴数に基づき、所定の異常判定規則を用いて、各レコードが異常レコードであるか否か判定する、異常判定機能をさらに備える。
特定の態様によれば、
前記異常判定機能は、
前記判定対象対が２つのカラム組からなる場合には実行されず、
前記判定対象対がカラムおよびカラム組からなり、かつ、そのカラム組にそのカラムが含まれない場合には実行されず、
前記判定対象対にカラムが含まれ、かつ、そのカラムのデータ値がすべてのレコードについて同一である場合には実行されず、
前記判定対象対にカラム組が含まれ、かつ、そのカラム組の特徴数がすべてのレコードについて同一である場合には実行されない。
特定の態様によれば、前記異常判定機能は、前記判定対象対を構成するカラムおよびカラム組に関わらず、同一の前記異常判定規則を用いて実行される。
特定の態様によれば、
前記特徴抽出装置は、すべてのカラムおよびカラム組のうちから選択される、合計２個のカラムまたはカラム組のそれぞれを軸とする直交座標系において、各レコードの位置を示す画像を生成する、画像生成機能をさらに備え、
前記特徴抽出装置は、カラムおよびカラム組のうち２個からなるすべての組み合わせについて、前記画像生成機能を実行する。
また、本発明に係るプログラムは、コンピュータを上述の特徴抽出装置として機能させる。
【発明の効果】
【０００８】
この発明に係る特徴抽出装置およびプログラムによれば、レコードのカラムの組み合わせについて網羅的に特徴数を決定するので、レコードの特徴を適切かつ自動的に抽出することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１に係る特徴抽出装置の位置付けの例を示す図である。
【図２】図１の特徴抽出装置の構成の例を示す図である。
【図３】図１の特徴抽出装置が扱うデータの構成の例を示す図である。
【図４】図１の特徴抽出装置が扱うデータの構成の別の例を示す図である。
【図５】図１の特徴抽出装置の特徴抽出処理の流れの例を示すフローチャートである。
【図６】実施の形態２に係る特徴抽出装置の、異常判定処理の流れの例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態１．
図１に、本発明の実施の形態１に係る特徴抽出装置１０の位置付けの例を示す。特徴抽出装置１０は、データから特徴を抽出し、抽出した特徴を元のデータに関連付けて出力する。出力されたデータおよび特徴は、他の装置（たとえば異常検知装置２０）によって利用することができる。
【００１１】
図２に、特徴抽出装置１０の構成の例を示す。特徴抽出装置１０は公知のコンピュータとしての構成を備え、演算を行う演算手段１１と、情報を格納する記憶手段１２とを備える。また、とくに図示しないが、特徴抽出装置１０は、使用者の操作を受け付ける入力手段と、情報を出力する出力手段と、外部の通信ネットワークに対し情報の入出力を行う通信手段とを備える。
【００１２】
記憶手段１２は、入力されるデータと、特徴抽出装置１０がデータについて抽出する特徴とを格納する。また、記憶手段１２は、図示しないプログラムを格納する。コンピュータの演算手段１１がこのプログラムを実行することにより、そのコンピュータは特徴抽出装置１０として機能する。すなわち、このプログラムは、コンピュータを、本明細書に記載される特徴抽出装置１０として機能させる。
【００１３】
図３に、図１の特徴抽出装置が扱うデータの構成の例を示す。この例は、たとえば特定のコンピュータの通信記録を表すものであるが、本発明は一般的なデータについて適用可能である。なお、図３および図４の例は、後述する正規化処理を行っていない状態のものである。
【００１４】
データが構成するレコードＲ１〜Ｒ５に、それぞれ特徴数が関連付けられている。レコードは複数のカラムを含み、各カラムに対応する変数の値（データ値）を有する。図３では、カラムの例として、「時刻」を表すカラムと、「ＩＰアドレス」を表すカラムとが示されている。本明細書において、１つのレコードに含まれるカラムの数をＮ（ただしＮは２以上の整数）で表す場合がある。図３の例ではＮ＝２である。特徴抽出装置１０は、このようなレコードＲ１〜Ｒ５それぞれのレコードの特徴を抽出する。
【００１５】
特徴数は、レコードとカラム組との組み合わせのそれぞれについて決定される。カラム組とは、１つ以上のカラムからなる組である。すなわち、カラム組は、要素としてカラムを持つ集合であるということができる。図３の例では、カラム組３０として、「時刻」のみからなるカラム組｛時刻｝と、「ＩＰアドレス」のみからなるカラム組｛ＩＰアドレス｝と、「時刻」および「ＩＰアドレス」からなるカラム組｛時刻，ＩＰアドレス｝とが生成されている。なお、この例から明らかなように、本明細書において、単一のカラムのみからなるものであっても「カラム組」という名称を用いるが、区別のためカラム組には｛  ｝記号を付す。また、各カラム組についてｎ｛  ｝によって後述の特徴数を表す。
【００１６】
本明細書において、カラム組を構成するカラムの数をＭ（ただしＭは整数であってＭ≦Ｎ）で表す場合がある。全部でＮ個のカラムが存在する場合には、Ｍ個のカラムからなるカラム組が最大ＮＣＭ個定義可能である。図３の例では、カラムの数がＮ＝２であるので、単一のカラムからなるカラム組（Ｍ＝１）が最大２組定義可能であり、２つのカラムからなるカラム組（Ｍ＝２）が最大１組定義可能である。すなわち、図３の例では、与えられたカラムから構成可能なカラム組がすべて定義されているといえる。
【００１７】
特徴数は、当該レコードの、当該カラム組に含まれるすべてのカラムのデータ値を組み合わせた値の、そのカラム組における頻度を表す。たとえばカラム組｛時刻｝について、「2016-03-01 18:20:53」というデータ値が２つのレコード（レコードＲ１およびＲ２）に出現するので、「2016-03-01 18:20:53」というデータ値を有するレコードの特徴数「ｎ｛時刻｝」の値は「２」となる。また、「時刻」および「ＩＰアドレス」からなるカラム組｛時刻，ＩＰアドレス｝について、「2016-03-01 18:20:56」および「91.205.189.15」の組み合わせが２つのレコード（Ｒ４およびＲ５）に出現するので、それらのレコードの特徴数「ｎ｛時刻，ＩＰアドレス｝」は「２」となる。このように、頻度は各カラム組について定義可能であるので、特徴数も各カラム組について決定可能である。
【００１８】
図４に、データの構成の別の例を示す。この例ではカラム数Ｎ＝３である。カラム組は、１≦Ｍ≦Ｎ＝３となるすべての整数Ｍについて定義されており、全部で７個である。なお特徴数は、図３および図４に示すように頻度に一致する整数値であってもよいが、頻度を表す数値であればどのようなものであってもよい（たとえば後述するように正規化された数値であってもよい）。
【００１９】
以上のように構成される特徴抽出装置１０の動作を、以下に説明する。
図５は、特徴抽出装置１０の特徴抽出処理の流れの例を示すフローチャートである。まず特徴抽出装置１０は、データを表す複数のレコードを取得する（ステップＳ１）。レコードの取得は、たとえばネットワークを介した入力処理によって行われてもよいし、記憶手段１２にあらかじめ格納されたデータを読み込んでもよい。
【００２０】
次に、特徴抽出装置１０は、レコードを数値化する（ステップＳ２）。数値化の方法はどのようなものであってもよいが、たとえば、各カラムについてデータ値の頻度を算出し、頻度の昇順に数値（たとえば非負整数または正の整数）を割り当てることによって行われる。または、データ値のアルファベット順（辞書順）に数値を割り当てることによって行われてもよい。または、時刻であれば秒数に換算してもよいし、ＩＰアドレスであれば４バイト長の数値としてもよい。
【００２１】
なお、この処理は、もともと数値であるデータ（例として図４のレコードＡおよびＣ）については省略可能である。また、抽出された特徴の利用方法（異常検知装置２０の仕様等）によっては、ステップＳ２全体を省略してもよい。データ値が数値でない場合であっても、上述の方法で特徴数を決定することは可能である。
【００２２】
次に、特徴抽出装置１０はカラム組を生成する（ステップＳ３、カラム組生成機能）。生成されるカラム組の例は、図３および図４にカラム組３０として示される。なおステップＳ３の処理は、ステップＳ１の前に実行してもよいし、ステップＳ１およびＳ２と並列的に実行してもよい。
【００２３】
次に、特徴抽出装置１０は、レコードのそれぞれについて、カラム組のそれぞれに係る特徴数を決定する（ステップＳ４）。すなわち、各レコードについて、当該レコードの、当該カラム組に含まれるすべてのカラムのデータ値を組み合わせた値の、そのカラム組における頻度を算出する。図３および図４は、ステップＳ４が終了した時点の例ということができる。
なおステップＳ２の処理は、ステップＳ４の処理の後に実行するように構成してもよい。
【００２４】
次に、特徴抽出装置１０は、各カラムおよびカラム組について、各レコードの数値（データ値）および特徴数を正規化する（ステップＳ５）。正規化の方法はどのようなものであってもよいが、たとえばそのカラムにおける最小のデータ値を０に、そのカラムにおける最大のデータ値を１にそれぞれ変換する線形写像関数を用いることができる。たとえば、あるカラムまたはカラム組について、データ値または特徴数ｘｉ（ただしｉはレコードを表すインデックス）は、（ｘｉ−ｘｍｉｎ）／（ｘｍａｘ−ｘｍｉｎ）に正規化される。ただしｘｍａｘおよびｘｍｉｎはそれぞれ、当該カラムまたはカラム組におけるデータ値または特徴数の最大値および最小値である。図４のカラム「Ｃ」について、レコードＲ１１，Ｒ１２，Ｒ１３，Ｒ１４のデータ値はそれぞれ１，２，３，４であるが、このような線形写像変換を用いると、各データ値は０，１／３，２／３，１と正規化される。なお、抽出された特徴の利用方法（異常検知装置２０の仕様等）によっては、ステップＳ５を省略してもよい。また、正規化は、すべてのカラムおよびカラム組について行う必要はなく、一部のカラムまたはカラム組のみについて行ってもよい。
【００２５】
次に、特徴抽出装置１０は、レコードのそれぞれに、特徴数を関連付けて出力する（ステップＳ６）。このようにして、図３または図４に示す情報（ただし場合によってはさらに正規化されたもの）が出力される。
【００２６】
出力されたレコードおよび特徴数は、適宜利用することが可能であるが、たとえば異常検知装置２０による異常検知処理に用いることができる。たとえば、異常検知装置２０は、複数のレコードと、各レコードに関連付けられた特徴数との入力を受け付け、これらに基づいて、各レコードが異常データであるか否かについての判定を行う。
【００２７】
レコードとして、たとえば特定のコンピュータにおける通信記録（図３に示すもの等）を用いれば、異常な通信記録を検出することができるので、マルウェア等による被害を抑制することができる。
【００２８】
このように、本発明の実施の形態１に係る特徴抽出装置１０によれば、複数の変数を表すカラムを含むデータについて、特徴を適切かつ自動的に抽出することができるので、基準となる特徴を手作業で決定する必要がなくなる。
【００２９】
たとえば、異常検知装置２０による異常検知処理において、レコードだけを入力したのでは、カラム間の相関が適切に考慮されない可能性があり、異常判定の精度に限界がある。これに対し、特徴抽出装置１０は各レコードについてカラム組ごとに特徴数を関連付けて出力するので、各カラム組が表すカラムの組み合わせについて相関を考慮した異常判定を行うことができ、異常判定の精度が向上する。
【００３０】
また、大量のデータを扱う場合であっても、すべてのデータについて特徴数を出力することが容易であり、したがって、一部のデータのみを選別する必要がない。さらに、レコードが多数のカラムを含む場合であっても、特徴となる相関を検討すべきカラムの組み合わせすべてについて、網羅的に特徴数を出力することができる。
【００３１】
なお、レコードは複数のカラムを用いて定義されている必要がある。たとえば１つのレコードが単一のカラムのみから構成されている文字列データ（Ｐｒｏｘｙサーバのログ等）は不適である。
【００３２】
また、とくにＡＴＰ攻撃を検出したい場合等には、異常検知処理のリアルタイム性が重視されるが、その場合には、長時間にわたって記録された大量のレコードを一度に処理するのではなく、秒単位や分単位でデータを区切り、適切に処理可能なレコード数に限定して処理を行うと好適である。
【００３３】
また、特徴抽出装置１０を構成するコンピュータの処理能力に応じて、カラムの数に上限を設けてもよい。
【００３４】
実施の形態２．
実施の形態２は、特徴抽出装置が異常検知装置の機能を兼ねる構成としたものである。すなわち、実施の形態２に係る特徴抽出装置は、実施の形態１の特徴抽出装置１０のようにレコードの特徴を抽出する機能に加え、実施の形態１の異常検知装置２０のように、レコードおよび抽出された特徴に基づいて、各レコードが異常レコードであるか否かを判定する機能を備える。
【００３５】
とくに、実施の形態２に係る特徴抽出装置は、二軸選択を行い、２次元のデータに基づいて異常判定を行う。すなわち、取得したデータを構成するカラムおよびカラム組のうちから、合計２個のカラムまたはカラム組を選択し（以降、ここで特定される２個のカラムまたはカラム組からなる対を「判定対象対」と呼ぶ）、各レコードの判定対象対のデータ値（数値）に基づいて、そのレコードが異常レコードであるか否かを判定する。言い換えると、特徴抽出装置は、複数の２次元ベクトルのうちから異常ベクトルを検出するということができる。なお、実施の形態２で入力されるレコードはすべて数値化されているものとする。
【００３６】
図６は、実施の形態２に係る特徴抽出装置の異常判定処理の流れの例を示すフローチャートである。図６の処理は、たとえば図５の処理が終了した後に開始される。
【００３７】
まず特徴抽出装置は、複数のレコードと、各レコードに関連付けられた特徴数とを取得する（ステップＳ１１）。レコードおよび特徴数は、図５の処理に従って構成されているものとする。なお、図６の処理が図５の処理に続いて行われる場合には、ステップＳ６およびステップＳ１１は省略可能である。
【００３８】
次に、特徴抽出装置は、判定対象対を生成する（ステップＳ１２）。判定対象対は、たとえば合計２個のカラムまたはカラム組からなる対すべてである。図４の例では、カラムの数がＮ＝３であり、カラム組の数が７であるので、カラムおよびカラム組の数は合計１０個となり、生成される判定対象対の数は１０Ｃ２個となる。
【００３９】
次に、特徴抽出装置は、各判定対象対について異常判定を行う（ステップＳ１３、異常判定機能）。異常判定の方法は、各レコードの各カラムの数値または各カラム組の特徴数に基づき、所定の異常判定規則を用いて、各レコードが異常レコードであるか否かを判定する方法であれば、どのようなものであってもよい。たとえば特許文献２に記載される方法を用いてもよい。
【００４０】
実施の形態２では、特徴抽出装置は、ステップＳ１３において、判定対象対を構成するカラムおよびカラム組に関わらず、同一の異常判定規則を用いる。たとえば、カラムＡおよびカラム組｛Ａ，Ｂ｝からなる判定対象対に対しても、カラムＣおよびカラム組｛Ａ，Ｃ｝からなる判定対象対に対しても、特許文献２に記載される判定規則を用いる。このようにすると、異常判定規則を個別に設定する必要がないので、規則を検討する労力が低減可能である。
【００４１】
次に、特徴抽出装置は、判定結果を出力する（ステップＳ１４）。たとえば、いずれかの判定対象対について異常レコードであると判定されたレコードには、異常レコードであることを示す情報を関連付けて出力する。なお合わせて、いずれの判定対象対についても正常レコードであると判定されたレコードには、正常レコードである（または異常レコードではない）ことを示す情報を関連付けて出力してもよい。
【００４２】
このように、実施の形態２に係る特徴抽出装置によれば、実施の形態１に従って決定された大量の特徴数を有効に活用し、より適切な異常判定を行うことができる。
【００４３】
実施の形態２において、以下のような変形を施すことができる。
実施の形態２ではすべての判定対象対について異常判定機能を実行するが、一部の判定対象対についてはこれを省略してもよい。とくに、適切に異常を検出できる可能性が低い判定対象対については異常判定を省略すると、処理スピードを向上させることが期待でき、効率的である。
【００４４】
たとえば、判定対象対が２つのカラム組からなる場合には、異常判定機能を実行しないよう構成してもよい。すなわち、判定対象対の少なくとも一方がカラムである場合にのみ、異常判定機能を実行する。図４の例では、カラム組｛Ａ｝およびカラム組｛Ｂ｝からなる判定対象対については異常判定が省略される。
【００４５】
また、たとえば、判定対象対がカラムおよびカラム組からなり、かつ、そのカラム組にそのカラムが含まれない場合には、異常判定機能を実行しないよう構成してもよい。図４の例において、カラムＡおよびカラム組｛Ｂ，Ｃ｝からなる判定対象対を考えると、カラムＡはカラム組｛Ｂ，Ｃ｝に含まれないので、この判定対象対については異常判定が省略される。
【００４６】
また、たとえば、判定対象対にカラムが含まれ、かつ、そのカラムのデータ値がすべてのレコードについて同一である場合には、異常判定機能を実行しないよう構成してもよい。同様に、判定対象対にカラム組が含まれ、かつ、そのカラム組の特徴数がすべてのレコードについて同一である場合には、異常判定機能を実行しないよう構成してもよい。図４の例では、カラム組｛Ａ｝、カラム組｛Ｂ，Ｃ｝、および、カラム組｛Ａ，Ｂ，Ｃ｝は、それぞれすべてのレコードについて特徴数が同一なので、これらのカラム組のいずれかを含む判定対象対については異常判定が省略される。
【００４７】
なおこれらの異常判定を省略する方法としては、次の２つの方法が考えられる。１つめの方法としては、異常判定を実行しないといする組み合わせについては判定対象対を生成しない。つまり、ステップＳ１２の対象外とする方法である。
２つめの方法としては、ステップＳ１２では判定対象対を生成し、ステップＳ１３の異常判定処理で判定処理の対象外とする方法である。
どちらの方法によっても、異常判定の対象外とする組み合わせを対象外とすることで、処理効率を向上させることが期待できる。
【００４８】
実施の形態２において、特徴抽出装置は、各レコードの関係を示す画像を生成する機能（画像生成機能）を備えてもよい。たとえば、判定対象対のそれぞれについて、対を構成するカラムまたはカラム組のそれぞれを軸とする直交座標系において、各レコードの位置を示す画像を生成する。すなわち、判定対象対それぞれについて１枚の２次元グラフ画像が生成され、各画像において、１つのレコードにつき１つの記号（図形または点等）が、各レコードに対応する位置にプロットされることになる。また、特徴抽出装置は、生成された画像を出力してもよい。
【００４９】
さらに、画像において、異常レコードについては、異常レコードであることを示すマークを表示してもよい。たとえば、異常レコードを示す点を中心として、赤色の円を表示してもよい。このようにすると、特徴抽出装置の利用者は、異常レコードの状況を容易に把握することができる。
【００５０】
なお、画像生成機能は、すべての判定対象対について実行されてもよいし、異常判定機能と同様に一部の判定対象対について省略してもよい。
【００５１】
実施の形態２では、判定対象対を構成するカラムおよびカラム組に関わらず、同一の異常判定規則を用いている（判定対象対以外の条件に応じては、異なる異常判定規則を用いてもよい）。このため、ステップＳ５を実行してデータ値および特徴数を正規化しておくと好適である。変形例として、カラムまたはカラム組に応じて異なる異常判定規則を用いてもよい。その場合には、ステップＳ５を省略してもよい。
【００５２】
また、実施の形態２では判定対象対は２次元であるが、３次元以上のベクトルの異常判定アルゴリズムを用いる場合には、合計３個以上のカラムまたはカラム組からなる判定対象組を生成して利用してもよい。
【００５３】
異常判定機能は、判定対象対を生成することなく実行することも可能である。たとえば、特徴抽出装置は、各カラム組について、各レコードの特徴数に基づき、所定の異常判定規則を用いて、各レコードが異常レコードであるか否か判定してもよい。この場合の異常判定規則として、特徴数が例外的に大きいレコードおよび特徴数が例外的に小さいレコードを異常レコードと判定するという規則を用いてもよい。図４のカラム組｛Ａ｝の例では、特徴数はすべて５であり、例外的に大きいまたは小さい特徴数は出現しないが、仮にカラム組｛Ａ｝の特徴数のうち１つだけが１４．０１という大きい値であり、他の特徴数が０〜０．０３の範囲内の小さい値であれば、１４．０１の値を持つレコードを異常レコードと判定してもよい。逆に、仮にカラム組｛Ａ｝の特徴数のうち１つだけが０．０２という小さい値であり、他の特徴数が１４．００〜２３．００の範囲内の大きい値であれば、０．０２の値を持つレコードを異常レコードと判定してもよい。このような判定方法を実現するアルゴリズムは、当業者が適宜設計可能である。たとえば、そのカラム組における各特徴数の偏差値を算出し、偏差値から５０を減算した絶対値が所定の閾値を超える場合に、その特徴数を持つレコードを異常レコードと判定してもよい。
【００５４】
このような判定方法を用いると、カラム組に属する各カラムの変数の従属関係に注目した異常判定が可能となる。概してそれらの変数が互いに独立である（それらの変数間に従属関係がない）にも関わらず、特定のパターンのみ従属して出現する場合には、そのパターンを含むレコードは異常レコードである可能性が高いが、このような判定方法によれば、それらのパターンを含むレコードの特徴数が大きくなるので、異常レコードであると適切に判定される。逆に、概してそれらの変数間に従属関係があるにも関わらず、少数のレコードのみそれらの変数が独立して出現する場合には、そのパターンを含むレコードは異常レコードである可能性が高いが、このような判定方法によれば、それらのパターンを含むレコードの特徴数が小さくなるので、異常レコードであると適切に判定される。
【００５５】
さらに、実施の形態１および２において、次のような変形を施すことができる。
必要に応じ、データに前処理を行ってもよい。時系列データの場合には、前処理の前に粒度の細かいカラム（たとえば日時を表すカラム）で予めソートしておく。たとえば、端数を丸めて、この値を、処理すべきレコードとして特徴抽出装置に入力してもよい。または、原レコード（元のデータ）間の差分を取得し、この差分を、処理すべきレコードとして特徴抽出装置に入力してもよい。または、原レコードのカラム毎の移動平均を算出し、この移動平均を、処理すべきレコードとして特徴抽出装置に入力してもよい。原レコードのカラム毎の移動平均の差分を用いてもよい。原レコードに基づいて、２段階学習に基づく変化点スコアリング等の変化点強調関数を算出し（たとえば山西健司「データマイニングによる異常検知」、共立出版、２００９年）、その値を、処理すべきレコードとして特徴抽出装置に入力してもよい。「処理すべきレコードとして特徴抽出装置に入力してもよい」とは、原レコードにカラムを追加してもよいし、原レコードのカラムを置き換えてもよい。これらの組み合わせを用いてもよい。
【００５６】
カラム組のうち、全レコードについて同一の特徴数となるものは、削除してもよい。たとえば図４の例では、カラム組｛Ａ｝、カラム組｛Ｂ，Ｃ｝、カラム組｛Ａ，Ｂ，Ｃ｝は削除してもよい。削除のタイミングはたとえばステップＳ５の直後であってもよい。
【００５７】
図３および図４の例では、カラムの数Ｎに対し、１≦Ｍ≦Ｎとなるすべての整数Ｍについて、Ｍ個のカラムからなるカラム組が生成されている。しかしながら、常にすべての整数Ｍについてカラム組を生成する必要はない。２≦Ｍ≦Ｎとなる整数Ｍのうち少なくとも１つについて、Ｍ個のカラムからなるすべての組み合わせについてカラム組が生成されればよい。たとえば、図４の例において、Ｍ＝２についてのみカラム組を生成してもよい（その場合には、生成されるカラム組は、｛Ａ，Ｂ｝，｛Ａ，Ｃ｝，｛Ｂ，Ｃ｝の３個のみとなる）。
【００５８】
または、所定の上限カラム数Ｌ（ただしＬは２≦Ｌ≦Ｎとなる整数）に対し、２≦Ｍ≦ＬとなるすべてのＭについてカラム組を生成してもよい（その場合には、さらにＭ＝１についてカラム組を生成することを妨げない）。このようにすると、計算量を抑制しつつ、効率的にカラム組を生成して特徴を抽出することができる。なお、Ｌは特徴抽出装置があらかじめ記憶していてもよいし、任意の値の入力を受け付けてもよい。
【００５９】
また、特徴数を決定または算出した後、異常判定を行う前に、特定の条件に応じて特徴数を更新してもよい。たとえば、複数のカラムに対応する変数が互いに独立であることが判明している場合には、それらのカラムを含むカラム組の特徴数は、頻度でなく各カラムの確率の積に置き換えてもよい。たとえば図４の例において、カラムＡとカラムＢとが互いに独立であることが判明している場合には、カラム組｛Ａ，Ｂ｝の特徴数を、カラムＡにおけるデータ値の出現確率と、カラムＢにおけるデータ値の出現確率との積としてもよい。
【００６０】
これを図４のレコードＲ１１について説明すると、カラムＡのデータ値「１」の出現確率は０．５であり（すなわち全１０レコードのうち５つのみについてその値が出現しており）、カラムＢのデータ値「Ｘ」の出現確率は０．４である（すなわち全１０レコードのうち４つのみについてその値が出現している）。したがって、カラムＡとカラムＢとが互いに独立であることが判明している場合には、レコードＲ１１のカラム組｛Ａ，Ｂ｝の特徴数を０．５×０．４＝０．２としてもよい。このようにすると、本来互いに独立である変数が偶然偏った場合等であっても、その偶然の偏りを無視して適切な異常判定を行うことができる。
【００６１】
実施の形態１および２では、正規化後のデータ値および特徴数の範囲は［０，１］となるが、他の範囲に正規化してもよい。たとえば［−１，１］としてもよく、［−０．５，０．５］としてもよく、［０，１００］としてもよい。
【符号の説明】
【００６２】
１０  特徴抽出装置、３０  カラム組、Ｓ３  カラム組生成機能、Ｓ１３  異常判定機能。
【図１】
2018106383.tif 000003
【図２】
2018106383.tif 000004
【図３】
2018106383.tif 000005
【図４】
2018106383.tif 000006
【図５】
2018106383.tif 000007
【図６】
2018106383.tif 000008