(57)【要約】      （修正有）【課題】パケットをクラスタリングするクラスタリング方法を提供する。【解決手段】クラスタリング方法は、最初にクラスタリング装置にて、複数のパケットのペイロード間の類似度を算出し、算出した類似度を用いて、複数のパケットをクラスタリングする。次に、分類装置は、当該クラスタリング結果を教師として機械学習モデルに１のパケットを分類するように学習させ、学習済の当該機械学習モデルを用いて１のパケットを分類する。【選択図】図１２
2019213183.tif 000002
【特許請求の範囲】
【請求項１】
複数のパケット間の類似度を算出し、
算出した前記類似度を用いて、前記複数のパケットをクラスタリングする
クラスタリング方法。
【請求項２】
前記類似度を算出する際に、前記複数のパケットのペイロード間のリーベンシュタイン距離を利用して前記類似度を算出する
請求項１に記載のクラスタリング方法。
【請求項３】
前記複数のパケットをクラスタリングする際に、スペクトラルクラスタリング法を用いる
請求項１又は２に記載のクラスタリング方法。
【請求項４】
前記類似度を算出する際に、前記複数のパケットのペイロード間に定義されるストリングカーネルを利用して前記類似度を算出し、
前記複数のパケットをクラスタリングする際に、前記ストリングカーネルを利用したカーネルＫ平均法を用いる
請求項１に記載のクラスタリング方法
【請求項５】
請求項１から請求項４のいずれか１項に記載のクラスタリング方法によりクラスタリングされた結果を教師として、機械学習モデルに、１のパケットを分類するよう学習させ、
学習済みの前記機械学習モデルを用いて、１のパケットを分類する
分類方法。
【請求項６】
前記機械学習モデルに学習させる際に、Ｋ近傍法を用いる
請求項５に記載の分類方法。
【請求項７】
前記機械学習モデルに学習させる際に、サポートベクターマシンを用いる
請求項５に記載の分類方法。
【請求項８】
前記機械学習モデルに学習させる際に、ニューラルネットワークを用いる
請求項５に記載の分類方法。
【請求項９】
複数のパケット間の類似度を算出する算出部と、
前記算出部により算出された類似度を用いて、前記複数のパケットをクラスタリングするクラスタリング部と、を備える
クラスタリング装置。
【請求項１０】
請求項１から請求項４のいずれか１項に記載のクラスタリング方法によりクラスタリングされた結果を教師として機械学習モデルに、１のパケットを分類するよう学習させる学習部と、
学習済みの前記機械学習モデルを用いて、１のパケットを分類する分類部と、を備える
分類装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットをクラスタリングするクラスタリング方法に関する。
【背景技術】
【０００２】
従来、ネットワークシステム等で利用されるデータを対象として行う情報処理技術が知られている（例えば、非特許文献１、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ye, N. (2000, June). A markov chain model of temporal behavior for anomaly detection. In Proceedings of the 2000 IEEE Systems, Man, and Cybernetics Information Assurance and Security Workshop (Vol. 166, p. 169). West Point, NY.
【非特許文献２】Otey, M. E., Ghoting, A., & Parthasarathy, S. (2006). Fast distributed outlier detection in mixed-attribute data sets. Data mining and knowledge discovery, 12(2-3), 203-228
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークシステム等で利用されるパケットをクラスタリングすることが望まれる。
【０００５】
そこで、本発明は、パケットをクラスタリングするクラスタリング方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の一態様に係るクラスタリング方法は、複数のパケット間の類似度を算出し、算出した前記類似度を用いて、前記複数のパケットをクラスタリングする。
【０００７】
また、本開示の一態様に係る分類方法は、上記クラスタリング方法によりクラスタリングされた結果を教師として、機械学習モデルに、１のパケットを分類するよう学習させ、学習済みの前記機械学習モデルを用いて、１のパケットを分類する。
【０００８】
本開示の一態様に係るクラスタリング装置は、複数のパケット間の類似度を算出する算出部と、前記算出部により算出された類似度を用いて、前記複数のパケットをクラスタリングするクラスタリング部と、を備える。
【０００９】
また、本開示の一態様に係る分類装置は、上記クラスタリング方法によりクラスタリングされた結果を教師として機械学習モデルに、１のパケットを分類するよう学習させる学習部と、学習済みの前記機械学習モデルを用いて、１のパケットを分類する分類部と、を備える。
【発明の効果】
【００１０】
本開示の一態様に係るクラスタリング方法によると、パケットをクラスタリングすることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１に係るクラスタリングシステムの構成を示すブロック図である。
【図２】図２は、実施の形態１に係るプロファイル決定部が記憶するプロファイル情報の一例である。
【図３】図３は、実施の形態１に係るプロファイル決定部が記憶するプロファイル情報の他の一例である。
【図４】図４は、ＴＣＰプロトコルのパケットのデータ構造を示す模式図である。
【図５】図５は、ＵＤＰプロトコルのパケットのデータ構造を示す模式図である。
【図６】図６は、Ｍｏｄｂｕｓ／ＴＣＰプロトコルのパケットのデータ構造を示す模式図である。
【図７】図７は、実施の形態１に係る算出部がパケットデータを１バイトずつ切り出す様子の一例を示す模式図である。
【図８】図８は、実施の形態１に係る算出部が文字列間のリーベンシュタイン距離を算出する様子を示す模式図である。
【図９】図９は、実施の形態１に係る算出部がバイト列間のリーベンシュタイン距離を算出する様子を示す模式図である。
【図１０Ａ】図１０Ａは、クラスタリングされる前の状態で、パケットデータ間の類似度を行列化した類似度行列を示す模式図である。
【図１０Ｂ】図１０Ｂは、クラスタリングされたクラスタ毎に配列位置を並び替えた状態でパケットデータ間の類似度を行列化した類似度行列を示す模式図である。
【図１１】図１１は、実施の形態１に係る分類部が、Ｋが１となるＫ近傍法を用いてパケットを分類する様子を示す模式図である。
【図１２】図１２は、第１クラスタリング処理のフローチャートである。
【図１３】図１３は、第１学習処理のフローチャートである。
【図１４】図１４は、第１分類処理のフローチャートである。
【図１５】図１５は、実施の形態２に係るクラスタリングシステムの構成を示すブロック図である。
【図１６】図１６は、第２クラスタリング処理のフローチャートである。
【図１７】図１７は、第２学習処理のフローチャートである。
【図１８】図１８は、第２分類処理のフローチャートである。
【図１９】図１９は、実施の形態３に係るクラスタリングシステムの構成を示すブロック図である。
【図２０】図２０は、第３学習処理のフローチャートである。
【発明を実施するための形態】
【００１２】
（本発明の一態様を得るに至った経緯）
従来、あるプロトコルのパケットの種別を調べるためには、そのプロトコルの専用パーサを準備し、パケットの種別を表す箇所をそのパーサより取得する必要がある。これに対して、発明者は、パケット群からパケットのクラスタリングを学習し、学習結果を基に未知のパケットを分類するという考えに基づいて、下記本開示の一態様に係るクラスタリング方法、分類方法、クラスタリング装置、及び、分類装置に想到した。
【００１３】
本開示の一態様に係るクラスタリング方法は、複数のパケット間の類似度を算出し、算出した前記類似度を用いて、前記複数のパケットをクラスタリングする。
【００１４】
また、前記類似度を算出する際に、前記複数のパケットのペイロード間のリーベンシュタイン距離を利用して前記類似度を算出するとしてもよい。
【００１５】
また、前記複数のパケットをクラスタリングする際に、スペクトラルクラスタリング法を用いるとしてもよい。
【００１６】
また、前記類似度を算出する際に、前記複数のパケットのペイロード間に定義されるストリングカーネルを利用して前記類似度を算出し、前記複数のパケットをクラスタリングする際に、前記ストリングカーネルを利用したカーネルＫ平均法を用いるとしてもよい。
【００１７】
上記クラスタリング方法によると、複数のパケットをクラスタリングすることができる。
【００１８】
本開示の一態様に係る分類方法は、上記クラスタリング方法によりクラスタリングされた結果を教師として、機械学習モデルに、１のパケットを分類するよう学習させ、学習済みの前記機械学習モデルを用いて、１のパケットを分類する。
【００１９】
また、前記機械学習モデルに学習させる際に、Ｋ近傍法を用いるとしてもよい。
【００２０】
また、前記機械学習モデルに学習させる際に、サポートベクターマシンを用いるとしてもよい。
【００２１】
また、前記機械学習モデルに学習させる際に、ニューラルネットワークを用いるとしてもよい。
【００２２】
上記分類方法によると、１のパケットを分類することができる。
【００２３】
本開示の一態様に係るクラスタリング方法は、複数のパケット間の類似度を算出する算出部と、前記算出部により算出された類似度を用いて、前記複数のパケットをクラスタリングするクラスタリング部と、を備える。
【００２４】
上記クラスタリング装置によると、複数のパケットをクラスタリングすることができる。
【００２５】
本開示の一態様に係る分類装置は、請求項１から請求項４のいずれか１項に記載のクラスタリング方法によりクラスタリングされた結果を教師として機械学習モデルに、１のパケットを分類するよう学習させる学習部と、学習済みの前記機械学習モデルを用いて、１のパケットを分類する分類部と、を備える。
【００２６】
上記分類装置によると、１のパケットを分類することができる。
【００２７】
以下、本開示の一態様に係るクラスタリング方法、分類方法、クラスタリング装置、及び、分類装置の具体例について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、構成要素、構成要素の配置及び接続形態、並びに、ステップ（工程）及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００２８】
（実施の形態１）
以下、本開示の一態様に係るクラスタリングシステムの一例について説明する。
【００２９】
このクラスタリングシステムは、複数のパケットからなるパケット群をクラスタリングする。また、未知のパケットを分類する。
【００３０】
［１−１．構成］
図１は、本開示の一態様に係るクラスタリングシステムの一例である実施の形態１に係るクラスタリングシステム１の構成を示すブロック図である。
【００３１】
図１に示されるように、クラスタリングシステム１は、クラスタリング装置１００と、分類装置２００とを含んで構成される。
【００３２】
クラスタリング装置１００は、複数のパケットからなる学習用パケット群１０を取得し、それら複数のパケットそれぞれのプロファイルを決定する。そして、クラスタリング装置１００は、同じプロファイルとして決定したパケットをクラスタリングする。クラスタリング装置１００は、クラスタリング結果としてパケットクラスタ情報２０を出力する。
【００３３】
クラスタリング装置１００は、例えば、メモリと、メモリに記憶されたプログラムを実行するプロセッサとを含むコンピュータ装置によって実現される。この場合、クラスタリング装置１００によって実現される各種機能は、クラスタリング装置１００を構成するメモリに記憶されたプログラムを、クラスタリング装置１００を構成するプロセッサが実行することにより実現される。
【００３４】
分類装置２００は、クラスタリング装置１００より出力されたパケットクラスタ情報２０を教師として機械学習モデル２２０（後述）を学習させる。そして、分類装置２００は、学習済の機械学習モデル２２０を用いて、分類対象パケット３０を分類し、分類結果４０を出力する。
【００３５】
分類装置２００は、例えば、メモリと、メモリに記憶されたプログラムを実行するプロセッサとを含むコンピュータ装置によって実現される。この場合、分類装置２００によって実現される各種機能は、分類装置２００を構成するメモリに記憶されたプログラムを、分類装置２００を構成するプロセッサが実行することにより実現される。
【００３６】
図１に示されるように、クラスタリング装置１００は、更に、プロファイル決定部１１０と、抽出部１２０と、学習用パケットデータ群記憶部１３０と、算出部１４０と、クラスタリング部１５０とを含んで構成される。
【００３７】
プロファイル決定部１１０は、学習用パケット群１０を取得する。そして、取得した学習用パケット群１０に含まれる各パケットに対して、その属性情報（例えば、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ（宛先ＩＰ）、Ｓｏｕｒｃｅ  ＩＰ（送信元ＩＰ）、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ（宛先ポート）、Ｓｏｕｒｃｅ  Ｐｏｒｔ（送信元ポート）、プロトコル等）に基づいて、該当するプロファイルを決定する。プロファイル決定部１１０は、例えば、プロファイル情報を記憶し、記憶するプロファイル情報に基づいて、取得した学習用パケット群１０に含まれる各パケットに対して、該当するプロファイルを決定するとしてもよい。
【００３８】
図２、図３は、プロファイル決定部１１０が記憶するプロファイル情報の一例である。
【００３９】
プロファイル決定部１１０は、例えば、図２に示されるプロファイル情報を記憶し、各パケットに対して、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ（宛先ＩＰ）と、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ（宛先ポート）との組が合致する行のプロファイルＩＤで識別されるプロファイルを決定する。また、プロファイル決定部１１０は、例えば、図３に示されるプロファイル情報を記憶し、各パケットに対して、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ（宛先ＩＰ）と、Ｓｏｕｒｃｅ  ＩＰ（送信元ＩＰ）と、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ（宛先ポート）との組が合致する行のプロファイルＩＤで識別されるプロファイルを決定する。
【００４０】
プロファイル決定部１１０は、例えば、プロファイルの決定対象とするパケットが、記憶するプロファイル情報に該当しない場合には、Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ機能を備えるアプリケーションを実行することで、そのパケットのプロトコルを特定し、特定したプロトコルに基づいて、そのパケットに対してプロファイルを決定するとしてもよい。
【００４１】
再び図１に戻って、クラスタリングシステム１の説明を続ける。
【００４２】
抽出部１２０は、プロファイル決定部１１０によりプロファイルを決定された複数のパケットに対して、プロファイル毎に、各パケットのペイロードフィールドに格納されるデータをパケットデータとして抽出する。そして、抽出部１２０は、抽出した複数のパケットデータからなる学習用パケットデータ群を出力する。
【００４３】
図４は、ＴＣＰプロトコルのパケットのデータ構造を示す模式図である。図５は、ＵＤＰプロトコルのパケットのデータ構造を示す模式図である。図６は、Ｍｏｄｂｕｓ／ＴＣＰプロトコルのパケットのデータ構造を示す模式図である。
【００４４】
抽出部１２０は、例えば、対象とするパケットがＴＣＰプロトコルのパケットである場合には、図４に示されるＰａｙｌｏａｄフィールドに格納されるデータをパケットデータとして抽出する。また、抽出部１２０は、例えば、対象とするパケットがＵＤＰプロトコルのパケットである場合には、図５に示されるＰａｙｌｏａｄフィールドに格納されるデータをパケットデータとして抽出する。また、抽出部１２０は、例えば、対象とするプロトコルがＭｏｄｂｕｓ／ＴＣＰプロトコルのパケットである場合には、図６に示されるＭｏｄｂｕｓ  ＰＤＵフィールドに格納されるデータをパケットデータとして抽出する。
【００４５】
再び図１に戻って、クラスタリングシステム１の説明を続ける。
【００４６】
学習用パケットデータ群記憶部１３０は、抽出部１２０より出力された学習用パケットデータ群を記憶する。
【００４７】
学習用パケットデータ群記憶部１３０は、例えば、クラスタリング装置を構成するメモリの記憶領域の一部として実現される。
【００４８】
算出部１４０は、学習用パケットデータ群記憶部１３０に記憶される学習用パケットデータ群を構成する複数のパケットデータ（以下、「学習用パケットデータ」とも称する。）間の類似度を算出する。この際、算出部１４０は、同じプロファイルとして決定された複数のパケットデータからなるパケットデータ群毎に、パケットデータ間の類似度を算出する。
【００４９】
算出部１４０は、パケットデータを、１バイトずつ切り出したバイト列として取り扱い、パケットデータ間の類似度の算出を、バイト列間の類似度を算出することで行う。
【００５０】
図７は、算出部１４０が、パケットデータを１バイトずつ切り出す様子の一例を示す模式図である。
【００５１】
なお、ここでは、算出部１４０は、パケットデータを、１バイトずつ切り出すとして説明するが、切り出す単位としては、必ずしも１バイトの例に限定される必要はない。切り出す単位は、１ビット以上６４ビット以下の任意の長さのビット列であってもよい。また、算出部１４０は、パケットデータを、連続したビット単位で切り出す例に限定される必要はない。例えば、算出部１４０は、ｘビット切り出してｙビットスキップしてという処理を繰り返すことでビット列を切り出すとしてもよい。
【００５２】
再び図１に戻って、クラスタリングシステム１の説明を続ける。
【００５３】
算出部１４０は、パケットデータ間のリーベンシュタイン距離を利用して類似度を算出する。
【００５４】
リーベンシュタイン距離は、２つの文字列又はバイト列間に定めることができる距離である。リーベンシュタイン距離は、１文字又は１バイトの挿入、削除、置換によって、一方の文字列又はバイト列を他方の文字列又はバイト列に変形するのに必要な最小回数として定義される。
【００５５】
図８は、算出部１４０が、２つの文字列間（ここでは、一例として、“ELEPHANT”と“RELEVANT”との文字列間）のリーベンシュタイン距離を算出する様子を示す模式図である。
【００５６】
図８に示されるように、“ELEPHANT”を“RELEVANT”に変形するのに必要な、挿入、削除、置換の最小回数は３である。このため、算出部１４０は、“ELEPHANT”と“RELEVANT”とのリーベンシュタイン距離を「３」と算出する。
【００５７】
図９は、算出部１４０が、２つのバイト列間のリーベンシュタイン距離を算出する様子を示す模式図である。
【００５８】
図９に示されるように、一方のバイト列を他方のバイト列に変形するのに必要な、挿入、削除、置換の最小回数は３である。このため、算出部１４０は、図９に図示されるバイト列間のリーベンシュタイン距離を「３」と算出する。
【００５９】
算出部１４０は、例えば、下記（式１）によって示される類似度を算出する。
【００６０】
sim(x,y) = 1 - dist(x,y)/max(length(x),length(y))                  （式１）
【００６１】
（式１）において、sim(x,y)は、文字列又はバイト列ｘと文字列又はバイト列ｙとの間の類似度である。dist(x,y)は、文字列又はバイト列ｘと文字列又はバイト列ｙとの間のリーベンシュタイン距離である。length(x)は、文字列又はバイト列ｘの長さであり、length(y)は、文字列又はバイト列ｙの長さである。このとき、dist(x,y)/max(length(x),length(y))は、距離が［０，１］となるよう正規化されたリーベンシュタイン距離となる。
【００６２】
再び図１に戻って、クラスタリングシステム１の説明を続ける。
【００６３】
クラスタリング部１５０は、算出部１４０によって算出された類似度を用いて、パケットデータをクラスタリングする。この際、クラスタリング部１５０は、同じプロファイルとして決定された複数のパケットデータからなるパケットデータ群毎に、そのパケットデータ群に属する複数のパケットデータを、互いに比較的類似度が高いパケットデータからなる複数のクラスタにクラスタリングする。そして、クラスタリング部１５０は、パケットデータのクラスタリングの結果を示すパケットクラスタ情報２０を出力する。より具体的には、クラスタリング部１５０は、クラスタリングの対象となるパケットデータ間の類似度を行列化した類似度行列を算出し、算出した類似度行列を入力とするスペクトラルクラスタリング法によるクラスタリングを行うことで、パケットデータをクラスタリングする。そして、クラスタリング部１５０は、クラスタリングの対象となる各パケットデータに対して、そのパケットデータと、クラスタリング先のクラスタを特定するクラスタＩＤとを対応付けるパケットクラスタ情報２０を生成して出力する。
【００６４】
図１０Ａは、クラスタリング部１５０によってクラスタリングされる前の状態でパケットデータ間の類似度を行列化した類似度行列を示す模式図である。図１０Ｂは、クラスタリング部１５０によってクラスタリングされた結果、クラスタリングされたクラスタ毎に配列位置を並び替えた状態でパケットデータ間の類似度を行列化した類似度行列を示す模式図である。図１０Ａ、図１０Ｂにおいて、ｉ行ｊ列の点は、パケットデータｉとパケットデータｊとの類似度を示す。ここで、類似度を示す各点は、より類似度が高い程白く表示され、より類似度が低い程黒く表示されている。
【００６５】
図１０Ａ、図１０Ｂに示されるように、クラスタリング部１５０は、算出した類似度行列を入力とするスペクトラルクラスタリング法を用いることで、複数のパケットデータを、互いに比較的類似度が高いパケットデータからなる複数のクラスタにクラスタリングすることができる。
【００６６】
なお、クラスタリング部１５０は、パケットデータをクラスタリングする際に、同一のパケットデータを排除するとしても構わない。
【００６７】
再び図１に戻って、クラスタリングシステム１の説明を続ける。
【００６８】
図１に示されるように、分類装置２００は、更に、学習部２１０と、機械学習モデル２２０と、プロファイル決定部２３０と、抽出部２４０と、分類部２５０とを含んで構成される。
【００６９】
学習部２１０は、クラスタリング装置１００から出力されたパケットクラスタ情報２０を教師として、１のパケットを分類するよう機械学習モデル２２０に学習させる。より具体的には、学習部２１０は、１のパケットのパケットデータから、そのパケットを、クラスタリング装置１００によるクラスタリングにおけるクラスタリング先となる複数のクラスタのうちのいずれか１つのクラスタに分類するよう、機械学習モデル２２０に学習させる。学習部２１０は、プロファイル決定部１１０により決定されるプロファイル毎に、個別に、機械学習モデル２２０に学習させる。
【００７０】
ここでは、学習部２１０は、機械学習モデル２２０に学習させる際に、Ｋ近傍法を用いる。すなわち、学習部２１０は、機械学習モデル２２０に、Ｋ近傍法を用いて１のパケットを分類するよう学習させる。
【００７１】
図１に示されるように、学習部２１０は、更に、ラベル付け部２１１と、分割部２１２と、学習用ラベル付きパケットデータ群記憶部２１３と、検証用ラベル付きパケットデータ群記憶部２１４と、ハイパーパラメータ決定部２１５とを含んで構成される。
【００７２】
ラベル付け部２１１は、パケットクラスタ情報２０に基づいて、学習用パケットデータ群記憶部１３０に記憶される学習用パケットデータのそれぞれに対して、教師用ラベルのラベル付けを行う。より具体的には、ラベル付け部２１１は、学習用パケットデータ群記憶部１３０に記憶される学習用パケットデータのそれぞれに対して、パケットクラスタ情報２０により対応付けられているクラスタＩＤを、その学習用パケットデータの教師用ラベルとして、その学習用パケットデータに対してラベル付けを行う。
【００７３】
分割部２１２は、ラベル付け部２１１によってラベル付けされた学習用パケットデータを、クロスバリデーション用に、学習用ラベル付きパケットデータ群と、検証用ラベル付きパケットデータ群とに分割する。
【００７４】
学習用ラベル付きパケットデータ群記憶部２１３は、分割部２１２によって分割された学習用ラベル付きパケットデータ群を記憶する。
【００７５】
学習用ラベル付きパケットデータ群記憶部２１３は、例えば、分類装置２００を構成するメモリの記憶領域の一部として実現される。
【００７６】
検証用ラベル付きパケットデータ群記憶部２１４は、分割部２１２によって分割された検証用ラベル付きパケットデータ群を記憶する。
【００７７】
検証用ラベル付きパケットデータ群記憶部２１４は、例えば、分類装置２００を構成するメモリの記憶領域の一部として実現される。
【００７８】
ハイパーパラメータ決定部２１５は、学習用ラベル付きパケットデータ群記憶部２１３に記憶される学習用ラベル付きパケットデータ群と、検証用ラベル付きパケットデータ群記憶部２１４に記憶される検証用ラベル付きパケットデータ群とを用いてクロスバリデーションを行うことで、機械学習モデル２２０のハイパーパラメータを決定する。より具体的には、ハイパーパラメータ決定部２１５は、機械学習モデル２２０が用いるＫ近傍法におけるハイパーパラメータの値（例えば、Ｋの値）を決定する。
【００７９】
機械学習モデル２２０は、クラスタリング装置１００から出力されたパケットクラスタ情報２０を教師として、１のパケットを、Ｋ近傍法を用いて分類するよう学習された機械学習モデルである。より具体的には、機械学習モデル２２０は、１のパケットのパケットデータから、そのパケットを、クラスタリング装置１００によるクラスタリングにおけるクラスタリング先となる複数のクラスタのうちのいずれか１つのクラスタに分類するよう、学習部２１０により学習された機械学習モデルである。機械学習モデル２２０は、プロファイル決定部１１０により決定されるプロファイル毎に、個別に学習された学習モデルである。
【００８０】
プロファイル決定部２３０は、分類対象パケット３０を取得する。そして、取得した分類対象パケット３０に対して、その属性情報（例えば、Ｄｅｓｔｉｎａｔｉｏｎ  ＩＰ（宛先ＩＰ）、Ｓｏｕｒｃｅ  ＩＰ（送信元ＩＰ）、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ（宛先ポート）、Ｓｏｕｒｃｅ  Ｐｏｒｔ（送信元ポート）、プロトコル等）に基づいて、該当するプロファイルを決定する。プロファイル決定部２３０が行うプロファイルの決定法は、プロファイル決定部１１０が行うプロファイルの決定法と同様である。
【００８１】
抽出部２４０は、プロファイル決定部２３０によりプロファイルを決定されたパケットに対して、そのパケットのペイロードフィールドに格納されるデータをパケットデータとして抽出する。
【００８２】
分類部２５０は、学習済みの機械学習モデル２２０を用いて、１のパケットである分類対象パケット３０を分類する。この際、分類部２５０は、プロファイル決定部２３０により決定された、分類対象パケット３０のプロファイルに応じて機械学習モデル２２０を用いる。
【００８３】
分類部２５０は、まず、学習用パケットデータのうち、分類対象パケット３０に対して決定されたプロファイルと同じプロファイルに決定された学習用パケットデータの中から、最も類似度が高いＫ個の学習用パケットデータを算出する。次に、分類部２５０は、算出したＫ個の学習用パケットデータの中で最も多くのパケットデータが分類されているクラスタを特定する。そして、分類部２５０は、分類対象パケット３０を、その特定したクラスタに分類する。
【００８４】
図１１は、分類部２５０が、Ｋが１となるＫ近傍法を用いてパケットを分類する様子を示す模式図である。
【００８５】
図１１に示されるように、分類部２５０は、（１）分類対象パケット３０のパケットデータと、分類対象パケット３０に対して決定されたプロファイルと同じプロファイルに決定された学習用パケットデータとの類似度ベクトルを算出する。次に分類部２５０は、（２）最も類似度が高いパケットデータが分類されているクラスタを特定する。そして、分類部２５０は、（３）分類対象パケット３０を、その特定したクラスタに分類する。
【００８６】
再び図１に戻って、クラスタリングシステム１の説明を続ける。
【００８７】
分類部２５０は、分類対象パケット３０を分類すると、その分類の結果を示す分類結果４０を出力する。
【００８８】
［１−２．動作］
以下、上記構成のクラスタリングシステム１が行う動作について説明する。
【００８９】
クラスタリングシステム１は、第１クラスタリング処理と、第１学習処理と、第１分類処理とを行う。以下、これらの処理について、図面を用いて順に説明する。
【００９０】
第１クラスタリング処理は、複数のパケットをクラスタリングする処理である。第１クラスタリング処理は、クラスタリング装置１００が中心となって行う処理である。第１クラスタリング処理は、例えば、クラスタリング装置１００を利用するユーザが、クラスタリング装置１００に対して、第１クラスタリング処理を開始させる旨の操作を行うことで開始される。
【００９１】
図１２は、第１クラスタリング処理のフローチャートである。
【００９２】
第１クラスタリング処理が開始されると、プロファイル決定部１１０は、学習用パケット群１０を取得する（ステップＳ１０）。
【００９３】
プロファイル決定部１１０は、学習用パケット群１０を取得すると、学習用パケット群１０に含まれるパケットの中から、未選択のパケットを１つ選択する（ステップＳ１５）。ここで、未選択のパケットとは、ステップＳ１５の処理〜ステップＳ３５（Ｙｅｓ）の処理（後述）で形成されるループ処理において、過去のステップＳ１５の処理で選択されたことのないパケットのことをいう。
【００９４】
プロファイル決定部１１０は、１のパケットを選択すると、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができるか否かを調べる（ステップＳ２０）。
【００９５】
ステップＳ２０の処理において、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができる場合に（ステップＳ２０：Ｙｅｓ）、プロファイル決定部１１０は、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定する（ステップＳ３０）。
【００９６】
ステップＳ２０の処理において、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができない場合に（ステップＳ２０：Ｎｏ）、プロファイル決定部１１０は、Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ機能を備えるアプリケーションを実行することで、選択したパケットのプロトコルを特定する（ステップＳ２５）。そして、プロファイル決定部１１０は、特定したプロトコルに基づいて、選択したパケットのプロファイルを決定する（ステップＳ３０）。
【００９７】
プロファイル決定部１１０は、選択したパケットのプロファイルを決定すると、学習用パケット群１０に含まれるパケットの中に、未選択のパケットがあるか否かを調べる（ステップＳ３５）。
【００９８】
ステップＳ３５の処理において、未選択のパケットがある場合に（ステップＳ３５：Ｙｅｓ）、クラスタリングシステム１は、再びステップＳ１５の処理に進む。
【００９９】
ステップＳ３５の処理において、未選択のパケットがない場合に（ステップＳ３５：Ｎｏ）、抽出部１２０は、プロファイル決定部１１０によりプロファイルを決定された複数のパケットに対して、プロファイル毎に、複数のパケットのペイロードフィールドに格納されるデータをパケットデータとして抽出する（ステップＳ４０）。
【０１００】
パケットデータが抽出されると、算出部１４０は、同じプロファイルのパケットデータ間の類似度を算出する（ステップＳ４５）。この際、算出部１４０は、パケットデータ間のリーベンシュタイン距離を類似度として算出する。
【０１０１】
パケットデータ間の類似度が算出されると、クラスタリング部１５０は、パケットデータ間の類似度を行列化した類似度行列を算出する（ステップＳ５０）。そして、クラスタリング部１５０は、算出した類似度行列を入力とするスペクトラルクラスタリング法によるクラスタリングを行うことで、パケットデータをクラスタリングする（ステップＳ５５）。そして、クラスタリング部１５０は、各パケットデータに対して、そのパケットデータと、クラスタリング先のクラスタを特定するクラスタＩＤとを対応付けるパケットクラスタ情報２０を生成する（ステップＳ６０）。
【０１０２】
ステップＳ６０の処理が終了すると、クラスタリングシステム１は、その第１クラスタリング処理を終了する。
【０１０３】
第１学習処理は、クラスタリング装置１００によってクラスタリングされた結果を教師として、機械学習モデル２２０に学習させる処理である。第１学習処理は、分類装置２００が中心となって行う処理である。第１学習処理は、例えば、クラスタリング装置１００がパケットクラスタ情報２０を出力した後において、分類装置２００を利用するユーザが、分類装置２００に対して、第１学習処理を開始させる旨の操作を行うことで開始される。
【０１０４】
図１３は、第１学習処理のフローチャートである。
【０１０５】
第１学習処理が開始されると、ラベル付け部２１１は、パケットクラスタ情報２０に基づいて、学習用パケットデータ群記憶部１３０に記憶される各学習用パケットデータに、対応するクラスタＩＤを教師用ラベルとしてラベル付けを行う（ステップＳ１１０）。
【０１０６】
ラベル付けが行われると、分割部２１２は、ラベル付け部２１１によってラベル付けされた学習用パケットデータを、クロスバリデーション用に、学習用ラベル付きパケットデータ群と、検証用ラベル付きパケットデータ群とに分割する（ステップＳ１２０）。
【０１０７】
ラベル付けされた学習用パケットデータが分割されると、ハイパーパラメータ決定部２１５は、学習用ラベル付きパケットデータ群と、検証用ラベル付きパケットデータ群とを用いてクロスバリデーションを行うことで、機械学習モデル２２０が用いるＫ近傍法におけるハイパーパラメータの値を決定する（ステップＳ１３０）。
【０１０８】
ステップＳ１３０の処理が終了すると、クラスタリングシステム１は、その第１学習処理を終了する。
【０１０９】
第１分類処理は、学習済の機械学習モデル２２０を用いて、１のパケットを分類する処理である。第１分類処理は、分類装置２００が中心となって行う処理である。第１分類処理は、例えば、機械学習モデル２２０が学習済みの状態において、分類装置２００を利用するユーザが、分類装置２００に対して、第１分類処理を開始させる旨の操作を行うことで開始される。
【０１１０】
図１４は、第１分類処理のフローチャートである。
【０１１１】
第１分類処理が開始されると、プロファイル決定部２３０は、分類対象パケット３０を取得する（ステップＳ２１０）。
【０１１２】
プロファイル決定部２３０は、分類対象パケット３０を取得すると記憶するプロファイル情報を用いて、分類対象パケット３０のプロファイルを決定することができるか否かを調べる（ステップＳ２２０）。
【０１１３】
ステップＳ２０の処理において、記憶するプロファイル情報を用いて、分類対象パケット３０のプロファイルを決定することができる場合に（ステップＳ２２０：Ｙｅｓ）、プロファイル決定部１１０は、記憶するプロファイル情報を用いて、分類対象パケット３０のプロファイルを決定する（ステップＳ２３０）。
【０１１４】
ステップＳ２２０の処理において、記憶するプロファイル情報を用いて、分類対象パケット３０のプロファイルを決定することができない場合に（ステップＳ２２０：Ｎｏ）、プロファイル決定部１１０は、Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ機能を備えるアプリケーションを実行することで、分類対象パケット３０のプロトコルを特定する（ステップＳ２３０）。そして、プロファイル決定部２３０は、特定したプロトコルに基づいて、分類対象パケット３０のプロファイルを決定する（ステップＳ２４０）。
【０１１５】
プロファイル決定部２３０は、分類対象パケット３０のプロファイルを決定すると、決定したプロファイルに該当するプロファイルが、プロファイル決定部１１０により、学習用パケット群１０を構成する各パケットに対して決定されたプロファイルの中にあるか否かを調べる（ステップＳ２５０）。
【０１１６】
ステップＳ２５０の処理において、該当するプロファイルがある場合に（ステップＳ２５０：Ｙｅｓ）、分類対象パケット３０に対して、ペイロードフィールドに格納されているデータをパケットデータとして抽出する（ステップＳ２６０）。
【０１１７】
パケットデータが抽出されると、分類部２５０は、学習済みの機械学習モデル２２０を用いてＫ近傍法により、分類対象パケット３０を分類して、分類の結果を示す分類結果４０を出力する（ステップＳ２７０）。
【０１１８】
ステップＳ２７０の処理が終了した場合と、ステップＳ２５０の処理において、該当するプロファイルがない場合とに（ステップＳ２５０：Ｎｏ）、クラスタリングシステム１は、その第１分類処理を終了する。
【０１１９】
［１−３．考察］
上述したように、クラスタリングシステム１は、複数のパケットからなるパケット群をクラスタリングすることができる。また、クラスタリングシステム１は、未知のパケットを分類することができる。
【０１２０】
（実施の形態２）
以下、実施の形態１に係るクラスタリングシステム１から、その構成の一部が変更された実施の形態２に係るクラスタリングシステムについて説明する。
【０１２１】
実施の形態１に係るクラスタリングシステム１は、パケットデータ間のリーベンシュタイン距離を類似度として算出し、スペクトラルクラスタリング法を用いてパケットデータをクラスタリングする構成例であった。これに対して、実施の形態２に係るクラスタリングシステムは、パケットデータ間に定義されるストリングカーネルを利用して類似度を算出し、ストリングカーネルを利用したカーネルＫ平均法を用いてパケットデータをクラスタリングする構成例となっている。また、実施の形態１に係るクラスタリングシステム１は、機械学習モデル２２０に学習させる際に、Ｋ近傍法を用いる構成例であった。すなわち、機械学習モデル２２０が、１のパケットを、Ｋ近傍法を用いて分類するよう学習された学習モデルである構成例であった。これに対して、実施の形態２に係るクラスタリングシステムは、機械学習モデルに学習させる際に、サポートベクターマシンを用いる構成例となっている。すなわち、機械学習モデルが、１のパケットを、サポートベクターマシンを用いて分類するよう学習された学習モデルである構成例となっている。
【０１２２】
以下、実施の形態２に係るクラスタリングシステムの詳細について、実施の形態１に係るクラスタリングシステム１との相違点を中心に、図面を参照しながら説明する。
【０１２３】
［２−１．構成］
図１５は、実施の形態２に係るクラスタリングシステム１ａの構成を示すブロック図である。
【０１２４】
図１５に示されるように、クラスタリングシステム１ａは、実施の形態１に係るクラスタリングシステム１から、算出部１４０が算出部１４０ａに変更され、クラスタリング部１５０がクラスタリング部１５０ａに変更され、学習部２１０が学習部２１０ａに変更され、ハイパーパラメータ決定部２１５がハイパーパラメータ決定部２１５ａに変更され、機械学習モデル２２０が機械学習モデル２２０ａに変更され、分類部２５０が分類部２５０ａに変更されて構成される。
【０１２５】
また、これら変更に伴い、実施の形態１に係るクラスタリングシステム１から、クラスタリング装置１００がクラスタリング装置１００ａに変更され、分類装置２００が分類装置２００ａに変更されている。
【０１２６】
算出部１４０ａは、学習用パケットデータ群記憶部１３０に記憶される学習用パケットデータ群を構成する複数の学習用パケットデータ間の類似度を算出する。この際、算出部１４０は、実施の形態１に係る算出部１４０と同様に、同じプロファイルとして決定された複数のパケットデータからなるパケットデータ群毎に、パケットデータ間の類似度を算出する。
【０１２７】
実施の形態１に係る算出部１４０は、パケットデータ間のリーベンシュタイン距離を類似度として算出する。これに対して、算出部１４０は、パケットデータ間に定義されるストリングカーネルを算出し、算出したストリングカーネルを利用して類似度を算出するよう変更されている。
【０１２８】
クラスタリング部１５０ａは、算出部１４０ａによって算出された類似度を用いて、パケットデータをクラスタリングする。この際、クラスタリング部１５０ａは、実施の形態１に係るクラスタリング部１５０と同様に、同じプロファイルとして決定された複数のパケットデータからなるパケットデータ群毎に、そのパケットデータ群に属する複数のパケットデータを、互いに比較的類似度が高いパケットデータからなる複数のクラスタにクラスタリングする。そして、クラスタリング部１５０ａは、実施の形態１に係るクラスタリング部１５０と同様に、パケットデータのクラスタリングの結果を示すパケットクラスタ情報２０を出力する。
【０１２９】
実施の形態１に係るクラスタリング部１５０は、スペクトラルクラスタリング法によるクラスタリングを行うことで、パケットデータをクラスタリングする。これに対して、クラスタリング部１５０ａは、ストリングカーネルを利用したカーネルＫ平均法を用いたクラスタリングを行うことで、パケットデータをクラスタリングするよう変更されている。
【０１３０】
学習部２１０ａは、クラスタリング装置１００ａから出力されたパケットクラスタ情報２０を教師として、１のパケットを分類するよう機械学習モデル２２０ａに学習させる。より具体的には、学習部２１０ａは、実施の形態１に係る学習部２１０と同様に、１のパケットのパケットデータから、そのパケットを、クラスタリング装置１００ａによるクラスタリングにおけるクラスタリング先となる複数のクラスタのうちのいずれか１つのクラスタに分類するよう、機械学習モデル２２０ａに学習させる。学習部２１０ａは、実施の形態１に係る学習部２１０と同様に、プロファイル決定部１１０により決定されるプロファイル毎に、個別に、機械学習モデル２２０ａに学習させる。
【０１３１】
実施の形態１に係る学習部２１０は、機械学習モデル２２０に学習させる際に、Ｋ近傍法を用いる。すなわち、実施の形態１に係る学習部２１０は、機械学習モデル２２０に、Ｋ近傍法を用いて１のパケットを分類するよう学習させる。これに対して、学習部２１０ａは、機械学習モデル２２０ａに学習させる際に、サポートベクターマシンを用いる。すなわち、学習部２１０ａは、機械学習モデル２２０ａに、サポートベクターマシンを用いて１のパケットを分類させるよう学習させるよう変更されている。
【０１３２】
ハイパーパラメータ決定部２１５ａは、学習用ラベル付きパケットデータ群記憶部２１３に記憶される学習用ラベル付きパケットデータ群と、検証用ラベル付きパケットデータ群記憶部２１４に記憶される検証用ラベル付きパケットデータ群とを用いてクロスバリデーションを行うことで、機械学習モデル２２０のハイパーパラメータを決定する。
【０１３３】
実施の形態１に係るハイパーパラメータ決定部２１５は、機械学習モデル２２０が用いるＫ近傍法におけるハイパーパラメータの値を決定する。これに対して、ハイパーパラメータ決定部２１５ａは、機械学習モデル２２０ａが用いるサポートベクターマシンにおけるハイパーパラメータの値を決定するよう変更されている。
【０１３４】
機械学習モデル２２０ａは、１のパケットのパケットデータから、そのパケットを、クラスタリング装置１００ａによるクラスタリングにおけるクラスタリング先となる複数のクラスタのうちのいずれか１つのクラスタに分類するよう、学習部２１０ａにより学習された機械学習モデルである。機械学習モデル２２０ａは、実施の形態１に係る機械学習モデル２２０と同様に、プロファイル決定部１１０により決定されるプロファイル毎に、個別に学習された学習モデルである。
【０１３５】
実施の形態１に係る機械学習モデル２２０は、１のパケットを、Ｋ近傍法を用いて分類するよう学習された機械学習モデルである。これに対して、機械学習モデル２２０ａは、１のパケットを、サポートベクターマシンを用いて分類するよう学習された機械学習モデルに変更されている。
【０１３６】
分類部２５０ａは、学習済みの機械学習モデル２２０ａを用いて、１のパケットである分類対象パケット３０を分類する。この際、分類部２５０ａは、実施の形態１に係る分類部２５０と同様に、プロファイル決定部２３０により決定された、分類対象パケット３０のプロファイルに応じて機械学習モデル２２０ａを用いる。
【０１３７】
実施の形態１に係る分類部２５０は、Ｋ近似法を用いて１のパケットを分類する。これに対して、分類部２５０ａは、サポートベクターマシンを用いて１のパケットを分類するよう変更されている。
【０１３８】
［２−２．動作］
以下、上記構成のクラスタリングシステム１ａが行う動作について説明する。
【０１３９】
クラスタリングシステム１は、実施の形態１に係る第１クラスタリング処理からその一部の処理が変更された第２クラスタリング処理と、実施の形態１に係る第１学習処理からその一部の処理が変更された第２学習処理と、実施の形態１に係る第１分類処理からその一部の処理が変更された第２分類処理とを行う。以下、これらの処理について図面を用いて順に説明する。
【０１４０】
図１６は、第２クラスタリング処理のフローチャートである。
【０１４１】
第２クラスタリング処理において、ステップＳ３１０の処理〜ステップＳ３４０の処理と、ステップＳ３６０の処理とは、それぞれ、実施の形態１に係る第１クラスタリング処理における、ステップＳ１０の処理〜ステップＳ４０の処理と、ステップＳ６０の処理とに対して、算出部１４０を算出部１４０ａに読み替え、クラスタリング部１５０をクラスタリング部１５０ａに読み替えた処理と同様の処理である。このため、ステップＳ３１０の処理〜ステップＳ３４０の処理と、ステップＳ３６０の処理とは、説明済みであるとして、ここでの説明を省略する。
【０１４２】
ステップＳ３４０の処理においてパケットデータが抽出されると、算出部１４０ａは、同じプロファイルのパケットデータ間のストリングカーネルを算出する（ステップＳ３４５）。そして、算出部１４０は、算出したストリングカーネルを利用して類似度を算出する（ステップＳ３５０）。
【０１４３】
パケットデータ間の類似度が算出されると、クラスタリング部１５０ａは、ストリングカーネルを利用したカーネルＫ平均法を用いたクラスタリングを行うことで、パケットデータをクラスタリングする（ステップＳ３５５）。
【０１４４】
ステップＳ３５５の処理が終了すると、クラスタリングシステム１ａは、ステップＳ３６０の処理に進む。
【０１４５】
図１７は、第２学習処理のフローチャートである。
【０１４６】
第２学習処理において、ステップＳ４１０の処理とステップＳ４２０の処理とは、それぞれ、実施の形態１に係る第１学習処理における、ステップＳ１１０の処理とステップＳ１２０の処理と同様の処理である。このため、ステップＳ４１０の処理とステップＳ４２０の処理とは、説明済みであるとして、ここでの説明を省略する。
【０１４７】
ステップＳ４２０の処理においてラベル付けされた学習用パケットデータが分割されると、ハイパーパラメータ決定部２１５ａは、学習用ラベル付きパケットデータ群と、検証用ラベル付きパケットデータ群とを用いてクロスバリデーションを行うことで、機械学習モデル２２０ａが用いるサポートベクターマシンにおけるハイパーパラメータの値を決定する（ステップＳ４３０）。
【０１４８】
ステップＳ４３０の処理が終了すると、クラスタリングシステム１ａは、その第２学習処理を終了する。
【０１４９】
図１８は、第２分類処理のフローチャートである。
【０１５０】
第２分類処理において、ステップＳ５１０の処理〜ステップＳ５６０の処理は、それぞれ、実施の形態１に係る第１分類処理における、ステップＳ２１０の処理〜ステップＳ２６０の処理と同様の処理である。このため、ステップＳ５１０の処理〜ステップＳ５６０の処理は、説明済みであるとして、ここでの説明を省略する。
【０１５１】
ステップＳ５６０の処理においてパケットデータが抽出されると、分類部２５０ａは、学習済みの機械学習モデル２２０ａを用いてサポートベクターマシンにより分類対象パケット３０を分類して、分類の結果を示す分類結果４０を出力する（ステップＳ５７０）。
【０１５２】
ステップＳ５７０の処理が終了した場合と、ステップＳ５５０の処理において、該当するプロファイルがない場合とに（ステップＳ５５０：Ｎｏ）、クラスタリングシステム１ａは、その第２分類処理を終了する。
【０１５３】
［２−３．考察］
上述したように、クラスタリングシステム１ａは、実施の形態１に係るクラスタリングシステム１と同様に、パケットをクラスタリングすることができる。
【０１５４】
（実施の形態３）
以下、実施の形態１に係るクラスタリングシステム１から、その構成の一部が変更された実施の形態３に係るクラスタリングシステムについて説明する。
【０１５５】
実施の形態１に係るクラスタリングシステム１は、機械学習モデル２２０を学習させる際に、機械学習モデル２２０のハイパーパラメータを決定する構成例であった。これに対して、実施の形態３に係るクラスタリングシステムは、機械学習モデルに学習させる際に、機械学習モデルのハイパーパラメータを決定しない構成例となっている。
【０１５６】
以下、実施の形態３に係るクラスタリングシステムの詳細について、実施の形態１に係るクラスタリングシステム１との相違点を中心に、図面を参照しながら説明する。
【０１５７】
［３−１．構成］
図１９は、実施の形態３に係るクラスタリングシステム１ｂの構成を示すブロック図である。
【０１５８】
図１９に示されるように、クラスタリングシステム１ｂは、実施の形態１に係るクラスタリングシステム１から、分割部２１２と検証用ラベル付きパケットデータ群記憶部２１４とハイパーパラメータ決定部２１５が削除され、学習部２１０が学習部２１０ｂに変更され、学習用ラベル付きパケットデータ群記憶部２１３が学習用ラベル付きパケットデータ群記憶部２１３ｂに変更され、機械学習モデル２２０が機械学習モデル２２０ｂに変更されて構成される。
【０１５９】
また、これら変更に伴い、実施の形態１に係るクラスタリングシステム１から、分類装置２００が分類装置２００ｂに変更されている。
【０１６０】
学習部２１０ｂは、クラスタリング装置１００ａから出力されたパケットクラスタ情報２０を教師として、１のパケットを分類するよう機械学習モデル２２０ｂに学習させる。より具体的には、学習部２１０ｂは、実施の形態１に係る学習部２１０と同様に、１のパケットのパケットデータから、そのパケットを、クラスタリング装置１００によるクラスタリングにおけるクラスタリング先となる複数のクラスタのうちのいずれか１つのクラスタに分類するよう、機械学習モデル２２０ｂに学習させる。学習部２１０ｂは、実施の形態１に係る学習部２１０と同様に、プロファイル決定部１１０により決定されるプロファイル毎に、個別に、機械学習モデル２２０ｂに学習させる。学習部２１０ｂは、実施の形態１に係る学習部２１０と同様に、機械学習モデル２２０ｂに学習させる際に、Ｋ近傍法を用いる。すなわち、学習部２１０ｂは、機械学習モデル２２０ｂに、Ｋ近傍法を用いて１のパケットを分類するよう学習させる。
【０１６１】
実施の形態１に係る学習部２１０は、機械学習モデル２２０に学習させる際に、機械学習モデル２２０のハイパーパラメータを決定する。これに対して、学習部２１０ｂは、機械学習モデル２２０ｂに学習させる際に、機械学習モデル２２０ｂのハイパーパラメータを決定しないよう変更されている。
【０１６２】
学習用ラベル付きパケットデータ群記憶部２１３ｂは、ラベル付け部２１１によってラベル付けされた学習用ラベル付きパケットデータ群を記憶する。
【０１６３】
機械学習モデル２２０ｂは、クラスタリング装置１００から出力されたパケットクラスタ情報２０を教師として、１のパケットを、Ｋ近傍法を用いて分類するよう学習された機械学習モデルである。機械学習モデル２２０ｂは、実施の形態１に係る機械学習モデル２２０と同様に、１のパケットのパケットデータから、そのパケットを、クラスタリング装置１００によるクラスタリングにおけるクラスタリング先となる複数のクラスタのうちのいずれか１つのクラスタに分類するよう、学習部２１０ｂにより学習された機械学習モデルである。機械学習モデル２２０ｂは、実施の形態１に係る機械学習モデル２２０と同様に、プロファイル決定部１１０により決定されるプロファイル毎に、個別に学習された学習モデルである。
【０１６４】
実施の形態１に係る機械学習モデル２２０は、学習部２１０によりＫ近似法におけるハイパーパラメータの値が決定された機械学習モデルである。これに対して、機械学習モデル２２０ｂは、学習部２１０によりＫ近似法によるハイパーパラメータの値が決定されない機械学習モデルであるように変更されている。
【０１６５】
［３−２．動作］
以下、上記構成のクラスタリングシステム１ｂが行う動作について説明する。
【０１６６】
クラスタリングシステム１は、第１クラスタリング処理と、実施の形態１に係る第１学習処理からその一部の処理が変更された第３学習処理と、第１分類処理とを行う。以下、第３学習処理について図面を用いて順に説明する。
【０１６７】
図２０は、第３学習処理のフローチャートである。
【０１６８】
第３学習処理において、ステップＳ６１０の処理は、実施の形態１に係る第１学習処理における、ステップＳ１１０の処理と同様の処理である。このため、ステップＳ６１０の処理は、説明済みであるとして、ここでの説明を省略する。
【０１６９】
ステップＳ６１０の処理においてラベル付けが行われると、ラベル付け部２１１によってラベル付けされた学習用パケットデータを用いて、機械学習モデル２２０ｂに、Ｋ近傍法を用いて１のパケットを分類するよう学習させる（ステップＳ６２０）。
【０１７０】
ステップＳ６２０の処理が終了すると、クラスタリングシステム１ｂは、その第３学習処理を終了する。
【０１７１】
［３−３．考察］
上述したように、クラスタリングシステム１ｂは、実施の形態１に係るクラスタリングシステム１と同様に、パケットをクラスタリングすることができる。
【０１７２】
（補足）
以上のように、本出願において開示する技術の例示として、実施の形態１〜実施の形態３について説明した。しかしながら本開示による技術は、これらに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。
【０１７３】
以下に、本開示における変形例の一例について列記する。
【０１７４】
（１）実施の形態１において、クラスタリングシステム１は、リーベンシュタイン距離を利用して類似度を算出する構成例であった。また、実施の形態２において、クラスタリングシステム１ａは、ストリングカーネルを利用して類似度を算出する構成例であった。しかしながら、類似度の算出は、実施の形態１、実施の形態２で説明した通りの手法に限定される必要はない。本開示に係るクラスタリングシステムは、例えば、Normalized Levenshtein距離、Sequence Alignment Kernel、Spectrum Kernel、Gap-weighted String Kernel、Mismatch String Kernel等を利用して類似度を算出する構成であってもよい。
【０１７５】
（２）実施の形態１において、クラスタリングシステム１は、スペクトラルクラスタリング法を利用してパケットデータをクラスタリングする構成例であった。また、実施の形態２において、クラスタリングシステム１ａは、カーネルＫ平均法を利用してパケットデータをクラスタリングする構成例であった。しかしながらパケットデータのクラスタリングは、実施の形態１、実施の形態２で説明した通りの手法に限定される必要はない。本開示に係るクラスタリングシステムは、例えば、スペクトラルクラスタリング法、カーネルＫ平均法以外のグラフカット手法を利用してパケットデータをクラスタリングするする構成であってもよい。
【０１７６】
（３）実施の形態１及び実施の形態３において、クラスタリングシステム１及びクラスタリングシステム１ｂは、パケットクラスタ情報２０を教師として、１のパケットを、Ｋ近似法を用いて分類するよう機械学習モデル２２０又は機械学習モデル２２０ａに学習させる構成例であった。また、実施の形態２において、クラスタリングシステム１ａは、パケットクラスタ情報２０を教師として、１のパケットを、サポートベクターマシンを用いて分類するよう機械学習モデル２２０ｂに学習させる構成例であった。しかしながら、機械学習モデルの学習は、実施の形態１、実施の形態２、実施の形態３で説明した通りの手法に限定される必要はない。本開示に係るクラスタリングシステムは、他の教師あり学習法により、１のパケットを分類するよう機械学習モデルに学習させる構成であってもよい。例えば、本開示に係るクラスタリングシステムは、パケットクラスタ情報２０を教師として、１のパケットを、ニューラルネットワークを用いて分類するよう機械学習モデルに学習させる構成であってもよい。この場合、Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、ＬＳＴＭ（Long Short-Term Memory）等のニューラルネットワーク技術を利用することで実現できる。
【０１７７】
（４）実施の形態１において、クラスタリングシステム１における各構成要素は、ＩＣ（Integrated Circuit）、ＬＳＩ（Large Scale Integration）等の半導体装置により個別に１チップ化されてもよいし、一部又は全部を含むように１チップ化されてもよい。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
【産業上の利用可能性】
【０１７８】
本開示は、パケットを利用するシステムに広く利用可能である。
【符号の説明】
【０１７９】
１、１ａ、１ｂ  クラスタリングシステム
１０  学習用パケット群
２０  パケットクラスタ情報
３０  分類対象パケット
４０  分類結果
１００、１００ａ  クラスタリング装置
１１０、２３０  プロファイル決定部
１２０、２４０  抽出部
１３０  学習用パケットデータ群記憶部
１４０、１４０ａ  算出部
１５０、１５０ａ  クラスタリング部
２００、２００ａ、２００ｂ  分類装置
２１０、２１０ａ、２１０ｂ  学習部
２１１  ラベル付け部
２１２  分割部
２１３、２１３ｂ  学習用ラベル付きパケットデータ群記憶部
２１４  検証用ラベル付きパケットデータ群記憶部
２１５、２１５ａ  ハイパーパラメータ決定部
２２０、２２０ａ、２２０ｂ  機械学習モデル
２５０、２５０ａ  分類部
【図１】
2019213183.tif 000003
【図２】
2019213183.tif 000004
【図３】
2019213183.tif 000005
【図４】
2019213183.tif 000006
【図５】
2019213183.tif 000007
【図６】
2019213183.tif 000008
【図７】
2019213183.tif 000009
【図８】
2019213183.tif 000010
【図９】
2019213183.tif 000011
【図１０Ａ】
2019213183.tif 000012
【図１０Ｂ】
2019213183.tif 000013
【図１１】
2019213183.tif 000014
【図１２】
2019213183.tif 000015
【図１３】
2019213183.tif 000016
【図１４】
2019213183.tif 000017
【図１５】
2019213183.tif 000018
【図１６】
2019213183.tif 000019
【図１７】
2019213183.tif 000020
【図１８】
2019213183.tif 000021
【図１９】
2019213183.tif 000022
【図２０】
2019213183.tif 000023