(57)【要約】      （修正有）【課題】センサ等で取得されたデータを収集して分析し、異常検出の精度を高める情報処理装置、方法及びプログラムを提供する。【解決手段】データ格納部１０１に格納されている、属性の値についての頻度分布のデータに基づき、頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出する第１算出部１１７と、特定の範囲について第１算出部により算出された頻度のうち少なくとも一部の頻度の総和を、属性の値の総数で除することで、特定の範囲内の値が発生する確率を算出する第２算出部１１９とを有する。【選択図】図６
2018077735.tif 000002
【特許請求の範囲】
【請求項１】
データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、前記頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出する第１算出部と、
前記特定の範囲について前記第１算出部により算出された頻度のうち少なくとも一部の頻度の総和を、前記属性の値の総数で除することで、前記特定の範囲内の値が発生する確率を算出する第２算出部と、
を有する情報処理装置。
【請求項２】
前記第１算出部は、
前記頻度分布の区間毎に、当該区間の頻度を表すパラメータと、当該区間の長さを指定するためのパラメータと、前記特定の範囲を指名するためのパラメータとに基づき、所定の計算方法に従って前記頻度分布曲線の前記特定の範囲に対応する頻度を算出する、
請求項１記載の情報処理装置。
【請求項３】
前記所定の計算方法での計算において、前記頻度分布の各区間についての前記頻度分布曲線の当該区間に対応する頻度は、前記属性の値の総数が多くなるほど前記頻度分布の当該区間の頻度に近付き、前記属性の値の総数が少なくなるほど前記頻度分布の当該区間の頻度と比較して小さくなるように算出される、
請求項２記載の情報処理装置。
【請求項４】
前記第１算出部は、
前記頻度分布の区間のうち予め指定された区間の各々について、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出する、
請求項１記載の情報処理装置。
【請求項５】
前記第２算出部により算出された確率と所定の閾値の比較とに基づき、警告を出力するか決定する決定部
をさらに有する請求項１乃至４のいずれか１つ記載の情報処理装置。
【請求項６】
コンピュータが、
データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、前記頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出し、
前記特定の範囲について算出された頻度のうち少なくとも一部の頻度の総和を、前記属性の値の総数で除することで、前記特定の範囲内の値が発生する確率を算出する、
処理を実行する情報処理方法。
【請求項７】
コンピュータに、
データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、前記頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出し、
前記特定の範囲について算出された頻度のうち少なくとも一部の頻度の総和を、前記属性の値の総数で除することで、前記特定の範囲内の値が発生する確率を算出する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出技術に関する。
【背景技術】
【０００２】
センサ等で取得されたデータを収集して分析し、異常な事象が発生した場合にアラートを通知する技術が存在する。例えば或る文献は、正常なデータである参照データを使用して、異常なデータの判定を行う技術を開示する。
【０００３】
但し、過去に取得したデータを使用して異常か否かの判定を行う技術においては、過去に取得したデータのサンプル数が少ない場合に誤検出が起こりやすいという問題がある。上記の文献は、このような問題には着目していない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／０４１４４７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、１つの側面では、異常検出の精度を高めるための技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出する第１算出部と、特定の範囲について第１算出部により算出された頻度のうち少なくとも一部の頻度の総和を、属性の値の総数で除することで、特定の範囲内の値が発生する確率を算出する第２算出部とを有する。
【発明の効果】
【０００７】
１つの側面では、異常検出の精度を高めることができるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、事象の発生確率に基づき異常検出を行う技術について説明するための図である。
【図２】図２は、本実施の形態の概要を説明するための図である。
【図３】図３は、本実施の形態の概要を説明するための図である。
【図４】図４は、本実施の形態の概要を説明するための図である。
【図５】図５は、第１の実施の形態のシステム構成図である。
【図６】図６は、計算装置の機能ブロック図である。
【図７】図７は、データ取得装置の機能ブロック図である。
【図８】図８は、計算装置が実行する処理の処理フローを示す図である。
【図９】図９は、データ格納部に格納されるデータの一例を示す図である。
【図１０】図１０は、第１パラメータ格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、第２パラメータ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、閾値格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、区間集合データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、ヒストグラムデータ格納部に格納されるデータの一例を示す図である。
【図１５】図１５は、計算装置が実行する処理の処理フローを示す図である。
【図１６】図１６は、総和算出処理の処理フローを示す図である。
【図１７】図１７は、第１頻度データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、第２頻度データ格納部に格納されるデータの一例を示す図である。
【図１９】図１９は、確率データ格納部に格納されるデータの一例を示す図である。
【図２０】図２０は、本実施の形態を具体的に説明するための図である。
【図２１】図２１は、本実施の形態を具体的に説明するための図である。
【図２２】図２２は、第２の実施の形態のシステム構成図である。
【図２３】図２３は、第３の実施の形態のシステム構成図である。
【図２４】図２４は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【０００９】
［実施の形態１］
図１を用いて、事象の発生確率に基づき異常検出を行う技術について説明する。例えば、或る特徴量ｘについて異常検出を行うことを考える。図１（ａ）は、特徴量ｘについてのヒストグラムを示す図であり、縦軸は頻度を表し、横軸は特徴量を表す。異常が発生したか否かは、ある特徴量ｘの最新の値が、過去の特徴量ｘの頻度分布から外れているか否かに基づき判定される。具体的には、図１（ａ）に示すように特徴量ｘの値αが発生した場合、ｘ≧αとなる確率ｐ（ｘ≧α）が頻度分布に基づき算出され、予め定められた閾値より確率ｐ（ｘ≧α）が小さい場合、特徴量ｘについて異常が発生したと判定される。
【００１０】
しかし、特徴量ｘのサンプル数が少ない場合、確率ｐ（ｘ≧α）が本来の値より小さくなりやすく、異常の誤検出が起こりやすい。図１（ｂ）は、特徴量ｘのサンプル数が少ない場合のヒストグラムを示す図であり、縦軸は頻度を表し、横軸は特徴量を表し、破線は真の確率分布を表す。図１（ｂ）のようなヒストグラムの場合、人による判断であればαは異常な値ではないという結論になるが、実際に算出される確率ｐ（ｘ≧α）は小さくなりやすいので、異常であると判定される可能性がある。
【００１１】
頻度の分布から真の確率分布を推定し、その確率分布に基づき確率を計算することも考えられるが、この場合には、確率計算結果の不安定性が発生する。より具体的に言うと、一般的な問題は簡単な単峰性の問題ではなく多峰性の複雑な形状の分布を仮定する必要がある問題であることがあるので、その場合に真の確率分布を推定すると、推定した確率分布がサンプルの追加に伴って急激に変化することがある。例えば、多峰性の確立分布で峰の推定数が変化した場合などがそれに該当する。このように、サンプル数が十分になるまでは、異常の誤検出を回避しながら安定的に確率を計算することが困難である。
【００１２】
そこで、本実施の形態においては、ヒストグラムの各区間を、その区間の頻度が多くなるほどピークが鋭くなる頻度分布曲線（以下、仮想頻度分布と呼ぶ）に変換し、複数の仮想頻度分布を重ね合わせた分布に対して確率を計算する。例えば図２（ａ）に示すように、区間ｒ１の頻度が１である場合、区間ｒ１における仮想頻度分布ｇ１の高さは区間ｒ１の頻度の半分以下である。一方、図２（ｂ）に示すように、区間ｒ３の頻度が４である場合、区間ｒ３における仮想頻度分布ｇ３の高さは区間ｒ３の頻度の半分以上である。このように、区間の頻度が多くなるほど仮想頻度分布のピークが鋭くなる。
【００１３】
さらにサンプルが取得され、図３（ａ）に示すように、区間ｒ１の頻度が１であり、区間ｒ２の頻度が１であり且つ区間ｒ３の頻度が４であるとする。この場合、仮想頻度分布ｇ１、仮想頻度分布ｇ２及び仮想頻度分布ｇ３を重ね合わせることで、図３（ｂ）に示すような仮想頻度分布ｇ４が生成される。
【００１４】
但し、仮想頻度分布ｇ４の特定の範囲について頻度を求めるのではなく、図４（ａ）に示すように、各区間の仮想頻度分布ｇ１乃至ｇ３の特定の範囲について頻度を求め、求めた頻度を合計すればよい。図４（ａ）においては、特徴量ｘの最新の値が０．５であり、ｘ≦０．５の範囲において、仮想頻度分布ｇ１については頻度が０．２であり、仮想頻度分布ｇ２については頻度が０．０５であり、仮想頻度分布ｇ３については頻度が０．０である。従って、図４（ｂ）に示すように、仮想頻度分布のｘ≦０．５の範囲に対応する頻度は０．２＋０．０５＋０．０＝０．２５である。従って、特徴量ｘについてｘ≦０．５が満たされる確率は、算出した頻度をサンプル総数で除することで０．０４（≒０．２５／６）と算出される。この確率が閾値より小さい場合、特徴量ｘについて異常が発生したとしてアラートが通知される。
【００１５】
以下では、本実施の形態をより詳細に説明する。
【００１６】
図５に、第１の実施の形態のシステム構成図を示す。第１の実施の形態の主要な処理を実行する計算装置１は、ＬＡＮ（Local Area Network）等のネットワークを介してデータ取得装置５に接続される。データ取得装置５は、例えばＰＯＳ（Point Of Sales system）の装置であり、取得したデータ（例えば、販売に関係するデータ）を計算装置１に送信する。計算装置１は、取得したデータに基づき異常を検出する処理を実行する。計算装置１は、例えばモニタである表示装置３に、異常が発生したことを示すデータを表示させることができる。なお、データ取得装置５は物理センサ或いは物理センサを含むデバイス等であってもよく、その場合には気象データ等が取得される。
【００１７】
図６に、計算装置１の機能ブロック図を示す。計算装置１は、データ格納部１０１と、第１パラメータ格納部１０３と、第２パラメータ格納部１０５と、閾値格納部１０７と、区間集合データ格納部１０９と、ヒストグラムデータ格納部１１０と、第１頻度データ格納部１１１と、第２頻度データ格納部１１３と、確率データ格納部１１５と、データ処理部１１６と、第１計算部１１７と、第２計算部１１９と、出力部１２１とを含む。
【００１８】
データ処理部１１６は、データ取得装置５により取得されたデータを受信し、データ格納部１０１に格納する。また、データ処理部１１６は、区間集合を決定するためのパラメータの入力を受け付け、第１パラメータ格納部１０３に格納する。また、データ処理部１１６は、仮想頻度を計算するためのパラメータの入力を受け付け、第２パラメータ格納部１０５に格納する。また、データ処理部１１６は、異常検出のための閾値の入力を受け付け、閾値格納部１０７に格納する。また、データ処理部１１６は、第１パラメータ格納部１０３に格納されているパラメータに基づき区間集合のデータを生成し、生成した区間集合のデータを区間集合データ格納部１０９に格納する。また、データ処理部１１６は、データ格納部１０１に格納されているデータに基づきヒストグラムデータを生成し、生成したヒストグラムデータをヒストグラムデータ格納部１１０に格納する。第１計算部１１７は、第２パラメータ格納部１０５に格納されているデータ、区間集合データ格納部１０９に格納されているデータ及びヒストグラムデータ格納部１１０に格納されているデータに基づき処理を実行し、処理結果を第１頻度データ格納部１１１に格納する。また、第１計算部１１７は、第１頻度データ格納部１１１に格納に格納されているデータに基づき処理を実行し、処理結果を第２頻度データ格納部１１３に格納する。第２計算部１１９は、第２頻度データ格納部１１３に格納されているデータ及びヒストグラムデータ格納部１１０に格納されているデータに基づき処理を実行し、処理結果を確率データ格納部１１５に格納する。出力部１２１は、閾値格納部１０７に格納されているデータ及び確率データ格納部１１５に格納されているデータに基づき処理を実行し、処理結果に応じて、異常が検出されたことを示すデータを表示装置３に表示させる。
【００１９】
図７に、データ取得装置５の機能ブロック図を示す。データ取得装置５は、データ取得部５０１を含む。データ取得部５０１は、データ（例えば、販売に関係するデータ）を取得し、計算装置１に送信する。
【００２０】
次に、図８乃至図２１を用いて、計算装置１が実行する処理を説明する。計算装置１が処理を開始するにあたって、データ格納部１０１には、図９に示すようなデータが格納されているとする。図９の例では、日付の情報と、来店者数のデータとが格納される。データ格納部１０１に格納されるデータは、例えば定期的に、データ取得装置５から計算装置１に送信される。
【００２１】
まず、データ処理部１１６は、区間集合を決定するためのパラメータ（ｑ，Ｎ）の入力を管理者等から受け付ける（図８：ステップＳ１）。そして、データ処理部１１６は、パラメータ（ｑ，Ｎ）を第１パラメータ格納部１０３に格納する。ｑは区間長を表すパラメータであり、Ｎは区間の数を表すパラメータである。なお、ステップＳ１においてはパラメータ（ｑ，Ｎ）の入力を受け付けているが、管理者等の端末から受信するようにしてもよい。
【００２２】
図１０に、第１パラメータ格納部１０３に格納されるデータの一例を示す。図１０の例では、ｑの値と、Ｎの値とが格納される。
【００２３】
データ処理部１１６は、仮想頻度を計算するためのパラメータ（ｄ，ｃ）の入力を管理者等から受け付ける（ステップＳ３）。そして、データ処理部１１６は、パラメータ（ｄ，ｃ）を第２パラメータ格納部１０５に格納する。ｄは頻度の拡散のしやすさを表す０以上１未満のパラメータである。例えば０．５である。ｃは仮想分布の広がりの左右の違いを表す０以上１以下のパラメータである。左右の広がりが同じである場合にはｃ＝０．５であり、左の広がりが大きいほどｃの値が大きくなる。なお、ステップＳ３においてはパラメータ（ｄ，ｃ）の入力を受け付けているが、管理者等の端末から受信するようにしてもよい。
【００２４】
図１１に、第２パラメータ格納部１０５に格納されるデータの一例を示す。図１１の例では、ｄの値と、ｃの値とが格納される。
【００２５】
データ処理部１１６は、異常検出のための閾値βの入力を管理者等から受け付ける（ステップＳ５）。そして、データ処理部１１６は、閾値βを閾値格納部１０７に格納する。なお、ステップＳ５においては閾値βの入力を受け付けているが、管理者等の端末から受信するようにしてもよい。
【００２６】
図１２に、閾値格納部１０７に格納されるデータの一例を示す。図１２の例では、閾値βの値が格納される。
【００２７】
データ処理部１１６は、第１パラメータ格納部１０３に格納されているデータに基づき区間集合のデータを生成する（ステップＳ７）。そして、データ処理部１１６は、生成した区間集合のデータを区間集合データ格納部１０９に格納する。
【００２８】
本実施の形態においては、例えば以下のような区間集合が設定される。
【００２９】
【数１】
2018077735.tif 000003
【００３０】
図１３に、区間集合データ格納部１０９に格納されているデータの一例を示す。図１３の例では、区間名と、区間の始点及び終点を示す情報とが格納される。
【００３１】
データ処理部１１６は、データ格納部１０１に格納されているデータ及び区間集合データ格納部１０９に格納されているデータに基づき、各区間の頻度を含むヒストグラムデータを生成する（ステップＳ１１）。そして、データ処理部１１６は、生成したヒストグラムデータをヒストグラムデータ格納部１１０に格納する。処理は端子Ａを介して図１５のステップＳ１３に移行する。
【００３２】
図１４に、ヒストグラムデータ格納部１１０に格納されるデータの一例を示す。図１４の例では、区間名と、頻度とが格納される。
【００３３】
図１５の説明に移行し、データ処理部１１６は、特徴量ｘについて最新の値αをデータ取得装置５から受信する（図１５：ステップＳ１３）。
【００３４】
第１計算部１１７は、第２パラメータ格納部１０５に格納されているパラメータ、区間集合データ格納部１０９に格納されている区間集合のデータ及びヒストグラムデータ格納部１１０に格納されているヒストグラムデータに基づき、確率計算の対象範囲（例えば（−∞，α］）に対応する仮想頻度Ｆについて、総和算出処理を実行する（ステップＳ１５）。総和算出処理については、図１６乃至図１８を用いて説明する。
【００３５】
まず、第１計算部１１７は、区間集合に含まれる区間のうち未処理の区間を１つ特定する（図１６：ステップＳ３１）。但し、予め定められた条件を満たす区間（例えば、仮想頻度Ｆが所定値以下であることが予めわかっている区間）については、処理の対象外としてもよい。これにより、仮想頻度Ｆの計算が行われる区間の数を減らすことができるので、処理を高速化できるようになる。
【００３６】
第１計算部１１７は、ステップＳ３１において特定した区間の頻度が１以上である場合、確率計算の対象範囲に対応する仮想頻度Ｆを算出する（ステップＳ３３）。第１計算部１１７は、算出した仮想頻度Ｆを区間名に対応付けて第１頻度データ格納部１１１に格納する。
【００３７】
図１７に、第１頻度データ格納部１１１に格納されるデータの一例を示す。図１７の例では、区間名と、仮想頻度Ｆとが格納される。
【００３８】
ここで、仮想頻度Ｆの算出について説明する。本実施の形態においては、元の頻度分布の或る区間の仮想頻度分布として、べき分布が使用される。べき分布は正規分布に比べて裾がなだらかであり、且つべき分布を使用すると数式が簡素化され仮想頻度分布の特定の範囲に対応する頻度を計算することが容易になる。但し、べき分布に限定されるわけではなく、べき分布以外の分布であってもよい。
【００３９】
そして、特徴量ｘの「ｙ以上ｚ未満の区間」の頻度がｎである場合、その区間に対応する仮想頻度分布は以下のように表される。なお、以下では区間長（ｚ−ｙ）をｑと記載する。
【００４０】
【数２】
2018077735.tif 000004
【００４１】
ここで、ｂ（ｎ）は分布の高さを表すパラメータである。ａ1及びａ2は裾のなだらかさを決めるパラメータであり、値が小さいほど裾がなだらかになる。
【００４２】
仮想頻度分布は、もともと頻度がｎである区間を左右に拡散させたものに相当するので、以下の式が成立する。
【００４３】
【数３】
2018077735.tif 000005
【００４４】
さらに、ｎが大きくなるにしたがってｂ（ｎ）／ｎが大きくなるようにするため、ｂ（ｎ）を以下のように定義する。
【００４５】
【数４】
2018077735.tif 000006
【００４６】
但し、ｂ（ｎ）はこのような形に限られるわけではない。
【００４７】
従って、確率計算の対象範囲（ここでは、（−∞，α］とする）に対応する仮想頻度分布Ｆを、以下のように計算することができる。
【００４８】
【数５】
2018077735.tif 000007
【００４９】
図１６の説明に戻り、第１計算部１１７は、未処理の区間が有るか判定する（ステップＳ３５）。未処理の区間が有る場合（ステップＳ３５：Ｙｅｓルート）、処理はステップＳ３１に戻る。
【００５０】
一方、未処理の区間が無い場合（ステップＳ３５：Ｎｏルート）、第１計算部１１７は、ステップＳ３３において算出した仮想頻度Ｆの総和を算出する（ステップＳ３７）。そして、第１計算部１１７は、算出した総和を第２頻度データ格納部１１３に格納する。そして呼び出し元の処理に戻る。
【００５１】
図１８に、第２頻度データ格納部１１３に格納されるデータの一例を示す。図１８の例では、ステップＳ３７において算出された総和が格納される。
【００５２】
図１５の説明に戻り、第２計算部１１９は、ステップＳ１５において計算された仮想頻度Ｆの総和をサンプル数の総和（すなわち、ヒストグラムデータが示す頻度の総和）で除することで確率ｐを算出する（ステップＳ１７）。第２計算部１１９は、算出した確率ｐを確率データ格納部１１５に格納する。
【００５３】
図１９に、確率データ格納部１１５に格納されるデータの一例を示す。図１９の例では、ステップＳ１７において算出された確率が格納される。
【００５４】
出力部１２１は、閾値格納部１０７から閾値βを読み出し、確率データ格納部１１５から確率ｐを読み出す。そして、出力部１２１は、確率ｐが閾値βより小さいか判定する（ステップＳ１９）。
【００５５】
確率ｐが閾値βより小さくない場合（ステップＳ１９：Ｎｏルート）、処理はステップＳ２３に移行する。一方、確率ｐが閾値βより小さい場合（ステップＳ１９：Ｙｅｓルート）、出力部１２１は、アラートを表示装置３に出力する（ステップＳ２１）。そして、表示装置３はアラートを表示し、管理者は異常が発生したことを認識できるようになる。なお、ステップＳ２１においては表示装置３にアラートを出力するが、管理者の端末にアラートを送信してもよい。
【００５６】
データ処理部１１６は、ヒストグラムデータ格納部１１０に格納されているヒストグラムデータを、ステップＳ１３において受信した最新の値αに基づき更新する（ステップＳ２３）。
【００５７】
データ処理部１１６は、ステップＳ１３において受信した最新の値αをデータ格納部１０１に追加する（ステップＳ２５）。
【００５８】
データ処理部１１６は、終了指示（例えば、計算装置１の停止指示）があったか判定する（ステップＳ２７）。終了指示が無い場合（ステップＳ２７：Ｎｏルート）、処理はステップＳ１３に戻る。一方、終了指示があった場合（ステップＳ２７：Ｙｅｓルート）、処理は終了する。
【００５９】
図２０及び図２１を用いて、本実施の形態をより具体的に説明する。
【００６０】
例として、或る店舗への１日の来店者数の発生確率が閾値βより小さい場合にアラートを出力することを考える。閾値βは０．０７であるとする。さらに、ｑ＝１０、ｄ＝０．８、ｃ＝０．５、Ｎ＝８とする。
【００６１】
１つめのケースとして、前日までの来店者数から生成された頻度分布表が図２０（ａ）のとおりであるとする。そして、本日の来店者数として「１５」をデータ取得装置５から受信したとする。この値が異常であるか否かを以下で検討する。
【００６２】
頻度が正である区間Ｘ3については、「ｙ＝２０，ｚ＝３０，ｎ＝１，α＝１５」として、ｂ（１）＝０．２、ａ1（１０，１）＝ｅ0.5、Ｆ（２０，３０，１，１５）＝ｂ（１）＊ａ1（１０，１）-5/10／ｌｏｇ ａ1（１０，１）＝０．３１２と計算される。
【００６３】
頻度が正である区間Ｘ4については、「ｙ＝３０，ｚ＝４０，ｎ＝１，α＝１５」として、ｂ（１）＝０．２、ａ1（１０，１）＝ｅ0.5、Ｆ（３０，４０，１，１５）＝ｂ（１）＊ａ1（１０，１）-15/10／ｌｏｇ ａ1（１０，１）＝０．１８９と計算される。
【００６４】
頻度が正である区間Ｘ6については、「ｙ＝５０，ｚ＝６０，ｎ＝４，α＝１５」として、ｂ（４）＝２．６７、ａ1（１０，４）＝ｅ4.04、Ｆ（５０，６０，４，１５）＝ｂ（４）＊ａ1（１０，４）-35/10／ｌｏｇ ａ1（１０，４）＝０．０００と計算される。
【００６５】
確率計算の対象範囲に対応する仮想頻度Ｆの総和は、Ｆ（２０，３０，１，１５）＋Ｆ（３０，４０，１，１５）＋Ｆ（５０，６０，４，１５）＝０．３１２＋０．１８９＋０．０００＝０．５０１である。従って、確率は０．５０１／６＝０．０８３である。この確率は閾値βより大きいので、アラートは出力されない。そして、最新の値「１５」について、頻度分布表のデータを更新すると、図２０（ｂ）に示すようになる。
【００６６】
２つめのケースとして、前日までの来店者数から生成された頻度分布表が図２１（ａ）のとおりであるとする。そして、本日の来店者数として「５」をデータ取得装置５から受信したとする。この値が異常であるか否かを以下で検討する。
【００６７】
頻度が正である区間Ｘ3については、「ｙ＝２０，ｚ＝３０，ｎ＝１，α＝５」として、ｂ（１）＝０．２、ａ1（１０，１）＝ｅ0.5、Ｆ（２０，３０，１，５）＝ｂ（１）＊ａ1（１０，１）-15/10／ｌｏｇ ａ1（１０，１）＝０．１８９と計算される。
【００６８】
頻度が正である区間Ｘ4については、「ｙ＝３０，ｚ＝４０，ｎ＝１，α＝５」として、ｂ（１）＝０．２、ａ1（１０，１）＝ｅ0.5、Ｆ（３０，４０，１，５）＝ｂ（１）＊ａ1（１０，１）-25/10／ｌｏｇ ａ1（１０，１）＝０．１１５と計算される。
【００６９】
頻度が正である区間Ｘ6については、「ｙ＝５０，ｚ＝６０，ｎ＝４，α＝５」として、ｂ（４）＝２．６７、ａ1（１０，４）＝ｅ4.04、Ｆ（５０，６０，４，５）＝ｂ（４）＊ａ1（１０，４）-45/10／ｌｏｇ ａ1（１０，４）＝０．０００と計算される。
【００７０】
確率計算の対象範囲に対応する仮想頻度Ｆの総和は、Ｆ（２０，３０，１，５）＋Ｆ（３０，４０，１，５）＋Ｆ（５０，６０，４，５）＝０．１８９＋０．１１５＋０．０００＝０．３０４である。従って、確率は０．３０４／６＝０．０５０７である。この確率は閾値βより大きいので、アラートが出力される。そして、最新の値「５」について、頻度分布表のデータを更新すると、図２１（ｂ）に示すようになる。
【００７１】
以上のような処理を実行すれば、サンプル数が少ない場合において誤検出が起こることを抑制できるようになる。これは、仮想頻度分布のピークの高さが抑えられ裾が広いことによる。
【００７２】
また、サンプルが追加されたとしても、頻度分布のある区間の仮想頻度分布が変更されるだけであるので、確率計算の結果が急激に変化することはない。また、サンプルが増えるにつれ、各区間の頻度が大きくなるので、各区間の仮想頻度分布が重ねられた仮想頻度分布の形状がヒストグラムの形状に近づき、本実施の形態による確率計算の結果はヒストグラムに基づく確率計算の結果（すなわち、真の確率分布）に近づく。以上から、サンプルが追加されたとしても、安定的に確率計算をすることができるようになる。
【００７３】
［実施の形態２］
第１の実施の形態では、計算装置１での計算結果に基づくアラートが、計算装置１に接続された表示装置３に接続されるが、このようなシステム構成には限られない。例えば図２２に示すように、スマートデバイス或いはウエアラブルデバイス等であるデバイス７がデータ取得部７０１及び表示部７０２（例えば、タッチパネル）を有してもよい。このようなシステム構成においては、データ取得部７０１によって取得されたデータを用いて計算装置１により計算が行われ、計算結果に基づくアラートがデバイス７に送信される。そして、デバイス７の表示部７０２がアラートを表示することで、デバイス７のユーザが異常の発生を認識できるようになる。
【００７４】
［実施の形態３］
第２の実施の形態では、デバイス７がデータ取得部７０１及び表示部７０２を有するが、このようなシステム構成には限られない。例えば図２３に示すように、データ取得装置５がデータ取得部５０１を有し、例えばパーソナルコンピュータである端末９が表示部９０１を有してもよい。このようなシステム構成においては、データ取得部５０１によって取得されたデータを用いて計算装置１により計算が行われ、計算結果に基づくアラートが端末９に送信される。そして、端末９の表示部９０１がアラートを表示することで、端末９のユーザが異常の発生を認識できるようになる。
【００７５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した計算装置１、データ取得装置５、デバイス７及び端末９の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７６】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７７】
また、頻度分布の各区間の長さは同じでなくてもよい。
【００７８】
また、区間集合に含まれる区間は、ヒストグラムデータの更新時に分割或いは統合されてもよい。
【００７９】
また、特徴量ｘの値は正の整数や小数であってもよい。また、区間の頻度が負にならない限り、負であってもよい。
【００８０】
また、ヒストグラムデータの更新時に忘却のための処理を行う（例えば、各区間の頻度に同一の数を乗ずる）ことで、古い期間に取得された特徴量ｘより新しい期間に取得された特徴量ｘがより反映されるようにしてもよい。
【００８１】
また、ｄを頻度分布の区間毎に決定してもよい。また、ｄを区間長に応じて決定してもよい。
【００８２】
また、確率計算の対象範囲は、上記のような範囲には限られない。例えば、（ｘ，∞］といった範囲や（ｘ−１０，ｘ＋１０］といった範囲であってもよい。
【００８３】
また、各区間について仮想頻度Ｆを計算する際、例えば或る区間の仮想頻度Ｆがサンプル総数に比べて十分に小さいことが分かっている場合には、その区間の仮想頻度Ｆを０で代用してもよい。このようにすれば、結果に及ぼす影響を抑えつつ計算時間を短縮することができるようになる。
【００８４】
なお、上で述べた計算装置１は、コンピュータ装置であって、図２４に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置３に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８５】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８６】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線（例えば、実施の形態の仮想頻度分布）の特定の範囲に対応する頻度を算出する第１算出部と、（Ｂ）特定の範囲について第１算出部により算出された頻度のうち少なくとも一部の頻度の総和を、属性の値の総数で除することで、特定の範囲内の値が発生する確率を算出する第２算出部とを有する。
【００８７】
このような構成であれば、例えばサンプル数が少ない場合においても、各区間についての頻度分布曲線が合成された曲線が真の頻度分布からかけ離れた形状になりにくい。これにより、上記のように発生確率を算出すれば、異常検出の精度を高めることができるようになる。
【００８８】
また、第１算出部は、（ａ１）頻度分布の区間毎に、当該区間の頻度を表すパラメータと、当該区間の長さを指定するためのパラメータと、特定の範囲を指名するためのパラメータとに基づき、所定の計算方法に従って頻度分布曲線の特定の範囲に対応する頻度を算出してもよい。頻度分布曲線の特定の範囲に対応する頻度を頻度分布の区間毎に算出できるようになる。
【００８９】
また、所定の計算方法での計算において、頻度分布の各区間についての頻度分布曲線の当該区間に対応する頻度は、属性の値の総数が多くなるほど頻度分布の当該区間の頻度に近付き、属性の値の総数が少なくなるほど頻度分布の当該区間の頻度と比較して小さくなるように算出されてもよい。サンプル数がまだ少ない状況においては、或る区間に属する値が発生したとしても、別の区間に属する値が今後たくさん発生する確率があるので、その区間において頻度分布曲線の高さを高くしすぎず曲線をなだらかな形状にすることが好ましい。一方で、サンプル数が多い状況においては、実際の頻度がそのまま真の頻度分布に相当すると考えても問題が無い。そこで、上で述べたようにすれば、適切に頻度が算出されるようになる。
【００９０】
また、第１算出部は、（ａ２）頻度分布の区間のうち予め指定された区間の各々について、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出してもよい。頻度分布の区間のうち一部の区間について計算を省略できるので、計算を高速化できるようになる。
【００９１】
また、本情報処理装置は、（Ｃ）第２算出部により算出された確率と所定の閾値の比較とに基づき、警告を出力するか決定する決定部をさらに有してもよい。異常が検出されたことをユーザ等が認識できるようになる。
【００９２】
また、頻度分布の各区間についての頻度分布曲線は、べき分布の曲線であってもよい。正規分布の曲線等を利用する場合と比較して、頻度分布曲線をなだらかにすることができるようになるので、サンプル数が少ないときに誤検出をすることを抑制できるようになる。
【００９３】
また、頻度分布の各区間についての頻度分布曲線の全範囲に対応する頻度は、当該区間の頻度に等しくてもよい。
【００９４】
また、頻度分布の各区間についての頻度分布曲線の形状が、当該頻度分布曲線のピークに対応する特徴量より大きな特徴量に対応する部分と当該頻度分布曲線のピークに対応する特徴より小さな特徴量に対応する部分とで異なってもよい。
【００９５】
本実施の形態の第２の態様に係る情報処理方法は、（Ｄ）データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出し、（Ｅ）特定の範囲について算出された頻度のうち少なくとも一部の頻度の総和を、属性の値の総数で除することで、特定の範囲内の値が発生する確率を算出する処理を含む。
【００９６】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９７】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９８】
（付記１）
データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、前記頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出する第１算出部と、
前記特定の範囲について前記第１算出部により算出された頻度のうち少なくとも一部の頻度の総和を、前記属性の値の総数で除することで、前記特定の範囲内の値が発生する確率を算出する第２算出部と、
を有する情報処理装置。
【００９９】
（付記２）
前記第１算出部は、
前記頻度分布の区間毎に、当該区間の頻度を表すパラメータと、当該区間の長さを指定するためのパラメータと、前記特定の範囲を指名するためのパラメータとに基づき、所定の計算方法に従って前記頻度分布曲線の前記特定の範囲に対応する頻度を算出する、
付記１記載の情報処理装置。
【０１００】
（付記３）
前記所定の計算方法での計算において、前記頻度分布の各区間についての前記頻度分布曲線の当該区間に対応する頻度は、前記属性の値の総数が多くなるほど前記頻度分布の当該区間の頻度に近付き、前記属性の値の総数が少なくなるほど前記頻度分布の当該区間の頻度と比較して小さくなるように算出される、
付記２記載の情報処理装置。
【０１０１】
（付記４）
前記第１算出部は、
前記頻度分布の区間のうち予め指定された区間の各々について、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出する、
付記１記載の情報処理装置。
【０１０２】
（付記５）
前記第２算出部により算出された確率と所定の閾値の比較とに基づき、警告を出力するか決定する決定部
をさらに有する付記１乃至４のいずれか１つ記載の情報処理装置。
【０１０３】
（付記６）
前記頻度分布の各区間についての前記頻度分布曲線は、べき分布の曲線である、
付記１乃至５のいずれか１つ記載の情報処理装置。
【０１０４】
（付記７）
前記頻度分布の各区間についての頻度分布曲線の全範囲に対応する頻度は、当該区間の頻度に等しい、
付記１乃至６のいずれか１つ記載の情報処理装置。
【０１０５】
（付記８）
前記頻度分布の各区間についての頻度分布曲線の形状が、当該頻度分布曲線のピークに対応する特徴量より大きな特徴量に対応する部分と当該頻度分布曲線のピークに対応する特徴より小さな特徴量に対応する部分とで異なる、
付記１乃至７のいずれか１つ記載の情報処理装置。
【０１０６】
（付記９）
コンピュータが、
データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、前記頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出し、
前記特定の範囲について算出された頻度のうち少なくとも一部の頻度の総和を、前記属性の値の総数で除することで、前記特定の範囲内の値が発生する確率を算出する、
処理を実行する情報処理方法。
【０１０７】
（付記１０）
コンピュータに、
データ格納部に格納されている、属性の値についての頻度分布のデータに基づき、前記頻度分布の区間毎に、当該区間の頻度に基づき生成された頻度分布曲線の特定の範囲に対応する頻度を算出し、
前記特定の範囲について算出された頻度のうち少なくとも一部の頻度の総和を、前記属性の値の総数で除することで、前記特定の範囲内の値が発生する確率を算出する、
処理を実行させるプログラム。
【符号の説明】
【０１０８】
１  計算装置    ３  表示装置
５  データ取得装置    ７  デバイス
９  端末
１０１  データ格納部    １０３  第１パラメータ格納部
１０５  第２パラメータ格納部    １０７  閾値格納部
１０９  区間集合データ格納部    １１０  ヒストグラムデータ格納部
１１１  第１頻度データ格納部    １１３  第２頻度データ格納部
１１５  確率データ格納部    １１６  データ処理部
１１７  第１計算部    １１９  第２計算部
１２１  出力部    ５０１  データ取得部
７０１  データ取得部    ７０２  表示部
９０１  表示部
【図１】
2018077735.tif 000008
【図２】
2018077735.tif 000009
【図３】
2018077735.tif 000010
【図４】
2018077735.tif 000011
【図５】
2018077735.tif 000012
【図６】
2018077735.tif 000013
【図７】
2018077735.tif 000014
【図８】
2018077735.tif 000015
【図９】
2018077735.tif 000016
【図１０】
2018077735.tif 000017
【図１１】
2018077735.tif 000018
【図１２】
2018077735.tif 000019
【図１３】
2018077735.tif 000020
【図１４】
2018077735.tif 000021
【図１５】
2018077735.tif 000022
【図１６】
2018077735.tif 000023
【図１７】
2018077735.tif 000024
【図１８】
2018077735.tif 000025
【図１９】
2018077735.tif 000026
【図２０】
2018077735.tif 000027
【図２１】
2018077735.tif 000028
【図２２】
2018077735.tif 000029
【図２３】
2018077735.tif 000030
【図２４】
2018077735.tif 000031