(57)【要約】【課題】通信トラヒックの状態がホストへの侵入であるのか、侵入を含まない正常なものであるのかを判定する際に、侵入が無いにも関わらず誤って侵入があるかのような出力をすることを防ぐ。【解決手段】木構造を用いて通信トラヒックの状態を推定する際の木構造の構築にあたり、情報利得を計算するときに、特定の状態の状態確率を増減する機構を設け、どの状態の判定を誤るか、という誤り種別に対して情報利得の感度が異なるようにし、決定木の内部ノードに割当てる属性を決めるとき、より重要な判定誤りを減らす属性を選択する。【選択図】図１
2007334589.tif 000002
【特許請求の範囲】
【請求項１】
システムが複数Ｍ個（但しＭは１より大きい整数）の状態Ｓ１，Ｓ2，...，ＳMのいずれか一つの状態をとり、前記状態が未知であって、前記システムを観測すると複数Ｎ個（但しＮは１より大きい整数）の属性ａ１，ａ2，...，ａMの値を知ることができ、属性の値が属する集合はいくつかの孤立な部分集合の和であるとき、内部ノードおよび葉ノードで構成され、内部ノードは複数の子ノードを持ち、内部ノードのうち１つは他の内部ノードの子ノードではない根ノードであり、葉ノードは子ノードを持たない木構造で、
前記内部ノードに前記Ｎ個の属性ａ１，ａ2，...，ａNの１つを割り当て、根ノードから処理を開始し、前記内部ノードでは割当てた属性の値を調べ、属性の値がどの部分集合に属するかに応じて、いずれか１つの子ノードへ処理を進め、葉ノードには状態を割り当て、処理が葉ノードに到達したらこの葉ノードに割当てた状態をシステムの状態と推定する決定木の、ある内部ノードに割当てる属性ａn（但し、ｎは１≦ｎ≦Ｎの整数）を前記Ｎ個の属性ａ1，ａ2，...，ａNの中から選ぶに当たり、属性ａnの値を調べる前の状態に関する情報量から、属性ａnの値を調べた後の情報量を減算して計算される情報利得を求め、前記Ｎ個の属性ａ1，ａ2，...，ａNの中で、前記情報利得が最大になるような属性ａnを選ぶ決定木構築装置において実行される決定木構築方法であって、
ａnの値がＸの要素であるという条件での状態確率をＰ（Ｓ1｜ａn∈Ｘ），Ｐ（Ｓ2｜ａn∈Ｘ），…，Ｐ（ＳM｜ａn∈Ｘ）として、予め決められた状態Ｓmの（ただしｍは１≦ｍ≦Ｍの整数）、属性ａnの値がＸの要素であるとき状態確率Ｐ（Ｓm｜ａn∈Ｘ）をΔＰ（Ｓm｜ａn∈Ｘ）だけ減らした確率Ｑ（Ｓm｜ａn∈Ｘ）と、Ｓm以外の状態の状態確率Ｐ（Ｓi｜ａn∈Ｘ）（但し、ｉはｉ≠ｍで１≦ｉ≦Ｍの整数）との和が、ΔＰ（Ｓm｜ａn∈Ｘ）だけ増加するように変更して得られる確率Ｑ（Ｓi｜ａn∈Ｘ）を求めるステップと、
属性ａ1，ａ2，…，ａNのうち、ａnの値を調べた後に値が部分集合Ｘの要素であるときの情報量を、確率Ｑ（Ｓ1｜ａn∈Ｘ），Ｑ（Ｓ2｜ａn∈Ｘ），…，Ｑ（ＳM｜ａn∈Ｘ）を用いて計算し、属性ａnの値を調べた後の情報量は、ａnの値が部分集合Ｘの要素であるときの情報量を、ａnの値が属し得る全ての部分集合について平均した値として、前記確率Ｑ（Ｓ1｜ａn∈ｘ），Ｑ（Ｓ2｜ａn∈Ｘ），…，Ｑ（ＳM｜ａn∈Ｘ）のそれぞれに、属性ａnが部分集合Ｘの要素となる確率Ｐ（ａn∈Ｘ）を乗算した値Ｑ（Ｓ1｜ａn∈Ｘ）Ｐ（ａn∈Ｘ），Ｑ（Ｓ2｜ａn∈Ｘ）Ｐ（ａn∈Ｘ），…，Ｑ（ＳM｜ａn∈Ｘ）Ｐ（ａn∈Ｘ）を、属性ａnが属し得る全ての部分集合について加算して確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を求めるステップと、
前記属性ａnの値を調べる前の状態に関する情報量を前記確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を使って計算するステップと
を有することを特徴とする決定木構築方法。
【請求項２】
システムが複数Ｍ個（但しＭは１より大きい整数）の状態Ｓ1，Ｓ2，…，ＳＭのいずれか一つの状態をとり、この状態が未知であるとき、前記システムを観測して得られる複数Ｎ個の属性ａ1，ａ2，…，ａNの値を調べてシステムの状態を判定する決定木の、ある属性ａn（但しｎは１≦ｎ≦Ｎの整数）を前記決定木の内部ノードに割当て、前記属性ａnが連続値をとり、前記内部ノードでは前記属性ａnの値が属する部分集合が、ある閾値ｔとａnの値との大小関係に従って決定されるときの、前記閾値ｔの値を決定するに当たり、前記属性ａnの値を調べる前の状態に関する情報量から、前記属性ａnの値を調べ、前記閾値ｔと比較した後の情報量を減算して計算される情報利得を求め、前記情報利得が最大になるように閾値ｔを決定する決定木構築装置において実行される決定木構築方法であって、
属性ａnの値が閾値ｔによって決まる部分集合Ｘ（ｔ）に属する場合には、状態確率をＰ（Ｓ1｜ａn∈Ｘ（ｔ）），Ｐ（Ｓ2｜ａn∈Ｘ（ｔ）），…，Ｐ（ＳM｜ａn∈Ｘ（ｔ））として、予め決められた状態Ｓm（但しｍは１≦ｍ≦Ｍの整数）の状態確率Ｐ（ＳM｜ａn∈Ｘ（ｔ））を、ΔＰ（ＳM｜ａn∈Ｘ（ｔ））だけ減らした確率Ｑ（Ｓm｜ａn∈Ｘ（ｔ））と、Ｓm以外の状態の状態確率Ｐ（Ｓi｜ａn∈Ｘ（ｔ））（但し、ｉはｉ≠ｍで１≦ｉ≦Ｍの整数）との和が、ΔＰ（Ｓm｜ａn∈Ｘ（ｔ））だけ増加するように変更して得られる確率Ｑ（Ｓi｜ａn∈Ｘ（ｔ））を求めるステップと、
属性ａ1，ａ2，…，ａNのうち、ａnの値を調べた後に値が部分集合Ｘ（ｔ）の要素であるときの情報量を、確率Ｑ（Ｓ1｜ａn∈Ｘ（ｔ）），Ｑ（Ｓ2｜ａn∈Ｘ（ｔ），…，Ｑ（ＳM｜ａn∈Ｘ（ｔ））を用いて計算し、属性ａnの値を調べた後の情報量は、ａnの値が部分集合Ｘ（ｔ）の要素であるときの情報量を、ａnの値が属し得る全ての部分集合について平均した値として、前記確率Ｑ（Ｓ1｜ａn∈Ｘ（ｔ）），Ｑ（Ｓ2｜ａn∈Ｘ（ｔ）），…，Ｑ（ＳM｜ａn∈Ｘ（ｔ））のそれぞれに、属性ａnが部分集合Ｘ（ｔ）の要素となる確率Ｐ（ａn∈Ｘ（ｔ））を乗算した値Ｑ（Ｓ1｜ａn∈Ｘ（ｔ））Ｐ（ａn∈Ｘ（ｔ）），Ｑ（Ｓ2｜ａn∈Ｘ（ｔ））Ｐ（ａn∈Ｘ（ｔ）），…，Ｑ（ＳM｜ａn∈Ｘ）Ｐ（ａn∈Ｘ（ｔ））を、属性ａnが属し得る全ての部分集合について加算して確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を求めるステップと、
前記属性ａnの値を調べる前の状態に関する情報量を前記確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を使って計算するステップと
を有することを特徴とする決定木構築方法。
【請求項３】
過去に複数回のデータ観測を行い、この観測したデータの属性および状態を集計して得られた学習データを入力し、この学習データに基づき根ノードから内部ノードを経て葉ノードに到達する木構造を構築する際に、各内部ノードに割当てる属性を決定する内部ノード属性決定手段を備えた決定木構築装置において、
前記内部ノード属性決定手段は、請求項１記載の決定木構築方法を用いて内部ノードの属性を決定する手段を備えた
ことを特徴とする決定木構築装置。
【請求項４】
属性に連続値が含まれる場合に、当該属性の値と閾値とを比較して属性を決定するための閾値決定手段を備え、
この閾値決定手段は、請求項２記載の決定木構築方法を用いて閾値を決定する手段を備えた請求項３記載の決定木構築装置。
【請求項５】
ネットワークとホスト・コンピュータとの間に挿入され、前記ネットワークと前記ホスト・コンピュータとの間の通信トラヒックの状態を判定する状態判定装置において、
請求項３または４記載の決定木構築装置により構築された木構造を入力し、当該木構造における葉ノードに割当てられた状態に基づき前記通信トラヒックの状態を判定する手段を備えた
ことを特徴とする状態判定装置。
【請求項６】
汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、請求項３または４記載の決定木構築装置に相応する機能を実現させるプログラム。
【請求項７】
汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、請求項５記載の状態判定装置に相応する機能を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、何らかのシステムがあったとき、そのシステムがどのような状態にあるのかを、前記システムを観測して得られる複数の属性値から判定する決定木の構築技術と同技術を用いた状態判定技術に関する。
【背景技術】
【０００２】
上記決定木について図６を参照して説明する。決定木とは図６に示すような根を持つ木構造をしており、状態を判定するために観測された属性値を調べる手順を示すものである。図６に示すように、決定木は根１０１を含む内部ノード１０２、１０３、１０４、１０５、葉ノード１１１、１１２、１１３、１１４、１１５、１１６から成っている。同図が示すように、内部ノードは子ノードを持っているのに対し、葉ノードには子ノードがない。また、根ノードは他の内部ノードの子ノードにはなっていない内部ノードである。
【０００３】
根ノードを含む内部ノードには調べるべき属性が割り当てられ、葉ノードには状態が割当てられている。属性のとり得る値は集合で表現でき、さらにこの集合は複数の独立な部分集合の和で表すことが出来る。図７に、図６の木構造の構築データを一覧表にして示した。図７ではノードの符号をノード識別子とした。
【０００４】
状態の判定は根ノードから葉ノードに向かって行われ、内部ノードでは割り当てられた属性の値を調べ、属性の値がどの部分集合に属するかに基づいて子ノードの１つを選び、判定処理は選ばれた子ノードに進む。この処理を繰り返し、処理が葉ノードに到達したならば、その葉ノードに割当てられた状態を判定結果として出力する。決定木によって状態を判定する場合には、状態の判定誤り率は、決定木の内部ノードにどの属性を割当てるかによって大きく左右される。
【０００５】
従来、決定木を用いる状態判定装置では、決定木の内部ノードに割当てる属性の選択のため非特許文献１に説明されている情報理論的な手法を用いてきた。本従来技術では、状態に関する情報量をエントロピーで表現し、ある属性値を調べる前の事前確率から計算される状態に関する情報量と、属性値を調べた後の事後確率から計算される状態に関する情報量との差を計算する。この情報量の差を属性がもたらす情報量と解釈して情報利得と呼び、最も情報利得が高い属性を内部ノードに割当てる。以下、この従来技術の詳細を、例を用いて説明する。
【０００６】
いま、「翌日の天気」というシステムを考え、このシステムが２つの状態「雨が降る」、「雨は降らない」のいずれかを取ると仮定する。以下、表現を簡潔にするため、これらの状態をそれぞれＳ1，Ｓ2と書く。また、状態の集合ＳをＳ＝｛Ｓ1，Ｓ2｝のように定義し、状態に関する情報量をＩ（Ｓ）のように書く。システムに関して観測される第１の属性として「夕焼けの有無」があり、これをａ1と書く。ａ1は値０（無し）または値１（有り）のいずれかをとる。すなわち属性ａ1の値は、集合｛０，１｝に属し、部分集合｛０｝または｛１｝のいずれかに属する。また、第２の属性ａ2（例えば「猫が顔を洗うしぐさの有無」）であって、ａ2も値として０または１をとると仮定する。
【０００７】
このシステムで、過去において４０回の観測結果が図８のように得られ、このデータを学習データとした場合を説明する。いま、判定処理の最初に実行される根ノードに割当てる属性を選択する状況を説明する。まず、属性値を調べる前の状態に関する情報量Ｉ（Ｓ）を計算する。状態の確率Ｐ（Ｓ1），（Ｓ2）を学習データ中の状態の相対度数により推定すると、Ｓ1，Ｓ2共に２０回ずつ発生しているので、次のようになる。
【０００８】
Ｐ（Ｓ1）＝２０／４０＝０．５                                      （１）
Ｐ（Ｓ2）＝２０／４０＝０．５                                      （２）
にしたがって情報量Ｉ（Ｓ）は、
Ｉ（Ｓ）＝−Ｐ（Ｓ1）ｌｏｇ2Ｐ（Ｓ1）−Ｐ（Ｓ2）ｌｏｇ2Ｐ（Ｓ2）＝１（ビット）                                                              （３）
である。学習データにおいて、属性ａ1が値０をとる場合は１７回あって、そのうち１６回は状態Ｓ1であるので、属性ａ1が値０をとるという条件での状態確率および情報量は次のようになる。
【０００９】
Ｐ（Ｓ1｜ａ1＝０）＝１６／１７                                    （４）
Ｐ（Ｓ2｜ａ1＝０）＝１／１７                                      （５）
Ｉ（Ｓ1｜ａ1＝０）＝−Ｐ（Ｓ1｜ａ1＝０）ｌｏｇ2Ｐ（Ｓ1｜ａ1＝０）
−Ｐ（Ｓ2｜ａ1＝０）ｌｏｇ2（Ｓ2｜ａ1＝０）＝０．３２２８              （６）
同様に、ａ1が値１をとるという条件での情報量は次のように計算される。
【００１０】
Ｉ（Ｓ｜ａ1＝１）＝０．６６６６                                    （７）
従って、属性ａ1の値がわかった後では、状態の情報量は次のように計算される。
【００１１】
Ｉ（Ｓ｜ａ1）＝Ｐ（ａ1＝０）Ｉ（Ｓ｜ａ1＝０）＋Ｐ（ａ1＝０）Ｉ（Ｓ｜ａ1＝１）＝（１７／４０）×０．３２２８＋（２３／４０）×０．６６６６＝０．５２０５                                                            （８）
この結果、属性ａ1の情報利得Ｇ（ａ1）は次のように計算される。
【００１２】
Ｇ（ａ1）＝Ｉ（Ｓ）−Ｉ（Ｓ｜ａ1）＝１−０．５２０５＝０．４７９５      （９）
同じようにして属性ａ2の情報利得Ｇ（ａ2）は次のように計算される。
【００１３】
Ｇ（ａ2）＝０．４２２１                                        （１０）
このように属性ａ1の情報利得は属性ａ2の情報利得よりも大きいので、決定木の根ノードには属性ａ1が選ばれる。決定木を構築するには、根ノードの子ノード、さらにその子ノードという順序で、予め定められた停止規則が成立するまで、同様に最も情報利得の高い属性をノードに割当てていくことを繰り返す。この処理の過程で、あるノードで停止規則が成立したならば、そのノードは子ノードを持たない葉ノードとなり、判定処理が同ノードに進んだ場合に、もっとも尤度の高い状態が割当てられる。
【００１４】
上に述べた例で、仮に停止規則が「属性値は１回だけ調べる」というものだとすると、根ノードで属性値ａ1を１回調べるので、根ノードの２つの子ノードを構築する際、いずれの子ノードでも停止規則が成立する。よって、図９のように子ノードは葉ノードとなる。図９に示すように、根ノードでａ1が０のとき到達する子ノード（葉）をＬ0，ａ1が１のとき到達するノードをＬ1と書く。学習データで、ａ1が０であるものは、状態Ｓ1のデータが１６、状態Ｓ2のデータが１あるので、葉ノードＬ0に到達したという条件での条件付状態確率を学習データから推定すると次のようになる。
【００１５】
Ｐ（Ｓ1｜Ｌ0）＝１６／１７＝０．９４１２                      （１１）
Ｐ（Ｓ2｜Ｌ1）＝１／１７＝０．０５８８                        （１２）
このように、判定プロセスが葉ノードＬ0に到達したとき、状態はＳ1である確率が高いので、葉ノードＬ0には状態Ｓ1を割当てる。すなわち、システムの状態を本決定木に従って判定したとき、葉ノードＬ0に到達したならばシステム状態はＳ1であると推定する。同じようにして、葉ノードＬ1には状態Ｓ2を割当てる。
【００１６】
次に、本従来技術により構築した決定木は、誤り種類毎の重要度に違いがなければ良い性能であることを説明する。いま、状態の発生確率と、各状態おいて属性値のとる値の条件付き確率が、学習データの相対頻度から正確に推定できると仮定する。すなわち、
Ｐ（Ｓ1）＝Ｐ（Ｓ2）＝２０／４０＝０．５                        （１３）
Ｐ（ａ1＝０｜Ｓ1）＝１−Ｐ（ａ1＝１｜Ｓ1）＝１６／２０＝０．８    （１４）
Ｐ（ａ1＝０｜Ｓ2）＝１−Ｐ（ａ1＝１｜Ｓ2）＝０．１                （１５）
Ｐ（ａ2＝０｜Ｓ1）＝１−Ｐ（ａ2＝１｜Ｓ1）＝０．９                （１６）
Ｐ（ａ2＝０｜Ｓ2）＝１−Ｐ（ａ2＝１｜Ｓ2）＝０．３                （１７）
という確率に従って各状態および属性値が発生するものとする。すると、従来技術で構築した決定木で、誤りが発生するのは、真の状態がＳ1であって属性ａ1の値が１である場合と、真の状態がＳ2であって属性ａ1の値が０の場合である。従って、判定誤りの確率をＥ1とすると、
Ｅ1＝Ｐ（ａ1＝１｜Ｓ1）Ｐ（Ｓ1）＋Ｐ（ａ1＝０｜Ｓ2）Ｐ（Ｓ2）＝０．１
（１８）
となる。
【００１７】
一方、従来技術を用いず、根ノードに割当てられる属性がａ2であるような決定木を考える。この決定木を図１０に示す。同図の決定木を用いたときの判定誤りの確率をＥ2とすると、Ｅ2は次の値となる。
【００１８】
Ｅ2＝Ｐ（ａ2＝１｜Ｓ1）Ｐ（Ｓ1）＋Ｐ（ａ2＝０｜Ｓ2）Ｐ（Ｓ2）＝０．２
（１９）
このように、従来技術によって決定木を構築すれば、判定誤りの確率が低い決定木を作ることが出来る。
【００１９】
なお、非特許文献１に記されているように、情報利得として式（９）、（１０）のＧ（ａ1）、Ｇ（ａ2）を、内部ノードでの分岐確率から計算される情報量で割った値Ｇ′（ａ1）、Ｇ′（ａ2）が使われることもある。Ｇ′（ａ1）、Ｇ′（ａ2）の本質的な性質は上の議論と変わりないが、有効でない属性が選ばれる可能性をさらに低減できるとされている。
【００２０】
【非特許文献１】Ｊ.Ｒｏｓｓ  Ｑｕｉｎｌａｎ  著、Ｃ４．５：Ｐｒｏｇｒａｍｓ  ＦｏｒＭａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，Ｍｏｒｇａｎ  Ｋａｕｆｍａｎ  Ｐｕｂｌｉｓｈｅｒｓ，１９９３年，第２章。
【発明の開示】
【発明が解決しようとする課題】
【００２１】
従来技術によれば、多くの場合で判定誤りの確率が小さい、優れた決定木を構築できる。しかし、従来技術によって構築された決定木では誤りの種類によって重要度が異なる場合には、必ずしも良い決定木を構築するとは限らない。このことを前述の２状態、２属性のシステムの例を用いて説明する。
【００２２】
前述のシステムで、判定誤りの種類としては次の２つがある。
【００２３】
（１）真の状態はＳ1（明日は雨が降る）であるのにＳ2と判定する。
【００２４】
（２）真の状態はＳ2（明日は雨が降らない）であるのにＳ1と判定する。
本システムの利用者は、これら２つの誤りのうち、傘を持たずに外出して雨に濡れるという被害をもたらす（１）の誤りがより重要だと考えている、と仮定する。一方、（２）の誤りは傘が荷物になるものの（１）の誤りに比べ被害は軽微であって、重要度は低いと考えると仮定する。図９に示す従来技術で構築した決定木で、これら２つの誤り（１）、（２）がそれぞれ真の状態のもとで発生する条件付確率をそれぞれＥ1，1，Ｅ1，2のように書くと、
Ｅ1，1＝Ｐ（ａ1＝１｜Ｓ1）＝０．２                              （２０）
Ｅ1，2＝Ｐ（ａ1＝１｜Ｓ2）＝０．１                              （２１）
となる。一方、従来技術では構築されない根ノードに属性ａ2を割当てた決定木（図１０）で、誤り（１）、（２）がそれぞれ真の状態のもとで発生する条件付確率をそれぞれＥ2，1，Ｅ2，2のように書くと、
Ｅ2，1＝Ｐ（ａ2＝１｜Ｓ1）＝０．１                              （２２）
Ｅ2，2＝Ｐ（ａ2＝０｜Ｓ2）＝０．３                              （２３）
となる。したがって、より重要な誤り（１）に関しては従来技術で構築した決定木の方が大きな誤り確率となる。仮に誤り（１）が発生したときの損失を１０、誤り（２）が発生したときの損失を１とすると、システムが生み出す損失の期待値は、従来技術を用いた場合は１．０５、図１０の決定木では０．６５となり、従来技術を用いるとより大きな損失を与える決定木が構築されてしまう。
【００２５】
状態判定装置では、確率的に判定誤りが発生するが、判定誤りの種類によって判定誤りの重要性は異なる。
【００２６】
本発明は、このような背景の下に行われたものであって、本発明は、特に、過去に観測された既知の状態と属性値の集合を学習データとして与え、学習データから決定木を構築し、構築した決定木により現在の未知の状態を判定する場合に、重要な判定誤りを減らすような決定木の構築方法の提供を目的としている。
【００２７】
本発明の主な応用分野は、インターネットにおける侵入検知システムである。インターネットにおける侵入検知システムでは、監視対象であるホストに入る通信トラヒックの属性値を取得し、通信トラヒックの状態がホストへの侵入であるのか、侵入を含まない正常なものであるのかを判定する。
【００２８】
この際、判定誤りとしては、（１）侵入があるにも関わらず侵入が無いと判定する誤りと、（２）侵入が無いにも関わらず侵入があると判定する誤りがあり、前者よりも後者を極力起こらないようにする必要がある。
【００２９】
本発明は、インターネットにおける侵入検知システムに適用することで、侵入が無いにも関わらず同装置が誤って侵入があるかのような出力をすることを防ぐことを目的としている。
【課題を解決するための手段】
【００３０】
本発明は、システムが複数Ｍ個（但しＭは１より大きい整数）の状態Ｓ1，Ｓ2，...，ＳMのいずれか一つの状態をとり、前記状態が未知であって、前記システムを観測すると複数Ｎ個（但しＮは１より大きい整数）の属性ａ1，ａ2，...，ａMの値を知ることができ、属性の値が属する集合はいくつかの孤立な部分集合の輪であるとき、内部ノードと葉ノードで構成し、内部ノードは複数の子ノードを持ち、内部ノードのうち１つは他の内部ノードの子ノードではない根ノードであり、葉ノードは子ノードを持たない木構造で、核内部ノードには前記Ｎ個の属性ａ1，ａ2，...，ａNの１つを割り当て、根ノードから処理を開始し、内部ノードでは割当てた属性の値を調べ、属性の値がどの部分集合に属するかに応じて、いずれか１つの子ノードへ処理を進め、葉ノードには状態割り当て、処理が木はノードに到達したら該葉ノードに割当てた状態をシステムの状態と推定する決定木の、ある内部ノードに割当てる属性ａn（但し、ｎは１≦ｎ≦Ｎの整数）を前記Ｎ個の属性ａ1，ａ2，...，ａNの中から選ぶに当たり、属性ａnの値を調べる前の状態に関する情報量から、属性ａnの値を調べた後の情報量を減算して計算される情報利得を求め、前記Ｎ個の属性ａ1，ａ2，...，ａN  の中で、前記情報利得が最大になるような属性ａn  を選ぶ決定木構築装置において実行される決定木構築方法である。
【００３１】
ここで、本発明の特徴とするところは、ａnの値がＸの要素であるという条件での状態確率をＰ（Ｓ1｜ａn∈Ｘ），Ｐ（Ｓ2｜ａn∈Ｘ），…，Ｐ（ＳM｜ａn∈Ｘ）として、予め決められた状態Ｓmの（ただしｍは１≦ｍ≦Ｍの整数）、属性ａnの値がＸの要素であるとき状態確率Ｐ（Ｓm｜ａn∈Ｘ）をΔＰ（Ｓm｜ａn∈Ｘ）だけ減らした確率Ｑ（Ｓm｜ａn∈Ｘ）と、Ｓm以外の状態の状態確率Ｐ（Ｓi｜ａn∈Ｘ）（但し、ｉはｉ≠ｍで１≦ｉ≦Ｍの整数）との和が、ΔＰ（Ｓm｜ａn∈Ｘ）だけ増加するように変更して得られる確率Ｑ（Ｓi｜ａn∈Ｘ）を求めるステップと、属性ａ1，ａ2，…，ａNのうち、ａnの値を調べた後に値が部分集合Ｘの要素であるときの情報量を、確率Ｑ（Ｓ1｜ａn∈Ｘ），Ｑ（Ｓ2｜ａn∈Ｘ），…，Ｑ（ＳM｜ａn∈Ｘ）を用いて計算し、属性ａnの値を調べた後の情報量は、ａnの値が部分集合Ｘの要素であるときの情報量を、ａnの値が属し得る全ての部分集合について平均した値として、前記確率Ｑ（Ｓ1｜ａn∈ｘ），Ｑ（Ｓ2｜ａn∈Ｘ），…，Ｑ（ＳM｜ａn∈Ｘ）のそれぞれに、属性ａnが部分集合Ｘの要素となる確率Ｐ（ａn∈Ｘ）を乗算した値Ｑ（Ｓ1｜ａn∈Ｘ）Ｐ（ａn∈Ｘ），Ｑ（Ｓ2｜ａn∈Ｘ）Ｐ（ａn∈Ｘ），…，Ｑ（ＳM｜ａn∈Ｘ）Ｐ（ａn∈Ｘ）を、属性ａnが属し得る全ての部分集合について加算して確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を求めるステップと、前記属性ａnの値を調べる前の状態に関する情報量を前記確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を使って計算するステップとを有することを第一の特徴とする。
【００３２】
本発明の第一の特徴では、情報利得を計算する際、特定の状態の状態確率を増減する機構を設けたことにより、どの状態の判定を誤るか、という誤り種別に対して情報利得の感度が異なるようにしていることが従来技術と異なる。
【００３３】
この結果、決定木の内部ノードに割当てる属性を決めるとき、より重要な判定誤りを減らす属性を選択することができる。
【００３４】
また、本発明は、システムが複数Ｍ個（但しＭは１より大きい整数）の状態Ｓ1，Ｓ2，…，ＳMのいずれか一つの状態をとり、この状態が未知であるとき、前記システムを観測して得られる複数Ｎ個の属性ａ1，ａ2，…，ａNの値を調べてシステムの状態を判定する決定木の、ある属性ａn（但しｎは１≦ｎ≦Ｎの整数）を前記決定木の内部ノードに割当て、前記属性ａnが連続値をとり、前記内部ノードでは前記属性ａnの値が属する部分集合が、ある閾値ｔとａnの値との大小関係に従って決定されるときの、前記閾値ｔの値を決定するに当たり、前記属性ａnの値を調べる前の状態に関する情報量から、前記属性ａnの値を調べ、前記閾値ｔと比較した後の情報量を減算して計算される情報利得を求め、前記情報利得が最大になるように閾値ｔを決定する決定木構築装置において実行される決定木構築法である。
【００３５】
ここで、本発明の特徴とするところは、属性ａnの値が閾値ｔによって決まる部分集合Ｘ（ｔ）に属する場合には、状態確率をＰ（Ｓ1｜ａn∈Ｘ（ｔ）），Ｐ（Ｓ2｜ａn∈Ｘ（ｔ）），…，Ｐ（ＳM｜ａn∈Ｘ（ｔ））として、予め決められた状態Ｓm（但しｍは１≦ｍ≦Ｍの整数）の状態確率Ｐ（ＳM｜ａn∈Ｘ（ｔ））を、ΔＰ（ＳM｜ａn∈Ｘ（ｔ））だけ減らした確率Ｑ（Ｓm｜ａn∈Ｘ（ｔ））と、Ｓm以外の状態の状態確率Ｐ（Ｓi｜ａn∈Ｘ（ｔ））（但し、ｉはｉ≠ｍで１≦ｉ≦Ｍの整数）との和が、ΔＰ（Ｓm｜ａn∈Ｘ（ｔ））だけ増加するように変更して得られる確率Ｑ（Ｓi｜ａn∈Ｘ（ｔ））を求めるステップと、属性ａ1，ａ2，…，ａNのうち、ａnの値を調べた後に値が部分集合Ｘ（ｔ）の要素であるときの情報量を、確率Ｑ（Ｓ1｜ａn∈Ｘ（ｔ）），Ｑ（Ｓ2｜ａn∈Ｘ（ｔ），…，Ｑ（ＳM｜ａn∈Ｘ（ｔ））を用いて計算し、属性ａnの値を調べた後の情報量は、ａnの値が部分集合Ｘ（ｔ）の要素であるときの情報量を、ａnの値が属し得る全ての部分集合について平均した値として、前記確率Ｑ（Ｓ1｜ａn∈Ｘ（ｔ）），Ｑ（Ｓ2｜ａn∈Ｘ（ｔ）），…，Ｑ（ＳM｜ａn∈Ｘ（ｔ））のそれぞれに、属性ａnが部分集合Ｘ（ｔ）の要素となる確率Ｐ（ａn∈Ｘ（ｔ））を乗算した値Ｑ（Ｓ1｜ａn∈Ｘ（ｔ））Ｐ（ａn∈Ｘ（ｔ）），Ｑ（Ｓ2｜ａn∈Ｘ（ｔ））Ｐ（ａn∈Ｘ（ｔ）），…，Ｑ（ＳM｜ａn∈Ｘ）Ｐ（ａn∈Ｘ（ｔ））を、属性ａnが属し得る全ての部分集合について加算して確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を求めるステップと、前記属性ａnの値を調べる前の状態に関する情報量を前記確率Ｑ（Ｓ1），Ｑ（Ｓ2），…，Ｑ（ＳM）を使って計算するステップとを有することを第二の特徴とする。
【００３６】
決定木を構築する際、情報利得は内部ノードに割当てる属性を選択するだけでなく、連続的な値をとる属性で分岐条件を決める閾値の設定でも使われる。上の説明で、部分集合Ｘ（ｔ）は、｛ｘ｜ｘ≦ｔ｝あるいは｛ｘ｜ｘ＞ｔ｝のような集合であって、値ｔの決め方によって決定木の判定誤り特性は大きく左右されるが、この場合も情報利得を最大化するようにｔを決めると良い特性が得られる。
【００３７】
本発明の第二の特徴では、この閾値ｔの決定においても情報利得を計算する際、特定の状態の状態確率を増減する機構を設けたことにより、どの状態の判定を誤るか、とうい誤り種別に対して情報利得の感度が異なるようにしている。この結果、連続値をとる属性が決定木の内部ノードに割当てられる場合には、属性の選択だけでなく閾値の設定の面でも重要な判定誤りの発生率を低減することができる。
【００３８】
また、本発明を決定木構築装置の観点から観ると、本発明は、過去に複数回のデータ観測を行い、この観測したデータの属性および状態を集計して得られた学習データを入力し、この学習データに基づき根ノードから内部ノードを経て葉ノードに到達する木構造を構築する際に、各内部ノードに割当てる属性を決定する内部ノード属性決定手段を備えた決定木構築装置であって、本発明の特徴とするところは、前記内部ノード属性決定手段は、上述した本発明の決定木構築方法を用いて内部ノードの属性を決定する手段を備えたところにある。
【００３９】
さらに、属性に連続値が含まれる場合に、当該属性の値と閾値とを比較して属性を決定するための閾値決定手段を備え、この閾値決定手段は、上述した本発明の決定木構築方法を用いて閾値を決定する手段を備えたところにある。
【００４０】
さらに、本発明の決定木構築法を用いて決定木を構築し、状態判定装置に適用すれば、重要な判定誤りの発生確率が低い状態判定装置を得ることができる。
【００４１】
すなわち、本発明を状態判定装置の観点から観れば、本発明は、ネットワークとホスト・コンピュータとの間に挿入され、前記ネットワークと前記ホスト・コンピュータとの間の通信トラヒックの状態を判定する状態判定装置であって、本発明の特徴とするところは、本発明の決定木構築装置により構築された木構造を入力し、当該木構造における葉ノードに割当てられた状態に基づき前記通信トラヒックの状態を判定する手段を備えたところにある。
【００４２】
また、本発明をプログラムの観点から観ることもできる。すなわち、本発明は、汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本発明の決定木構築装置に相応する機能を実現させるプログラムである。あるいは、本発明は、汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本発明の状態判定装置に相応する機能を実現させるプログラムである。
【００４３】
本発明のプログラムは、記録媒体に記録されることにより、前記汎用の情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記汎用の情報処理装置に本発明のプログラムをインストールすることもできる。
【００４４】
これにより、汎用の情報処理装置を用いて、本発明の決定木構築装置または状態判定装置を実現することができる。
【発明の効果】
【００４５】
本発明を用いれば、未知の状態を、観測の結果得られる属性値を決定木に与えて判断する状態判定装置で、判定誤り種類による重要度の違いを考慮した決定木を構築することができる。この結果、状態判定装置において、判定誤りが甚大な損害を及ぼすような種類の判定誤りを従来技術よりも減少させることが可能となる効果がある。
【００４６】
特に、インターネットの侵入検知システムに適用すれば、同装置で重要なＦａｌｓｅ  Ｐｏｓｉｔｉｖｅの少ない侵入検知が可能となる効果が得られる。
【発明を実施するための最良の形態】
【００４７】
（第一実施例）
本発明の第一実施例を図面を参照して説明する。図１は第一実施例を説明する流れ図であり、属性値が離散値を取る場合に、決定木の内部ノードを選択するときの計算手続きを示すものである。図１に示した処理の流れに従って決定木が構築される様子を、図８のデータを使って説明する。図１に従えば、内部ノードに割当てる属性を選択するとき、属性毎に情報利得を次のように計算する。
【００４８】
まず、値が既知となった後の事後状態確率を求め、その事後状態確率を、ある状態Ｓmに関しては減少させ、他の状態については増加させ、その事後状態確率から属性値が分かった後の事後情報量Ｊ（Ｓ｜ａ）を計算する（ステップＳ４およびＳ５）。
【００４９】
Ｓmは、システムの真の状態がＳmのときに、他の状態であるかのように判定誤りしたときに、生じる損失が、他の判定誤りで生じる損失よりも大きくなるような状態とする。図８のデータの例では状態Ｓ1「明日は雨が降る」の状態確率をΔＰ（Ｓ1）だけ減少させて（１−Δ）倍にして、状態Ｓ1の状態確率の減少分を状態Ｓ2「明日は雨が降らない」の状態確率に加算する。
【００５０】
ここでパラメタΔは０より大きく１より小さい値に選ぶ。この変更した事後状態確率からＪ（Ｓ｜ａ）を計算する。さらに、変更した事後状態確率と、属性値の発生確率とから、属性値を知る前の事前確率に相当する状態確率を求め（ステップＳ６）、その情報量Ｊ（Ｓ）を計算する。属性値ａの情報利得Ｈ（ａ）はＪ（Ｓ）からＪ（Ｓ｜ａ）を減ずることによって計算される（ステップＳ７）。
【００５１】
以上の計算はステップＳ２、Ｓ３によってすべての属性について実行され、ステップＳ８、Ｓ９によって情報利得が最大の属性が記録され、最終的な出力となる（ステップＳ１０）。
【００５２】
ここで、図８のデータで属性ａ1の利得情報Ｈ（ａ1）を計算する。値が０である場合には、事後の状態確率は式（３）、（４）の値となるが、本発明ではこれを次の確率Ｑ（Ｓ1｜ａ1＝０），Ｑ（Ｓ2｜ａ1＝０）に変換する。
【００５３】
Ｑ（Ｓ1｜ａ1＝０）＝（１−Δ）×１６／１７                    （２４）
Ｑ（Ｓ2｜ａ1＝０）＝１／１７＋Δ×１６／１７                  （２５）
パラメタΔを０．５に設定すると、Ｑ（Ｓ1｜ａ1＝０）＝０．４７０５８８，Ｑ（Ｓ2｜ａ1＝０）＝０．５２９４１２という値が計算される。同様に、Ｑ（Ｓ2｜ａ1＝１）＝０．９１３０４３と計算される。
【００５４】
この結果、変更された事後状態確率による情報量Ｊ（Ｓ｜ａ1）は次のように計算される。
【００５５】
Ｊ（Ｓ｜ａ1＝０）＝−Ｑ（Ｓ1｜ａ1＝０）ｌｏｇ2Ｑ（Ｓ1｜ａ1＝０）−Ｑ（Ｓ2｜ａ1＝０）ｌｏｇ2Ｑ（Ｓ2｜ａ1＝０）＝０．９９７０５３
（２６）
Ｊ（Ｓ｜ａ1＝１）＝０．４２６２２９                            （２７）
Ｊ（Ｓ｜ａ1）＝Ｐ（ａ1＝０）Ｊ（Ｓ｜ａ1＝０）＋Ｐ（ａ1＝１）Ｊ（Ｓ｜ａ1＝１）＝０．６６９０２                                            （２８）
変更した事後状態確率から事前確率に相当する状態確率を求めると、次のようになる。
【００５６】
Ｑ（Ｓ1）＝Ｑ（Ｓ1｜ａ1＝０）Ｐ（ａ1＝０）＋Ｑ（Ｓ1｜ａ1＝１）Ｐ（ａ1＝１）＝０．２５                                                        （２９）
Ｑ（Ｓ2）＝Ｑ（Ｓ2｜ａ1＝０）Ｐ（ａ1＝０）＋Ｑ（Ｓ2｜ａ1＝１）Ｐ（ａ1＝１）＝０．７５                                                        （３０）
従って、Ｊ（Ｓ）は、
Ｊ（Ｓ）＝−Ｑ（Ｓ1）ｌｏｇ2Ｑ（Ｓ1）−Ｑ（Ｓ2）ｌｏｇ2Ｑ（Ｓ2）＝０．８１１２７８                                                      （３１）
この結果、属性ａ1の情報利得Ｈ（ａ1）は次のように計算される。
【００５７】
Ｈ（ａ1）＝Ｊ（Ｓ）−Ｊ（Ｓ｜ａ1）＝０．１４５５２８            （３２）
同様にして、属性ａ2に関しては、
Ｊ（Ｓ｜ａ2）＝０．６６１３２６                                （３３）
Ｈ（ａ2）＝０．１４９９５３                                    （３４）
このように、本発明によれば、属性ａ1の情報利得Ｈ（ａ1）よりも、属性ａ2の情報利得Ｈ（ａ2）の方が大きな値となる。この結果、本発明を用いれば、決定木の根に割当てられる属性はａ2となる。もし、停止規則が「属性値は１回だけ調べる」というものだとすると、本発明により構築される決定木は、図１０の構成となる。図１０の決定木は、前述のとおり、従来技術で構築される図９の決定木に比べ、状態Ｓ1であるときに状態Ｓ2であると判定する判定誤りの確率が小さい。この結果、状態Ｓ1を状態Ｓ2と判定誤りするときの損失が１０で、状態Ｓ2を状態Ｓ1と判定誤りするときの損失が１である場合に、本発明を用いることにより従来技術より損失の期待値を小さくすることができる。
【００５８】
以上説明したように、本発明を用いれば、判定誤りの中で重要度の高いものに着目して確率を変更する機能を設けているので、従来技術の情報利得における判定誤りの種類による重要度の違いが考慮されないという問題が解決され、重要な判定誤りがより少ない決定木を構築できる利点が生じる。また、本発明を用いて構築した決定木を状態判定装置に用いれば重要な判定誤りの少ない装置とすることができる。
【００５９】
（第二実施例）
本発明の第二実施例を図面を参照して説明する。図２は第二実施例を説明する流れ図であり、属性が連続値を取る場合に、決定木の内部ノードを選択するときの計算手続きを示すものである。属性が連続値を取る場合には、ある閾値を定め、属性値が閾値より大きいか、そうでないかによって内部ノードでどの子ノードへ処理を進行させるかを決定する。
【００６０】
ここで閾値をいくつに設定するかによって決定木の性能は変化する。本発明では、属性ａに対し、閾値ｔを変化させながら（図２のステップＳ１９）、閾値ｔを用いたときの情報利得Ｈ（ａ，ｔ）を、変更した状態確率に従って計算し、情報利得が最大になるような閾値ｔmaxを選ぶ。ここで変更した状態確率に従った情報利得は、図１の場合と同じく次のように計算する。
【００６１】
まず、値を閾値ｔと比較した後の事後状態確率を求め、その事後状態確率を、ある状態Ｓmに関しては減少させ、他の状態については増加させる。この変更した状態確率から属性値が分かった後の事後情報量Ｊ（Ｓ｜ａ，ｔ）を計算する（ステップＳ１３、Ｓ１４）。Ｓmはシステムの真の状態がＳmであるとき、他の状態であるかのように判定誤りしたときの損失が、他の状態を判定誤りしたときの損失よりも大きくなるような状態である。
【００６２】
さらに、変更した事後状態確率と、属性値の発生確率とから、属性値を知る前の事前確率に相当する状態確率を求め（ステップＳ１５）、その情報量Ｊ（Ｓ）を計算する。連続的属性ａと閾値ｔとを比較して得られる情報利得Ｈ（ａ，ｔ）はＪ（Ｓ）からＪ（Ｓ｜ａ，ｔ）を減ずることによって計算される（ステップＳ１６）。
【００６３】
閾値ｔを変化させながらこの計算を繰り返す過程で、情報利得が最大になる閾値がステップＳ１７およびＳ１８で記録され、手続き終了時に出力される（ステップＳ２０）。
【００６４】
上のように選んだ閾値ｔmaxに対する情報利得Ｈ（ａ，ｔmax）を、各属性毎に比較し、情報利得が最大になるような属性を選び、内部ノードに割当てる。連続値をとる属性と離散値をとる属性とが混在している場合は、連続値は上に説明した閾値ｔmaxでの情報利得を、離散値は図１のステップＳ７で計算される情報利得を計算し、情報利得が最大となる属性値を内部ノードに割当てる。
【００６５】
情報利得としては以上説明したＨ（ａ）またはＨ（ａ，ｔ）の代わりに、これらの値を内部ノードでの分岐確率から計算される情報量で割った値Ｈ′（ａ）またはＨ′（ａ，ｔ）を使うこともできる。Ｈ′（ａ）またはＨ′（ａ，ｔ）を使えば従来技術におけるＧ′（ａ）の場合と同様の効果がある上、重要な判定誤りの発生率を低減できる。
（侵入検知システムの実施例）
以上、説明した属性が連続値である場合の効果を、インターネットに接続したホスト・コンピュータを監視する侵入検知システムに応用したときの例を説明する。図３は、本発明を侵入検知システムに応用したときの様子を説明する図であって、３１はホスト・コンピュータ、３２は侵入検知システムである。なお、侵入検知システム３２の機能は、ホスト・コンピュータ３１の内部でソフトウェアとして実装して実行してもよい。侵入検知システム３２はトラヒック属性抽出機構３３、学習データ３４、決定木構築機構３５、侵入判定機構３６で構成される。
【００６６】
なお、本発明の決定木構築装置は本実施例における決定木構築機構３５に相当し、本発明の状態判定装置は本実施例における侵入判定機構３６に相当する。
【００６７】
決定木構築機構３５は、学習データ３４から決定木を構築し、構築した決定木を侵入判定機構３６に出力する作用をするが、その構成は図４のようになっている。本構成では、停止規則判定機構５４、葉ノードに割当てる状態の決定機構５５、内部ノードに割当てる属性の決定機構５６、子ノードの学習データサブセット生成機構５８は、学習データ（またはそのサブセット）と共に、決定木の中のノードを一意に識別する識別子を入力として動作する。
【００６８】
また、決定木の構築を記録するには、ノードの識別子毎に、そのノードが葉ノードか内部ノードかを示す値と、葉ノードならば割当てた状態を示す値、内部ノードならば割当てた属性および属性値の集合毎の対応する子ノードの識別子をデータとして記録すればよく、このデータが図４の機構で生成されて出力となる。
【００６９】
本構成では、まず、学習データ３４は根ノードであることを示す識別子と共に停止規則判定機構５４に第１の入力５１として与えられる。停止規則判定機構５４は学習データから与えられた識別子のノードを葉ノードと内部ノードのどちらとするべきか判断し、判断結果は決定木記録機構５９へ送られて記録される。
【００７０】
停止規則判定機構５４がノード識別子で識別されるノードを葉ノードにするべきと判断した場合には、第１の入力（学習データ）５１とノード識別子とを葉ノードに割当てる状態の決定機構５５へ送る。葉ノードに割当てる状態の決定機構５５は与えられた学習データに対して、最も損失の少なくなるように、ノード識別子で識別される葉ノードに割当てる状態を決定する。結果は、決定木記録機構５９へ送られて記録される。
【００７１】
逆に、ノード識別子で識別されるノードを内部ノードにするべきと判断した場合には、与えられた学習データとノード識別子は、内部ノードに割当てる属性の決定機構５６へ送られる。内部ノードに割当てる属性の決定機構５６は図１のフローに従って、ノード識別子で識別される内部ノードに割当てる属性を決定する。さらに、属性に連続値が含まれる場合には、属性の値と閾値とを比較する必要があるので、情報利得の計算中に連続属性値に対する閾値決定機構５７へ学習データを送る。
【００７２】
連続属性値に対する閾値決定機構５７は図２のフローに従って最良の閾値を決定し、同時に情報利得を計算し、これに基づいて内部ノードに割当てる属性の決定機構５６は最も情報利得の高い属性をノードに割当てる。結果は決定木記録機構５９へ送られて記録される。
【００７３】
調べる属性が決定すれば、与えられた学習データの個々の要素について、属性の値に基づいて、ノード識別子で識別される内部ノードの、どの子ノードに処理を進めるか決定できる。この結果、子ノード毎に対応する学習データのサブセットを生成できる。この学習データのサブセットは、内部ノードに割当てる属性の決定機構５６が決定した属性と、学習データを入力として、子ノードの学習データサブセット生成機構５８が生成する。
【００７４】
子ノードの学習データサブセット生成機構５８は、子ノードの識別子を新しく作り、内部ノードの子ノードの情報として、決定木記録機構５９へ送る。これと共に、第１の子ノードの識別子と第１の子ノードに対応する学習データのサブセットを停止規則判定機構５４に第２の入力５２として送り込む。
【００７５】
停止規則判定機構５４は第２の入力５２に対しても同様の動作をして、葉ノードに割当てる状態の決定機構５５または内部ノードに割当てる属性の決定機構５６を起動する。葉ノードに割当てる状態の決定機構５５および内部ノードに割当てる属性の決定機構５６は上と同様の動作を繰り返し、その結果、第１の子ノードを根とする部分木が再帰的に構築される。
【００７６】
次に、子ノードの学習データサブセット生成機構５８は、第２の子ノードと第２の子ノードに対応する学習データのサブセットを停止規則判定機構５４に第３の入力５３として送り込む。この結果、停止規則判定機構５４以下が同様の動作を繰り返し、第２の子ノードを根とする部分木が再帰的に構築される。
【００７７】
同様のことを全ての子ノードと、対応する学習データのサブセットに繰り返すことで、決定木が再帰的手法により構築される。この決定木の構築過程で、決定木の構築を示すデータであるノード識別子毎の、葉ノードか内部ノードかの区別と、葉ノードの場合の割当てられる状態と、内部ノードの場合の割当てられる属性と、内部ノードが持つ子ノードの識別子は、決定される度に決定木記録機構５９へ送られて記録される。決定木の構築が完了すると、決定木のすべての構築データが記録され、決定木記録機構５９は記録された決定木の出力（構築データ）６０を図３の侵入判定機構３６へ送出する。なお、決定木記録機構５９において記録される構築データは、例えば、図７に示したように一覧表として生成される。
【００７８】
インターネットの侵入検知システムは、属性がトラヒックの性質を示す数値であり、状態が現在のトラヒックがホストへの侵入を含んでいない正常状態か、そうでなければトラヒックに含まれる侵入または攻撃の種類の一つをとるような状態判定システムと考えることができる。
【００７９】
侵入検知システムにおける判定誤りは、現実には正常状態であるのに侵入または攻撃が発生しているように判定する誤り（以下、Ｆａｌｓｅ  Ｐｏｓｉｔｉｖｅと呼ぶ）、侵入または攻撃が発生しているのに正常状態であるかのように判定する誤り（以下、Ｆａｌｓｅ  Ｎｅｇａｔｉｖｅと呼ぶ）、侵入または攻撃の種別の誤判定の３つの種類に分類される。
【００８０】
これらの中で、Ｆａｌｓｅ  Ｐｏｓｉｔｉｖｅが発生すると不要な攻撃遮断措置が必要となり、ホストの運用管理上大きな作業負荷が発生する問題がある。特に、侵入または攻撃が稀にしか発生しない状況では、システムが侵入または攻撃を検知したとき、そのほとんどがＦａｌｓｅ  Ｐｏｓｉｔｉｖｅということも起こり得る。そのような状況が起こると判定結果に対する信頼性が極めて低下する。
【００８１】
このような問題の発生を防ぐため、侵入検知システムにおいては他の種類の判定誤りよりもＦａｌｓｅ  Ｐｏｓｉｔｉｖｅを減らすことがより重要な課題となる。したがって、上の説明における記号Ｓmに相当する状態は正常状態となる。
【００８２】
（第三実施例）
第三実施例は、汎用の情報処理装置にインストールすることにより、その汎用の情報処理装置に、本実施例の決定木構築装置（決定木構築機構３５に相当）および状態判定装置（侵入判定機構３６に相当）に相応する機能を実現させるプログラムである。このプログラムは、記録媒体に記録されて汎用の情報処理装置にインストールされ、あるいは通信回線を介して汎用の情報処理装置にインストールされることにより当該汎用の情報処理装置に、本実施例の決定木構築装置および状態判定装置にそれぞれ相応する機能を実現させることができる。汎用の情報処理装置は、例えば、汎用のパーソナル・コンピュータである。
【００８３】
（実施例の評価）
以下では、本発明を適用することでＦａｌｓｅ  Ｐｏｓｉｔｉｖｅを減らすことが達成できることを実験データにより示す。
【００８４】
実験はデータマイニングの国際会議で公開されたＫＤＤＣｕｐ９９で使われたトラヒックデータ(http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html)を用いて行った。本データはＬＡＮ上で通常のアプリケーションによるトラヒックと侵入トラヒックとを発生させて記録されたものである。データはコネクション単位に記録されており、各コネクションのとる状態は「正常」か、あるいは、２２種類の侵入かのいずれかである。
【００８５】
コネクションには離散値をとる属性がプロトコル、サービス等７種類、連続値をとる属性が接続時間、送信バイト数など３４種類定義されている。データには４８９８４３１個のコネクションの属性値と状態とが含まれているが、これを５等分して５つの部分データを構築した。
【００８６】
次に、各部分データ毎に２０％のコネクションをランダムに選んで学習データとして、残りの８０％のコネクションを決定木による判定が正しいかどうかを調べる評価用のデータとした。さらに、５つの部分データ毎に学習データから本発明および従来技術を用いて決定木を構築し、構築した決定木を用いて評価データの各コネクションについて状態を判定し、判定結果とコネクションの真の状態とを比較してＦａｌｓｅ  Ｐｏｓｉｔｉｖｅの割合を計算した。
【００８７】
本発明を用いた場合には、「正常」状態の状態確率Ｐnを（１−Δ）倍に減少させ、２２個の侵入状態の中で、属性値を調べた後で最も状態確率の高い侵入状態を選び、この選ばれた侵入状態の状態確率を正常状態の状態確率の減少分ΔＰnだけ増加させた。もし、最も状態確率の高い侵入状態が複数あれば、その中で属性値を調べる前の状態確率が最大の侵入状態を選び、その状態確率を増加させた。パラメタΔは０から０．９の範囲で変化させた。
【００８８】
このようにして本発明を使って構築した決定木を用い、侵入検知時のＦａｌｓｅ  Ｐｏｓｉｔｉｖｅを求め、従来技術と比較した結果を図５に示す。図５の横軸はパラメタΔの値であり、縦軸は従来技術で得られるＦａｌｓｅ  Ｐｏｓｉｔｉｖｅの数に対する本発明で得られるＦａｌｓｅ  Ｐｏｓｉｔｉｖｅの数の割合をパーセントで表示したものである。１００パーセント未満であれば従来技術よりもＦａｌｓｅ  Ｐｏｓｉｔｉｖｅが少ないことを示している。図５には５つの部分問題の中で最も効果があった場合（最良値）、最も効果がなかった場合（最悪値）、平均値を示している。
【００８９】
図５が示すように、本発明の効果は部分問題とパラメタΔの選び方によってばらつくものの、Δを０．３以上０．８以下に選べば全ての部分問題において本発明を用いることでＦａｌｓｅ  Ｐｏｓｉｔｉｖｅを低減することができた。特に、Δを０．７に選べばＦａｌｓｅ  Ｐｏｓｉｔｉｖｅを従来技術に比べ平均値で５０％程度に低減できる。さらに、最も効果のある部分問題では２３％程度までＦａｌｓｅ  Ｐｓｉｔｉｖｅを低減できる。
【００９０】
以上説明したように、本発明の図４の機構を用いることで、属性が連続値を取る場合であっても、重要な判定誤りを従来技術より低減するような決定木を構築することが可能となる。特に、図４の機構を用いて構築した決定木を、図３に示すように、インターネットにおける侵入検知システムに適用すれば、侵入検知で重要な判定誤りであるＦａｌｓｅ  Ｐｏｓｉｔｉｖｅを効果的に低減することができる。
【産業上の利用可能性】
【００９１】
本発明を用いれば、判定誤りが甚大な損害を及ぼすような種類の判定誤りを従来技術よりも減少させることが可能となるので、例えば、インターネットの侵入検知システムに適用すれば、同システムで重要なＦａｌｓｅ  Ｐｏｓｉｔｉｖｅの少ない侵入検知が可能となり、ネットワーク管理者および利用者の双方にとって有用なネットワーク・システムの構築に寄与することができる。
【図面の簡単な説明】
【００９２】
【図１】本実施例の内部ノードの属性決定手順を示す流れ図。
【図２】本実施例の閾値決定手順を示す流れ図。
【図３】本実施例の侵入検知システムのブロック構成図。
【図４】本実施例の決定木構築機構のブロック構成図。
【図５】本実施例の侵入検知システムにおける効果を示す実験結果を説明するための図。
【図６】木構造を説明するための図。
【図７】図６の木構造の構築データの一覧表を示す図。
【図８】学習データの一例を示す図。
【図９】従来技術により構築される決定木の例を示す図。
【図１０】従来技術では構築されない決定木の例を示す図。
【符号の説明】
【００９３】
３１  ホスト・コンピュータ
３２  侵入検知システム
３３  トラヒック属性抽出機構
３４  学習データ
３５  決定木構築機構
３６  侵入判定機構
５１〜５３  入力データ
５４  停止規則判定機構
５５  葉ノードに割当てる状態の判定機構
５６  内部ノードに割当てる属性の決定機構
５７  連続属性値に対する閾値決定機構
５８  子ノードの学習データサブセット生成機構
５９  決定木記録機構
６０  出力
１０１  根ノード
１０２〜１０５  内部ノード
１１１〜１１６  葉ノード
【図１】
2007334589.tif 000003
【図２】
2007334589.tif 000004
【図３】
2007334589.tif 000005
【図４】
2007334589.tif 000006
【図５】
2007334589.tif 000007
【図６】
2007334589.tif 000008
【図７】
2007334589.tif 000009
【図８】
2007334589.tif 000010
【図９】
2007334589.tif 000011
【図１０】
2007334589.tif 000012