[離散データに含まれるレコード]
図1は、離散データに含まれるレコードを説明する図である。以下の図において、”・・・”は、省略を示す。
図1(A)は、ID付きPOSのレコードを含む離散データLSD1を示す図である。ID付きPOSのレコードは、2種類の変数値を含む。1種類目の変数値は、顧客を一意に識別する顧客IDである。2種類目の変数値は、商品を一意に識別する商品IDである。図1(A)では、”{顧客ID、商品ID}”で1個のレコードを示す。そして、大括弧間のカンマで各レコードを区切る。図1(A)では、例えば、{顧客1、商品1}のレコードは、顧客IDとして”顧客1”、商品IDとして”商品1”を含む。
図1(B)は、WEBアクセスログのレコードを含む離散データLSD2を示す図である。WEBアクセスログのレコードは、3種類の変数値を含む。1種類目の変数値は、アクセス先のサーバのIPアドレスである。2種類目の変数値は、このサーバにアクセスした利用者を一意に識別するユーザIDである。3種類目の変数値は、アクセスされたURL(Uniform Resource Locator)である。
図1(B)では、{IPアドレス、ユーザID、URL}で1個のレコードを示す。そして、大括弧間のカンマで各レコードを区切る。図1(B)では、例えば、{IP1、 user1、 URL1}のレコードは、IPアドレスとして”IP1”、ユーザIDとして”user1”、URLとして”URL1”を含む。
図1(C)は、ネットワークトラフィックログ(以下、トラフィックログとも呼ぶ)のレコードを含む離散データLSD3を示す図である。トラフィックログは、装置間でTCP(Transmission Control Protocol)/IP(Internet Protocol)プロトコルにより通信されている場合において、この装置間で送受信されている通信パケットに含まれる送信先IPアドレス、送信先ポート番号を含む。
トラフィックログのレコードは、2種類の変数値を含む。1種類目の変数値は、送信先IPアドレスである。2種類目の変数値は、送信先ポート番号である。
図1(C)では、{送信先IPアドレス、送信先ポート番号}で1個のレコードを示す。そして、大括弧間のカンマで各レコードを区切る。図1(C)では、例えば、{IP1、 80}のレコードは、IPアドレスとして”IP1”、ポート番号として”80”を含む。
離散データに含まれるレコードの数は、例えば、数十万〜数千万件である。レコードに含まれる変数値の種類(以下、変数値の個数とも呼ぶ)は、例えば、2〜10種類(個)である。各変数の取り得る値の幅は、例えば、数千〜数万である。
[離散データの分類の一方法]
離散データの分類の一方法(以下、単に一方法とも呼ぶ)について説明する。一方法は、離散データに含まれる複数のレコードを分類する場合、集団内のレコードの変数値のばらつきが少なくなるように、離散データを分類する。なお、離散データに含まれる複数のレコードを分類することは、離散データを分類することと同義である。
この一方法は、例えば、離散データを分類する場合、集団内の変数値の中で希な変数値が少なくなるように、離散データを分類する。図2〜図6を参照して、一方法について説明する。
図2は、離散データの一例と、一方法により離散データを分類した場合の集団内のレコードなどを示す集団構成テーブルの一例である。
離散データLSD4は、図1(C)で説明したトラフィックログのレコードを含む離散データの一例である。以下の説明では、説明を簡略化するために、分類対象の離散データLSD4に含まれるレコードの個数を24個とする。
集団構成テーブルT110は、分類されたレコードの構成(以下、レコードの集団構成とも呼ぶ)を示すテーブルである。集団構成テーブルT110は、集団欄と、集団構成欄と、集団内情報量欄とを有する。集団欄は、1個以上のレコードを含む集団を一意に識別する集団識別子を記憶する。集団識別子は、例えば”#k”(小文字kは1以上の整数)で示される。
集団構成欄は、集団識別子で識別される集団に属するレコードを記憶する欄である。なお、集団に属するレコードは、集団内のレコード、集団に含まれるレコードと同義である。集団内情報量欄は、集団構成欄に記憶されているレコードの集団内情報量を記憶する。
集団内情報量は、集団内の各レコードの出現確率(発生確率)の逆数の対数である。なお、対数は、例えば、10を底とする常用対数である。レコードの出現確率は、このレコードが属する集団に属するレコードに含まれる変数値の各々のこの集団における出現確率の積である。変数値の各々の出現確率は、ある集団(以下、集団Xとも呼ぶ)に属する1個以上のレコードに含まれる同一変数値の合計を、集団Xに属するレコードの合計で除算した値である。
図2において、第1の集団#1に属するレコード{IP1、80}の集団内情報量を算出する。第1の集団#1に属するレコード{IP1、80}の同一変数値IP1の合計は、2個である(レコード{IP1、80}、{IP1、8080}参照)。また、第1の集団#1に属するレコード{IP1、80}の同一変数値80の合計は、5個である(レコード{IP1、80}、{IP2、80}、{IP3、80}、{IP4、80}、{IP5、80}参照)。そして、第1の集団#1に属するレコードの合計は10個である。
従って、同一変数値IP1の出現確率は、(2/10)である。そして、同一変数値80の出現確率は、(5/10)である。従って、第1の集団#1におけるレコード{IP1、80}の集団内情報量は、−log{(2/10)*(5/10)}(図2の一点鎖線枠内参照)である。なお、集団内情報量における対数(log)内の”/”は除算を示し、”*”は乗算を示す。なお、以下、レコードの出現確率は、値の同時確率とも呼ぶ。
図2において、あるレコード(以下、レコードXとも呼ぶ)の集団内情報量は、集団構成欄においてレコードXが記憶されている行(平行位置)と同じ行に記憶されている集団内情報量(以下、集団内情報量Xとも呼ぶ)である。例えば、レコードXが第1の集団#1におけるレコード{IP1、80}の場合(図2の点線枠内参照)、レコードXの集団内情報量Xは第1の集団#1における−log{(2/10)*(5/10)}(図2の一点鎖線枠内参照)である。
第k(小文字kは1以上の整数)の集団#kに属する各レコードの集団内情報量の合計を、この各レコードを記憶するセルの下側に示す。例えば、第1の集団#1に属する各レコードの集団内情報量の合計は、”10.0”である。なぜなら、第1の集団#1に属する各レコードの総数は、10個である。また、第1の集団#1に属する各レコードの集団内情報量は”−log{(2/10)*(5/10)}”、すなわち(”1”)である。従って、第1の集団#1に属する各レコードの集団内情報量の合計は、”10.0”である(図2の破線枠内参照)。
集団構成テーブルT110において、下から2番目の行と集団内情報量欄とが交わるセルは、各集団における各レコードの集団内情報量の総合計を記憶する。例えば、第1の集団#1〜第3の集団#3における各レコードの集団内情報量の合計は、それぞれ”10.0”、”4.7”、”7.2”である。従って、前記した総合計は、”21.9”である。
集団構成テーブルT110において、下から1番目の行と集団内情報量欄とが交わるセルは、集団構成の評価値を記憶する。一方法における集団構成の評価値は、集団内情報量の総合計と、集団数の定数倍との合計である。ここで、定数倍を1とする。集団構成テーブルT110の例では、3個の集団(第1の集団#1〜第3の集団#3)に分けられているので、集団数は3である。そのため、集団数の定数倍は3である。従って、集団構成の評価値は、24.9(21.9+3.0)である。
[離散データの分類の一方法のフローチャート図]
図3は、離散データの分類の一方法の処理の流れを説明するフローチャート図である。なお、フローチャート図において、”Ss”(小文字sは1以上の整数)は、ステップSsを示す。
ステップS111:一方法は、初期集団を生成する。具体的には、一方法は、分類処理の対象である離散データに含まれるレコードの中から、相互に変数値の共有が少ないk個(kは1以上の整数)のレコードを無規則(すなわち、ランダム)に選択して、選択したレコードを1個ずつ含むk個の集団を作成する。
この選択された各レコードが、集団の核(以下、集団の種とも呼ぶ)となるレコードである。以後、一方法は、この核となるレコードを含む集団に、この核となるレコードに類似するレコードを追加する。具体的には、一方法は、分類処理の対象である離散データに含まれるレコードからk個のレコードを除いたレコードについては、評価値が最も良くなるように、k個の集団に順次配置して、k個の初期集団を生成する。
ステップS112:一方法は、元の集団を記憶し、元の集団の評価値e_preを算出する。元の集団は、S112が1回目に実行される場合、初期集団(S111)である。元の集団は、S112が2回目以降に実行される場合、S115終了後の集団である。なお、一方法は、例えば、集団構成テーブルの形式で、集団を記憶する。
ステップS113:一方法は、集団内情報量の高いm個(mは1以上の整数)のデータを含むレコード集合Qを選択する。
ステップS114:一方法は、レコード集合Qの中で最も集団内情報量が高い1個のレコードrを取得する。
ステップS115:一方法は、評価値が最も良くなる集団に取得した1個のレコードrを再配置する。ここで、評価値が最も良いとは、評価値が最も低いことと同義である。
ステップS116:一方法は、レコード集合Qから1個のレコードrを除外する。
ステップS117:一方法は、レコード集合Qが空集合か判定する。レコード集合Qは空集合でない場合(S117のNO)、S114に移る。レコード集合Qは空集合の場合(S117のYES)、S118に移る。
ステップS118:一方法は、再配置後の評価値eを算出する。
ステップS119:一方法は、再配置後の評価値eは、元の評価値e_preを超えるか判定する。再配置後の評価値eは、元の評価値e_preを超えない場合(S119のNO)、S120に移る。再配置後の評価値eは、元の評価値e_preを超える場合(S119のYES)、S121に移る。
ステップS120:一方法は、S112〜S113のステップをR回繰り返したか判定する。一方法は、S112〜S113のステップをR回繰り返した場合(S120のYES)、処理を終了する。一方法は、この処理終了時の再配置後の集団を分類後の離散データの集団とする。一方法は、S112〜S113のステップをR回繰り返さない場合(S120のNO)、S112に移る。
ステップS121:一方法は、S115で再配置したレコードrを元の集団に戻し、再配置前の集団を分類後の離散データの集団とする。
[離散データの分類の一方法の具体例]
図2〜図6を参照して、離散データの分類の一方法の具体例を説明する。図4は、初期集団を示す集団構成テーブルを示す図である。図5、図6は、再配置後の集団構成テーブルを示す第1、第2の図である。なお、図4〜図6の集団構成テーブルは、図2の集団構成テーブルT110の構成と同様の構成である。ただし、図4〜図6の集団構成テーブルの集団内情報量は、説明を簡略にするため、式ではなく数値で示す。
一方法は、分類処理の対象である離散データに含まれるレコードの中から、相互に変数値の共有が少ないk個(例えば、kは3個)のレコードをランダムに選択して、選択したレコードを1個ずつ含むk個の集団を作成する。一方法は、図2の離散データLSD4に含まれるレコードの中から3個のレコード(例えば、{IP1、80}、{IP4、110}、{IP6、143})を選択して3個の集団を作成する。そして、一方法は、分類処理の対象である離散データに含まれるレコードから3個のレコードを除いたレコードについては、評価値が最も良くなるように、3個の集団に順次配置して初期集団を生成する。
一方法は、元の集団である集団構成テーブルT101を記憶し、元の集団の評価値e_preを算出する(S112)。元の集団の評価値は、図4に示すように”30.1”である。
一方法は、集団内情報量の高いm個(このステップではmは3)のデータを含むレコード集合Qを選択する(S113)。なお、一方法は、”m”をステップ毎に適宜変化させてもよい。一方法は、図4の例では、集団内情報量が1.8のレコード{IP6、110}、{IP7、110}と、集団内情報量が1.3のレコード{IP5、110}とを選択する(点線枠参照)。
一方法は、レコード集合Qの中で最も集団内情報量が高い1個のレコードr(例えば、{IP7、110}、図4の”最大”吹き出し参照)を取得する(S114)。一方法は、再配置の結果、評価値が最も良くなる(評価値が最も低くなる)第2の集団#2にレコードrを再配置する(S115)(図4の” #2に再配置したら評価値が最良”参照)。
一方法は、レコード集合Qから1個のレコードr({IP7、110})を除外する(S116)。
図5にレコードr({IP7、110})を第2の集団#2に再配置した集団構成テーブルT102を示す。なお、一方法は、図5に示すように、再配置後(S115参照)の集団内情報量を更新する。
レコード集合Qは空集合でないので(S117のNO)、S114に移る。一方法は、レコード集合Q({IP5、110}、{IP6、110})の中で最も集団内情報量が高い1個のレコードr(例えば、{IP6、110}、図5の”最大”吹き出し参照)を取得する(S114)。一方法は、再配置の結果、評価値が最も良くなる第2の集団#2にレコードrを再配置する(S115)(図5の” #2に再配置したら評価値が最良”参照)。
一方法は、レコード集合Qから1個のレコードr({IP6、110})を除外する(S116)。以後、一方法は、レコード集合Qについて、S117、S114〜S116の処理を行い、レコード集合Qに含まれるレコード{IP5、110}を第2の集団#2に再配置し、レコード集合Qからレコード{IP5、110}を除外する。
図6にレコード集合Qの全レコード({IP5、110}、{IP6、110}、{IP7、110})を第2の集団#2に再配置した集団構成テーブルT103を示す。一方法は、レコード集合Qが空集合になると(S117のYES)、再配置後の評価値eを算出する(S118)。再配置後の評価値は、図6の集団構成テーブルT103に示すように、”25.8”である。
再配置後の評価値eは、元の評価値e_preを超えないので(S119)、一方法は、S112〜S113のステップをR回(例えば、2回)繰り返したか判定する(S120)。前記の例では、一方法は、S112〜S113のステップを1回繰り返しているので(S120のNO)、S112に移る。
一方法は、元の集団である集団構成テーブルT103を記憶し、元の集団の評価値e_preを算出する(S112)。元の集団の評価値は、図6に示すように”25.8”である。
一方法は、集団内情報量の高いm個(このステップではmは2)のレコードを含むレコード集合Qを選択する(S113)。一方法は、図6の例では、集団内情報量が1.2のレコード{IP8、110}、{IP9、110}を選択する(図6の点線枠、”最大”吹き出し参照)。一方法は、以後、S114〜S117の処理を繰り返し行い、レコード{IP8、110}、{IP9、110}を第2の集団#2に再配置する。この再配置後の集団構成テーブルは、図2の集団構成テーブルT110である。
そして、一方法は、レコード集合Qが空集合になると(S117のYES)、再配置後の評価値eを算出する(S118)。再配置後の評価値は、図2に示すように、”24.9”である。なお、図2では、集団内情報量については、数式で示し、数値の記載を省略している。
再配置後の評価値eは、元の評価値e_preを超えないので(S119のNO)、一方法は、S112〜S113のステップをR回(例えば、2回)繰り返したか判定する(S120)。前記の例では、一方法は、S112〜S113のステップを2回繰り返しているので(S120のNO)、処理を終了する。
一方法により、離散データLSD4を分類した結果、図2に示すように、離散データLSD4に含まれる複数のレコードが第1の集団#1〜第3の集団#3に分類される。離散データの分析者は、分類されたレコードを参照して、人の意図や行動を推測する。
[離散データの分類の一方法の課題]
次に、一方法の課題について説明する。離散データに含まれるレコードの内容によっては、離散データの分析者の目的を達成できる最適な集団が異なる。この最適な集団は、分析者の目的に応じた集団である。すなわち、分析者の目的を達成するために、分類の方法を変更することが好ましい。例えば、図2で説明した離散データLSD4は、トラフィックログのレコードを含む。かかるレコードを含む離散データを分類する場合、単に、集団内情報量の総合計を考慮するだけでなく、他の要素(例えば、以下に説明する共有数)を考慮することが好ましい。
図7は、一方法の課題を説明する第1の図である。図7の集団構成テーブルT104は、図2の集団構成テーブルT110の右欄に変数値欄を追加したテーブルである。
変数値欄は、集団構成欄に記憶されているレコードの変数値を記憶する。例えば、第1の集団#1における集団構成欄に記憶されているレコードの変数値は、IP1、IP2、IP3、IP4、IP5、80、8080である。従って、第1の集団#1の集団識別子“#1”が記憶された行と、変数値欄とが交わるセルに、これらの変数値IP1、IP2、IP3、IP4、IP5、80、8080が記憶される。
集団構成テーブルT104において、下から2番目の行と変数値欄とが交わるセルは、共有数を記憶するセルである。共有数は、異なる集団が同一変数値を共有する場合、この同一変数値の総数を示す。例えば、異なる第1の集団#1、第2の集団#2は、同一変数値IP4、IP5を共有している。異なる集団が共有している同一変数値を点線枠で示す。図7の例の場合、点線枠内の変数値の総数が共有数であり、この共有数は12である。
図8は、一方法の課題を説明する第2の図である。図8の集団構成テーブルT105は、図7の集団構成テーブルT104の構成と同様の構成である。集団構成テーブルT105は、一方法とは異なる手法により、離散データLSD4を分類した集団構成テーブルを示す。
図8の集団構成テーブルT105では、図7の集団構成テーブルT104における第2の集団#2のレコード{IP6、110}、{IP7、110}、{IP8、110}、{IP9、110}が、第3の集団#3に配置されている。図8でも、図7と同様に、異なる集団が共有している同一変数値を点線枠で示す。図8の例の場合、点線枠内の変数値の総数が共有数であり、この共有数は6である。図8の例では、異なる第1の集団#1、第2の集団#2は、同一の変数値IP4、IP5を共有し、異なる第2の集団#2、第3の集団#3は、同一変数値110を共有する。
図8において、第1の集団#1に属するレコード{IP4、80}、{IP4、8080}、{IP5、80}、{IP5、8080}、第2の集団#2に属するレコード{IP4、110}、{IP5、110}に着目する。ここで、IPアドレスIP4が設定されている第1のサーバはWEBサーバであり、IPアドレスIP5が設定されている第2のサーバはWEBサーバであるとする。このように、第1、第2のサーバは、WEBサーバであり、メールサーバではない。
ここで、例えば、電子メールの配信を行うメールサーバは、特徴的なポート番号25、110、143を使用する。ポート番号25はSMTPのポート番号、ポート番号110はPOP3のポート番号、ポート番号143はIMAP4のポート番号である。なお、SMTPは“Simple Mail Transfer Protocol”の略語、POPは“Post Office Protocol”の略語、IMAPは“Internet Message Access Protocol”の略語である。
しかし、第2の集団#2に属するレコード{IP4、110}、{IP5、110}によれば、WEBサーバである第1、第2のサーバのポート番号110を送信先ポート番号とするTCP/IPパケットが送信されていることがわかる。ポート番号110を使用(解放)して、通信を実行するサーバは、メールサーバである。しかし、IPアドレスIP4、IP5が設定されている第1、第2のサーバは、WEBサーバであり、メールサーバではない。そのため、かかるTCP/IPパケットによる通信は、ポートスキャンや特定のポートに対する攻撃を目的とした通信の可能性が高い。なお、以下、かかるTCP/IPパケットによる通信を、特異な通信群とも呼ぶ。
すなわち、かかるTCP/IPパケットのレコード({IP4、110}、{IP5、110})は、不正行為を行おうとする意図など特異な意図に基づく行動により発生したレコードの集団である可能性が高い。
離散データの分析者は、かかる特異な意図に基づく行動を見つける目的で、分類された離散データを分析する場合、かかる特異な意図に基づく行動により発生したレコードが分類(集団化)されていれば、かかる行動を見つけることが容易になる。分析者は、かかる行動を見つけると、不正行為を阻止する対策をネットワークの管理者などに指示する。
なお、識別子付きPOSの場合、実際に購買が行われていないのにもかかわらず、店員が、不正行為を行おうとする意図に基づき、あたかも購買が行われたように見せかけてレジ操作を行うことを想定する。この想定の場合、通常の購買行動により生成されたPOSのレコードの内容から逸脱した内容のレコードがPOSシステムにより生成される。かかる逸脱した内容のレコードも、特異な意図に基づく行動により発生したレコードである。
さて、一方法では、集団内情報量の総和が小さい集団構成として、ポート番号別に集団が生成される場合がある。一方法により生成された集団を示す図7の集団構成テーブルT104によれば、第1の集団#1は、ポート番号80、8080を含むレコードを含む集団である。なお、ポート番号80、8080は、WEBサーバのHTTP (HyperText Transfer Protocol)用のポート番号である。
第2の集団#2は、ポート番号110を含むレコードを含む集団である。第3の集団#3は、ポート番号25、143を含むレコードを含む集団である。
しかし、例えば、特異な通信群を発見する目的で離散データを分類する場合、以下のようにレコード集団を生成することが望ましい。すなわち、特徴的(典型的)なポート番号の組み合わせを使用するサーバに関するレコード集団を纏め、特徴的なポート番号の組み合わせから逸脱した通信群を示すレコード集団を別のレコード集団とする。なお、特異な通信群を発見する目的は、前記した不正行為を行おうとうする意図など特異な意図に基づく行動により発生したレコードを発見する目的に含まれる。
図8の例では、一点鎖線の枠で囲った、第3の集団#3に属する複数のレコード(“典型的な通信”の吹き出し参照)が特徴的なポート番号の組み合わせを使用するサーバに関するレコード集団である。また、図8の例では、二点鎖線の枠で囲った、第2の集団#2に属する複数のレコード(“特異な通信”の吹き出し参照)が逸脱した通信群を示すレコード集団である。このように、レコード{IP5、110}は、図8に示すように第2の集団#2に属していたほうが、特異な通信群を発見するという分析者の目的を達成できる最適な集団になる。他にも、図7に示す第2の集団#2に属するレコード{IP6、110}、{IP7、110}、{IP8、110}、{IP9、110}は、図8に示すように第3の集団#3に属していたほうが、特異な通信群を発見するという分析者の目的を達成できる最適な集団になる。
以上説明したように、分析者の目的が、例えば、特異な通信群を発見する目的の場合、一方法とは異なる手法で離散データを分類した方が、分析者の目的を容易に達成できる最適な集団に離散データを分類できる。
ここで、図7と、図8とを比較すると、図8における集団内情報量の総合計(23.6)は、図7における集団内情報量の総合計(21.9)に比べて多くなる。なお、図7、図8では、集団数(3)は同じなので、図8における評価値(26.6)は、図7における評価値(24.9)に比べて多い。しかし、図8における共有数(6)は、図7の共有数(12)に比べて少ない。
他の方法で分類した場合の集団内情報量の合計は、一方法で分類した場合の集団内情報量の合計に比べて多い。しかし、他の方法で分類した場合の共有数は、一方法で分類した場合の共有数に比べて少なくなる(特徴点と記す)。
この特徴点によれば、分析者の目的が、不正行為を行おうとする意図など特異な意図に基づく行動を見つける場合、集団内情報量だけでなく、共有数を考慮すれば、分析者の目的を容易に達成できる最適な集団に離散データを分類できることがわかる。この分類では、共有数がなるべく少なくなるように分類を行えば、最適な集団に離散データを分類できる。
また、情報理論における最小記述長(MDL:minimum description length)原理では、モデルの複雑さと、モデルで表したときの実際のデータに対する誤差との和が小さい方がより良いデータの説明であることが知られている。離散データの分類においては、このモデルは、例えば、レコードの集団に該当し、モデルの複雑さは、例えば、集団内において互いに相違する変数値の数に該当する。また、誤差は、前記したレコードの出現確率や、集団内情報量に該当する。
最小記述長原理によれば、集団内において互いに相違する変数値が少なくなれば(モデルの複雑さが少なくなれば)、最適な集団を作成することができると考えられる。この集団に属する変数値を少なくすることは、異なる集団に属する同一変数値の数(共有数)がなるべく少なくなるように分類することによっても達成できる。
[本実施の形態]
そこで、本実施の形態のデータ分類装置は、集団間の変数値の共有の程度を示す共有値が少なくなるように複数のレコードを複数の集団(グループ)に分類(分割)する。本実施の形態のデータ分類装置は、この分類において、さらに、集団に属するレコードに含まれるレコードのこの集団における出現確率が多くなるように複数のレコードを複数の集団に分類する。この変数値の共有の程度を示す共有値が少なくなることは、異なる集団に属する同一変数値の数が少なくなることと同義である。
[データ分類装置のハードウエア図]
図9は、本実施の形態のデータ分類装置1のハードウエア図である。データ分類装置1は、バス108に接続された、CPU101と、RAM102と、ROM103と、通信装置104と、ストレージ装置105と、外部記憶媒体読み取り装置106とを有する。データ分類装置1は、例えば、情報処理装置である。なお、CPUは”Central Processing Unit”の略語、RAMは”Random Access Memory”の略語、ROMは”Read Only Memory”の略語である。
CPU101は、データ分類装置1の全体を制御する中央演算処理装置である。RAM102は、CPU11が実行する処理や、分類プログラム110(以下、単にプログラム110とも呼ぶ)が処理を実行した際に生成(算出)されたデータなどを一時的に記憶する。RAM102は、例えばDRAM(Dynamic Random Access Memory)等の半導体メモリである。
CPU101は、データ分類装置1の起動時に、ストレージ装置105から分類プログラム110の実行ファイルを読み出し、RAM102に展開し、分類プログラム110を実行する。なお、この実行ファイルを外部記憶媒体109に記憶してもよい。
ROM103は、各種設定情報を記憶する。通信装置104は、例えば、NIC(Network Interface Card)を有し、ネットワークに接続し、他の装置と通信する処理を実行する。ストレージ装置105は、例えばハードディスクドライブ(HDD:Hard Disk Drive)や、ソリッドステートドライブ(SSD:Solid State Drive)等の大容量記憶装置である。
外部記憶媒体読み取り装置106は、外部記憶媒体109に記憶されたデータを読み取る装置である。外部記憶媒体109は、例えば、CDーROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)等の可搬型記憶媒体や、USBメモリなどの可搬型の不揮発性メモリである。外部記憶媒体109は、例えば、分類処理の対象である離散データを記憶する。
[データ分類装置のソフトウエアブロック図]
図10は、図9のデータ分類装置1のソフトウエアブロック図である。分類プログラム110は、入力部111(以下、取得部111とも呼ぶ)と、分類部112と、出力部113とを有する。
入力部111は、離散データを他の装置や外部記憶媒体109から取得し、分類部112に入力する。入力部111は、複数の種類の変数値をそれぞれが含む複数のレコードを含むデータ(例えば、離散データ)を取得する取得部の一例である。なお、他の装置は、通信装置104が接続するネットワークと通信可能なストレージサーバなどである。
次に、分類部112の詳細について説明する。分類部112は、入力部111により取得された離散データに含まれる複数のレコードを複数の集団(グループ)に分類する。分類部112は、この分類において、例えば、集団間の変数値の共有の程度を示す共有値に基づき、複数のレコードを複数の集団に分類する。
具体的には、分類部112は、例えば、集団に属するレコードに含まれるレコードのこの集団における出現確率が多くなり、かつ、集団間の変数値の共有の程度を示す共有値が少なくなるように、前記した離散データに含まれる複数のレコードを複数の集団に分類する。
また、分類部112は、レコードの出現確率を、集団に属するレコードに含まれる変数値のこの集団における出現確率に基づき算出する。具体的に、分類部112は、レコードの出現確率の算出において、このレコードが属する集団に属するレコードに含まれる変数値の各々のこの集団における出現確率の積を算出し、積の算出値をこのレコードの出現確率とする。
さらに、分類部112は、異なる集団に属する同一変数値の数と集団の各々に属する相互に異なる変数値の総数とに基づき共有値を算出する。この共有値は、異なる集団に属する同一変数値の数(共有数)に対応する。
分類部112が実行する前記した分類の方法により、図7、図8で説明したように、集団内情報量だけでなく、共有数をも考慮した離散データの分類が可能になり、その結果、分析者の目的を容易に達成できる最適な集団に離散データを分類できる。すなわち、分類部112が実行する前記した分類の方法により、離散データを分析者の目的に応じたグループに分類できる。さらに、前記した分類の方法によれば、異なる集団に属する同一変数値の数(共有数)がなるべく少なくなるように分類しているので、前記した最小記述長原理によっても、最適な集団を作成することができる。
具体的に、分類部112は、複数のレコードの分類において、レコードの各々の出現確率の逆数の合計を算出する。なお、出現確率の逆数は、図2、図7、図8などで説明した集団内情報量に対応する。
さらに、分類部112は、共有値を、集団の各々に属する変数値のそれぞれについて算出する。そして、分類部112は、レコードの各々の出現確率の逆数の合計と変数値のそれぞれの共有値の合計との総合計が少なくなるように、複数のレコードを前記複数の集団に分類する。
レコードの各々の出現確率の逆数の合計が少なくなることは、レコードの各々の出現確率の合計が多くなることと同義である。従って、レコードの各々の出現確率の逆数の合計と変数値のそれぞれの共有値の合計との総合計が少なくなるように、複数のレコードを前記複数の集団に分類すれば、集団内情報量だけでなく、共有数をも考慮した離散データの分類が可能になる。その結果、前記した最適な集団に離散データを分類できる。
なお、出現確率の逆数の対数、共有値の対数を算出するのは、情報理論において、ある情報量(エントロピーとも呼ぶ)を算出する場合、確率の逆数の対数を利用することが一般に行われている。
次に、分類部112の具体例な構成について説明を行う。分類部112は、図3のS111で説明した初期集団を生成する集団生成部112a(以下、単に生成部112aとも呼ぶ)を有する。また、分類部112は、各集団に属するレコードに含まれるレコードのこの集団における出現確率が多くなり、かつ、集団間の変数値の共有の程度を示す共有値が少なくなるように、初期集団に属するレコードの再配置を行う再配置部112dを有する。すなわち、分類部112は、集団生成部112aが生成した初期集団に属するレコードの再配置を行うことにより、離散データに含まれる複数のレコードを分類する。
さらに、分類部112は、再配置部112dがレコードの再配置を行う際に、各レコードが再配置を行うべきレコードであるか否かを判定するための算出部112bと判定部112cとを有する。具体的に、算出部112bは、あるレコードの再配置を行ったと仮定した場合におけるレコードの分類状況(以下、レコードの配置状況とも呼ぶ)に基づく評価値を複数算出する。そして、判定部112cは、算出した112bが算出した評価値に基づき、そのレコードの再配置を行うべきか否かの判定を行う。すなわち、判定部112cは、各レコードの分類が効率的に行われるように、レコードの再配置を行う前に、そのレコードの再配置が有効であるか否かを判定する。なお、以下、判定部112cが再配置を行うべきと判定したレコードを、有効性を有するレコードとも呼ぶ。以下、各部の詳細な機能について説明を行う。
集団生成部112aは、図3のS111で説明したように、初期集団を生成する。具体的には、集団生成部112aは、入力部111により取得された離散データに含まれる複数のレコードの中から、共通して含まれる変数値が少なくなるように、k(kは2以上の整数)個のレコードをランダムに選択してk個の集団を生成する。集団生成部112aは、この集団に含まれるレコードがこの集団に出現する出現確率が高くなるように、複数のレコードにおいてk個のレコード以外のレコードを、k個の集団に配置する。なお、kをNaと示しても良い。この初期集団の生成により、最初に、集団に属するレコードに含まれるレコードのこの集団における出現確率が多くなるように離散データを分類する。
なお、集団生成部112aは、例えば、レコードの出現確率の算出において、このレコードが属する集団に属するレコードに含まれる変数値の各々のこの集団における出現確率の積を算出し、積の算出値をこのレコードの出現確率とする。
算出部112bは、複数の集団に含まれるある集団(以下、第1集団または第1グループとも呼ぶ)に配置されたあるレコード(以下、第1レコードとも呼ぶ)を、複数の集団に含まれないある集団(以下、第2集団または第2グループとも呼ぶ)に再配置した場合における各レコードの配置状況に基づく評価値(以下、第1評価値とも呼ぶ)を算出する。
具体的に、算出部112bは、第1レコードを第2集団に再配置した場合における、各レコードの出現確率の逆数を集団毎に算出する。また、算出部112bは、この場合における、各集団のうちの各変数値が含まれる集団の数と、いずれかの集団に含まれる変数値の数(変数値の種類の数)とに基づく共有値を変数値毎に算出する。そして、算出部112bは、算出した各レコードの出現確率の逆数の総和と、算出した共有値の総和とを加算することにより、第1評価値を算出する。
また、算出部112bは、第1集団に配置された各レコードを、第1集団または第2集団のいずれかに再配置した場合における各レコードの配置状況に基づく評価値(以下、第2評価値とも呼ぶ)を算出する。
具体的に、算出部112bは、第1集団に配置されたレコードを第1集団または第2集団のいずれかに再配置した場合における、各レコードの出現確率の逆数を集団毎に算出する。また、算出部112bは、この場合における、各集団のうちの各変数値が含まれる集団の数と、いずれかの集団に含まれる変数値の数(変数値の種類の数)とに基づく共有値を変数値毎に算出する。そして、算出部112bは、算出した各レコードの出現確率の逆数の総和と、算出した共有値の総和とを加算することにより、第2評価値を算出する。
なお、算出部112bは、例えば、算出した各レコードの出現確率の逆数の対数の合計(以下、第1の合計とも呼ぶ)と、算出した共有値の対数の合計(以下、第2の合計とも呼ぶ)とを加算することにより、第1または第2評価値の算出を行う。
さらに、算出部112bは、例えば、現在の各レコードの配置状況に基づく評価値(以下、第3評価値とも呼ぶ)を算出する。具体的に、算出部112bは、現在の配置状況に基づく各レコードに出現確率の逆数を集団毎に算出する。また、算出部112bは、この場合における、各集団のうちの各変数値が含まれる集団の数と、いずれかの集団に含まれる変数値の数(変数値の種類の数)とに基づく共有値を変数値毎に算出する。そして、算出部112bは、算出した各レコードの出現確率の逆数の総和と、算出した共有値の総和とを加算することにより、第3評価値(以下、単に評価値とも呼ぶ)を算出する。
判定部112cは、算出部112bが算出した第1評価値及び第2評価値に基づき、第1レコードを他の集団に再配置するか否かについての判定を行う。具体的に、判定部112cは、第2評価値から第1評価値を減算することにより減算値(以下、第1減算値とも呼ぶ)を算出し、第1評価値から第1減算値を減算して算出した第2減算値が、第3評価値よりも小さい場合、第1レコードを再配置する旨の判定を行う。
なお、判定部112cは、第1評価値から、第1減算値の値に重み付け係数を乗算した値を減算することにより、第2減算値を算出するものであってもよい。この重み付け係数は、例えば、初期集団において第1レコードが属する集団に属するレコードの数を含む。
再配置部112dは、判定部112cによる判定結果に基づき、第1レコードを他の集団(第1レコードが属する第1集団以外の集団)に再配置する。具体的に、再配置部112dは、第1レコードを再配置した場合における配置状況に基づく評価値(以下、第4評価値とも呼ぶ)の第3評価値に対する減少量が最大になる集団に、第1レコードを再配置する。
出力部113は、再配置部112dの実行後に生成された集団を、出力端末(図示しない)に出力する。
[本実施の形態における離散データの分類のフローチャート図]
図11は、本実施の形態における離散データの分類処理の流れを説明するフローチャート図である。図11のS1の前に、入力部111は離散データを取得し、集団生成部112aに入力する。
ステップS1: 集団生成部112aは、分類処理の対象である離散データに含まれる複数のレコードを分類して初期集団を生成する。S1は、図3のS111と同様であるので、詳細な説明を省略する。
ステップS2: 集団生成部112aまたは再配置部112dは、元の集団をRAM102に記憶し、元の集団の第3評価値e_pre(以下、元の評価値e_preまたは評価値e_preとも呼ぶ)を算出しRAM102に記憶する。評価値e_preは、元の集団における集団内情報量の合計と、集団間情報量の合計との総合計である。集団間情報量は、図14で詳細に説明する。元の集団は、S1が1回目に実行される場合、初期集団(S1)である。元の集団は、S2が2回目以降に実行される場合、S7終了後の集団である。
S2が1回目に実行される場合、集団生成部112aが、S2を実行する。S2が2回目以降に実行される場合、再配置部112dが、S2を実行するが、この場合、元の評価値e_preを算出せず、S10で算出した評価値を元の評価値として記憶してもよい。なお、集団生成部112aまたは再配置部112dは、例えば、集団構成テーブルの形式で、集団を記憶する。
ステップS3:再配置部112dは、評価値の改善量が大きいm(mは1以上の整数)個のレコードを含むレコード集合Qを選択する。この改善量は、集団内情報量の減少量から、変数値の異なり数(増減数)の総合計の増加分(重み付けを含む)を減算した値である。評価値の改善量を、(式1)で示す。
評価値の改善量=(集団内情報量の減少)−α×(変数値の異なり数の増加)
・・・(式1)
なお、αはいわゆる重み付け係数であり、分析者により適宜調整可能である。S3の詳細な説明は、図12のフローチャート図で説明する。
ステップS4:再配置部112dは、レコード集合Qの中で、評価値の改善量が最も大きいレコード群rgを取得する。なお、レコード群rgは、1個のレコードを含んでいてもよい。
ステップS5:算出部112bは、レコード群rgに基づいて算出した第1評価値e1と第2評価値e2と算出する。
ステップS6:判定部112cは、算出部112bがレコード群rgに基づいて算出した第1評価値e1と第2評価値e2とに基づき、レコード群rgの有効性を判定する。レコード群rgが有効性を有すると判定された場合(S6のYES)、S7に移る。レコード群rgが有効性を有しないと判定された場合(S6のNO)、S7の処理を行わずにS8に移る。
ステップS7:再配置部112dは、評価値が最も良くなる集団にレコード群rgを再配置する。
ステップS8:再配置部112dは、レコード集合Qからレコード群rgを除外する。
ステップS9:再配置部112dは、レコード集合Qが空集合か判定する。レコード集合Qが空集合でない場合(S9のNO)、S4に移る。レコード集合Qが空集合の場合(S9のYES)、S10に移る。なお、S9〜S11は、図3のS117〜S119と同様であるので、詳細な説明を省略する。
ステップS10:再配置部112dは、再配置後の評価値eを算出する。
ステップS11:再配置部112dは、再配置後の評価値eが元の評価値e_preを超えるか判定する。再配置後の評価値eが元の評価値e_preを超えない場合(S11のNO)、S12に移る。再配置後の評価値eが元の評価値e_preを超える場合(S11のYES)、S13に移る。
ステップS12:再配置部112dは、S2〜S11のステップをR回繰り返したか判定する。再配置部112dは、S2〜S11のステップをR回繰り返した場合(S12のYES)、処理を終了する。再配置部112dは、この処理終了時の再配置後の集団を、分類後の離散データの集団とする。そして、再配置部112dは、再配置後の集団を出力部113に入力する。出力部113は、再配置部112dから入力された再配置後の集団を、例えば、出力装置に出力する。再配置部112dは、S2〜S11のステップをR回繰り返さない場合(S12のNO)、S2に移る。
ステップS13:再配置部112dは、S7で再配置したレコード群rgを元の集団に戻し、再配置前の集団を分類後の離散データの集団とする。すなわち、この場合、再配置部112dは、元の集団に属するレコードの再配置を行わない。そして、再配置部112dは、再配置前の集団を出力部113に入力する。出力部113は、再配置部112dから入力された再配置前の集団を、例えば、出力装置に出力する。
図12は、図11のステップS3の処理の流れを説明するフローチャート図である。
ステップS31:再配置部112dは、最新の集団構成テーブルに含まれるレコードの中から、集団内情報量が高い順に、相互に変数値を共有しないm個のレコードを含むレコード群Vを選択する。
ステップS32:再配置部112dは、集団Uを空集合にリセットする。
ステップS33:再配置部112dは、レコード群Vから順に1個のレコードr1を取得し、集団Uに追加する。
ステップS34:再配置部112dは、集団U内の何れかの変数値を共有するレコードの中で、集団Uに追加したときの評価値の改善量が最も大きいレコードを、最新の集団構成テーブルに含まれるレコードの中から選択し、集団Uに追加する。
ステップS35:再配置部112dは、g(gは1以上の整数)個のレコードを追加したか判定する。g個のレコードを追加していない場合(S35のNO)、S34に移る。g個のレコードを追加した場合(S35のYES)、S36に移る。
ステップS36:再配置部112dは、評価値の改善量が最も大きくなるときの集団Uを、レコード集合Qに加える。
ステップS37:再配置部112dは、レコード群Vから全てのレコードを取得したか判定する。レコード群Vから全てのレコードを取得していない場合(S37のNO)、S32に移る。レコード群Vから全てのレコードを取得した場合(S37のYES)、S3を終了し図11のS4に移る。
[具体例]
次に、本実施の形態における離散データの分類の具体例について、図13〜図26を参照して説明する。図13〜図26は、本実施の形態における具体例を説明する第1の図〜第14の図である。
図13を参照して、具体例の概略を説明する。図13の具体例の概略では、初期集団を示す集団構成テーブルT1を起点に、選択されたレコードが各集団に順次再配置される状態を模式的に示している。なお、この再配置には、ある集団に属するレコードを同一の集団に配置した場合(すなわち、レコードを移動させない場合)を含まない。
この再配置により、集団構成テーブルT1は、集団構成テーブルT2、T3と変化する。集団構成テーブルT1、T2、T3においては、2行目以降のセルに、各集団に属するレコードを記憶している。集団構成テーブルT1、T2、T3において、”集団構成”が記憶された1行目のセルの次の2行目のセルに、第1の集団#1に属するレコードが記憶される。そして、3行目のセルに、第2の集団#2に属するレコードが記憶され、4行目のセルに、第3の集団#3に属するレコードが記憶される。
集団生成部112aは、図2の離散データLSD4に対して、図11の初期集団の生成処理(S1)を実行し、集団構成テーブルT1に示すように複数のレコードを分類する。以後、再配置部112dは、図11のS2以下の処理を実行し、レコードを再配置する。
図13において点線枠で囲ったレコードが、図11のS4〜S7で説明したレコード群rgである。また、符号R1で示す破線枠で囲った集団構成テーブルT2、T3は、レコード集合Q1(S3参照)に属するレコード集団U1a、U1bの再配置(S7参照)が再配置部112dにより実行されたことにより生成される集団構成テーブルを示す。なお、集団構成テーブルT1、T2、T3の詳細は後述する。
[初期集団]
図14を参照して、初期集団を説明する。図14の集団構成テーブルT11は、図7、図8に示した集団構成テーブル(T104、T105)の変数値欄を集団間情報量欄に替えたテーブルである。集団間情報量欄は、集団間情報量を”変数値:変数値の集団間情報量”の形式で記憶する。この変数値は、集団間情報量が記憶されているセルが属する行と、集団欄とが交わるセルに記憶された集団識別子で識別される集団に属するレコードの変数値である。
集団生成部112aは、図14で説明する初期集団を生成し(S1)。そして、集団生成部112aは、図14に示すように、全レコードの集団内情報量と集団間情報量とを算出する(S2)。さらに、集団生成部112aは、集団内情報量の総合計(27.2)と、集団間情報量の総合計(21.1)とを加算して元の評価値e_pre(48.3)算出する(S2)。以下、このS1、S2について説明する。なお、初期集団については図3のS111で説明し、集団内情報量については図2で説明したのでその説明を省略する。
図14の例では、第1の集団#1に属するレコードの変数値は、以下の変数値である。すなわち、前記した変数値は、IP1、IP2、IP3、IP4、IP5、IP6、IP7、80、8080、110である。
ある変数値(以下、変数値Xとも呼ぶ)の集団間情報量は、変数値Xがある集団に出現する確率を示す変数値Xの出現確率の逆数の対数である。変数値Xの出現確率は、変数値Xを含む集団の数を、各集団に属している相互に異なる変数値の個数の合計で除算した値である。この集団間情報量は、図10で説明した、例えば、変数値の共有の程度の一例である。
図14において、第1の集団#1内の変数値IP1(点線枠参照)の集団間情報量を算出する。第1の集団#1内の変数値IP1を含む集団は、第1の集団#1であるので、第1の集団#1内の変数値IP1を含む集団の数は、1個である。
また、第1の集団#1に属している相互に異なる変数値は、以下の変数値である。すなわち、IP1、IP2、IP3、IP4、IP5、IP6、IP7、80、8080、110である。従って、第1の集団#1に属している相互に異なる変数値の個数は、10個である。また、第2の集団#2に属している相互に異なる変数値は、IP4、110である。従って、第2の集団#2に属している相互に異なる変数値の個数は、2個である。また、第3の集団#3に属している相互に異なる変数値は、IP6、IP7、IP8、IP9、110、143、25である。従って、第3の集団#3に属している相互に異なる変数値の個数は、7個である。以上より、各集団に属している相互に異なる変数値の個数の合計は、19個(10個+2個+7個)である。
従って、第1の集団#1に含まれる変数値IP1が第1の集団に#1に出現する出現確率は、(1/19)である。そして、第1の集団#1に含まれる変数値IP1の集団間情報量は、−log(1/19)である(点線枠参照)。
第3の集団#3に含まれる変数値110(一点鎖線枠参照)の集団間情報量を算出する。第3の集団#3内の変数値110を含む集団は、第1の集団#1、第2の集団#2、第3の集団#3であるので、第1の集団#1内の変数値110を含む集団の数は、3個である。そして、前記したように、各集団に属している相互に異なる変数値の個数の合計は、19個(10個+2個+7個)である。
従って、第1の集団#1に含まれる変数値110が第1の集団#1に出現する出現確率は、(3/19)である。そして、従って、第1の集団#1内に含まれる変数値110の集団間情報量は、−log(3/19)である(一点鎖線枠参照)。
第k(小文字kは1以上の整数)の集団#kに属するレコードの変数値の集団間情報量の合計を、この集団間情報量を記憶するセルの下側に示す。例えば、第1の集団#1に属するレコードの変数値の集団間情報量の合計は、”11.4”である。具体的には、この総合計は、(−log(1/19))+(−log(1/19))+(−log(1/19))+(−log(2/19))+(−log(1/19))+(−log(2/19))+(−log(2/19))+(−log(1/19))+(−log(1/19))+(−log(3/19))である。
集団構成テーブルT11において、下から2番目の行と集団間情報量欄とが交わるセルは、全集団における各変数値の集団間情報量の総合計を記憶する。例えば、第1の集団#1〜第3の集団#3における各変数値の集団内情報量の合計は、それぞれ”11.4”、”1.8”、”7.9”である。従って、前記した総合計は、”21.1”(11.4+1.8+7.9)である。
以後、再配置部112dは、k個の集団に属するレコードの中から、レコードを異なる集団に配置した場合に、第1の合計と第2の合計との総合計の減少量が最大になる1以上のレコードを選択する。再配置部112dは、選択した1以上のレコードを、選択した1以上のレコードが属する集団(例えば、第1の集団)から、第1の合計と第2の合計との総合計の減少量が最大になる集団(例えば、第2の集団)に配置する。
[再配置対象のレコード集合の選択]
次に、図14〜図16を参照して、レコード集合Qの選択(S3)について説明する。再配置部112dは、最新の集団構成テーブル(元の集団を含む)に含まれるレコードの中から、集団内情報量が高い順に、相互に変数値を共有しないm個のレコードを含むレコード群Vを選択する。この最新の集団構成テーブルは、図14の集団構成テーブルT11である。再配置部112dは、図14の集団構成テーブルT11に含まれるレコードの中から、集団内情報量が高い順に、例えば、相互に変数値を共有しないm個のレコード{IP7、110}、{IP1、80}を含むレコード群Vを選択する(S31)。このステップでは、mは2である。
ここで、図14の集団構成テーブルT11において、最大の集団内情報量は、1.8(−log{(1/13)*(3/13)})である。なお、対数の算出においては、小数点以下第2位を四捨五入している。
最大の集団内情報量(1.8)を有するレコードは、第1の集団#1に属する2個のレコード{IP7、110}、{IP6、110}(図14の二点鎖線枠参照)である。レコード{IP7、110}、{IP6、110}は、変数値110を共有する。従って、再配置部112dは、レコード{IP7、110}、{IP6、110}の中から1個のレコード、例えば、レコード{IP7、110}を選択する。
第1の集団#1に属する、選択されたレコード{IP7、110}の変数値を共有しないレコードであって、かつ、このレコードの集団内情報量が、最大の集団内情報量(1.8)の次に大きい集団内情報量を有するレコードは、例えば、レコード{IP1、80}である。最大の集団内情報量(1.8)の次に大きい集団内情報量は、1.2(−log{(2/13)*(5/13)})である。従って、再配置部112dは、レコード{IP1、80}を選択する。
以上の選択処理により、再配置部112dは、2個のレコード{IP7、110}、{IP1、80}を選択する(S31)。そして、再配置部112dは、集団Uを空集合にリセットする(S32)。以下、リセット後の集団Uを集団Uaと記す。図15を参照して、集団Uaの作成について説明する。
再配置部112dは、2個のレコード{IP7、110}、{IP1、80}を含むレコード群Vから順に1個のレコードr1(例えば、{IP7、110})を取得し、集団Uaに追加する(S33)。図15において、レコード{IP7、110}を一点鎖線の枠で示し、この追加を一点鎖線の矢印で示す。なお、レコード{IP7、110}は、図14の集団構成テーブルT11における第1の集団#1に属するレコードである(図15のレコード群Vにおいて”#1”で示す点線矢印参照)。
集団Uaにレコード{IP7、110}が追加されている状態を集団Uaのセル内に”集団構成:{IP7、110}”で示す。再配置部112dは、レコード{IP7、110}の集団Uaにおける集団内情報量0.0を算出する。なお、レコード{IP7、110}の集団Uaにおける集団内情報量は、0.0(−log{(1/1)*(1/1)})である。
この算出を集団Uaのセル内に”集団内情報量:0.0”で示す。集団Uaに属するレコード{IP7、110}の変数値は、IP7、110である。この変数値を集団Uaのセル内に”変数値:IP7、110”で示す。
集団Xに属するレコードを他の集団(以下、集団Yとも呼ぶ)に再配置する場合、集団内情報量の総合計がなるべく減少することが好ましい。そこで、集団Xに属するレコードを集団Yに再配置したことにより集団内情報量がどれだけ減少するかを考える。
例えば、第1の集団#1に属するレコード{IP7、110}を集団Uaに再配置することにより、レコード{IP7、110}の第1の集団#1における集団内情報量(1.8)が減少し、集団Uaの集団内情報量は0.0増加する。なお、集団内情報量が0.0増加するとは、集団内情報量が増加しないことと同義である。
従って、集団Uaにレコード{IP7、110}を再配置したことにより、図14の集団構成テーブルT11で示す第1の集団#1〜第3の集団#3および図15の集団Uaにおける全集団内情報量は、1.8(1.8−0.0)減少する。この減少を集団Uaのセル内に”減少:1.8−0.0=1.8”で示す。
集団Xに属するレコードを他の集団(集団Y)に再配置した場合、変数値の共有数が少なくなることが好ましい。そこで、集団Xに属するレコードを集団Yに再配置したことにより変数値がどれだけ減少するか考える。この変数値の減少では、レコードを集団Yに再配置したことにより、このレコードに含まれるn(nは1以上の整数)個の変数値と同じ変数値が、集団X内の変数値に含まれなくなると、このn個の変数値がn個減少したとする。
図14において、第1の集団#1に属するレコード{IP7、110}を集団Uaに再配置すると、変数値IP7と同一変数値が、第1の集団#1内の変数値から含まれなくなる。しかし、この再配置をしても、変数110は、第1の集団#1内の変数値に含まれる。従って、第1の集団#1に属するレコード{IP7、110}を集団Uaに再配置すると、変数値は1個減少する。この減少を集団Uaのセル内に”#1の減少:1”で示す。
ここで、レコード{IP7、110}が属する集団Uaの変数値は、2個である。この変数値の個数を集団Uaのセル内に”Uの変数値の数:2”で示す。
ここで、集団Xに属するレコードを集団Yに再配置した場合における評価値の改善量を考える。この再配置により、(式1)で示した評価値の改善量が多くなることが好ましい。
この改善量は、(集団内情報量の減少)−α×(変数値の異なり数の増加)で示される。ここで、変数値の異なり数の総合計の増加は、集団Uの変数値から、前記した変数値の減少を減算した値であるとする。
第1の集団#1に属するレコード{IP7、110}を集団Uaに再配置した場合における評価値の改善量は、0.8(1.8−α×(2−1)、ただしαは1)である。この”1.8”は、集団内情報量の減少値である。この”(2−1)”の”2”は、レコード{IP7、110}が属する集団Uaの変数値の個数であり、この”1”は、変数値の減少である。このαの数値は調整可能である。分析者は、このαの数値を調整して、後述する評価値の算出において、集団間情報量がこの評価値に与える影響を変更する。このαの数値を調整すれば、各集団を構成するレコードの内容が変化する。分析者は、このαの数値を調整し、離散データの分類をデータ分類装置1に実行させ、レコードの内容の変化を見る。そして、分析者は、この変化を見ながら、分析者の意図に沿うように離散データの分類処理をデータ分類装置1に実行させ、分析者の意図に沿った離散データの分類結果を得る。
再配置部112dは、集団Uaにおける集団内情報量の算出、評価値の改善量の算出を実行し、例えば、算出結果をRAM102に記憶する。
次いで、再配置部112dは、集団Ua内の何れかの変数値を共有するレコードの中で、集団Uaに追加したときの評価値の改善量が最も大きいレコードを、集団Uaに追加する(S34)。例えば、集団Ua内の何れかの変数値(IP7または110)を共有するレコードを{IP6、110}とする。このレコードは、図14の集団構成テーブルT11における第1の集団#1に属するレコードである(図15の集団Up1において”#1”で示す点線矢印参照)。
集団Uaに第1の集団#1に属するレコード{IP6、110}を追加すると想定する。集団Uaにレコード{IP6、110}が追加されている状態を集団Up1のセル内に”集団構成:{IP7、110}、{IP6、110}”で示す。再配置部112dは、レコード{IP7、110}、{IP6、110}の集団Up1における集団内情報量0.3を算出する。この算出式は、−log{(1/2)*(2/2)}である。なお、−log{(1/2)*(2/2)}の値は0.3である。
この算出を集団Up1のセル内に”集団内情報量:0.3、0.3”で示す。集団Up1に属するレコード{IP7、110}、{IP6、110}の変数値は、IP7、IP6、110である。この変数値を集団Up1のセル内に”変数値:IP7、IP6、110”で示す。
第1の集団#1に属するレコード{IP7、110}、{IP6、110}を集団Up1に再配置することにより、レコード{IP7、110}の第1の集団#1における集団内情報量(1.8)とレコード{IP6、110}の第1の集団#1における集団内情報量(1.8)が減少する。そして、この再配置により、集団Up1の集団内情報量は0.6(0.3+0.3)増加する。従って、集団Up1にレコード{IP7、110}、{IP6、110}を再配置したことにより、図14の集団構成テーブルT11で示す第1の集団#1〜第3の集団#3および図15の集団Up1における全集団内情報量は、3.0((1.8+1.8)−(0.3+0.3))減少する。この減少を集団Up1のセル内に”減少:(1.8+1.8)−(0.3+0.3)=3.0”で示す。
図14において、レコード{IP7、110}、{IP6、110}を第1の集団#1から集団Up1に再配置すると、変数値IP7、IP6と同一変数値IP7、IP6が、第1の集団#1内の変数値から含まれなくなる。しかし、この再配置をしても、変数110は、第1の集団#1内の変数値に含まれる。従って、第1の集団#1に属するレコード{IP7、110}、{IP6、110}を集団Up1に再配置すると、変数値は2個減少する。この減少を集団Up1のセル内に”#1の減少:2”で示す。
ここで、レコード{IP7、110}、{IP6、110}が属する集団Up1の変数値は、3個である。この変数値の個数を集団Up1のセル内に”Uの変数値の数:3”で示す。
第1の集団#1に属するレコード{IP7、110}、{IP6、110}を集団Up1に再配置した場合における評価値の改善量は、2.0(3.0−α×(3−2)、ただしαは1)である。
再配置部112dは、集団Up1における集団内情報量の算出、評価値の改善量の算出を実行し、例えば、算出結果をRAM102に記憶する。
集団Uaに第3の集団#3に属するレコード{IP8、110}を追加すると想定する(図15の集団Up2において”#3”で示す点線矢印参照)。集団Uaにレコード{IP8、110}が追加されている状態を集団Up2のセル内に”集団構成:{IP7、110}、{IP8、110}”で示す。再配置部112dは、レコード{IP7、110}、{IP8、110}の集団Up2における集団内情報量0.3を算出する。この算出式は、−log{(1/2)*(2/2)}である。なお、−log{(1/2)*(2/2)}の値は0.3である。
この算出を集団Up2のセル内に”集団内情報量:0.3、0.3”で示す。集団Up2に属するレコード{IP7、110}、{IP8、110}の変数値は、IP7、IP8、110である。この変数値を集団Up2のセル内に”変数値:IP7、IP8、110”で示す。
レコード{IP7、110}を第1の集団#1から集団Up2に再配置し、レコード{IP8、110}を第3の集団#3から集団Up2に再配置する。この再配置により、レコード{IP7、110}の第1の集団#1における集団内情報量(1.8)とレコード{IP8、110}の第3の集団#3における集団内情報量(1.2)が減少し、集団Up2の集団内情報量は0.6(0.3+0.3)増加する。なお、レコード{IP8、110}の第3の集団#3における集団内情報量は、1.2(−log{(3/10)*(2/10)})である。
従って、集団Up2にレコード{IP7、110}、{IP8、110}を再配置したことにより、図14の集団構成テーブルT11で示す第1の集団#1〜第3の集団#3および図15の集団Up2における全集団内情報量は、2.4((1.8+1.2)−(0.3+0.3))減少する。この減少を集団Up2のセル内に”減少:(1.8+1.2)−(0.3+0.3)=2.4”で示す。
第1の集団#1に属するレコード{IP7、110}を集団Up2に再配置すると、変数値IP7と同一変数値IP7が、第1の集団#1内の変数値から含まれなくなる。従って、第1の集団#1に属するレコード{IP7、110}を集団Up2に再配置すると、変数値は1個減少する。この減少を集団Up2のセル内に”#1の減少:1”で示す。
第3の集団#3に属するレコード{IP8、110}を集団Up2に再配置すると、変数値IP8、110と同一変数値IP8、110が、第3の集団#3内の変数値から含まれなくなることがない。従って、第3の集団#3に属するレコード{IP8、110}を集団Up2に再配置しても、変数値は減少しない。この減少しないことを集団Up2のセル内に”#3の減少:0”で示す。
ここで、レコード{IP7、110}、{IP8、110}が属する集団Up2の変数値は、3個である。この変数値の個数を集団Up2のセル内に”Uの変数値の数:3”で示す。
第1の集団#1に属するレコード{IP7、110}、第3の集団#3に属するレコード{IP8、110}を集団Up2に再配置した場合における評価値の改善量は、0.4(2.4−α×(3−1−0)、ただしαは1)である。
再配置部112dは、集団Up2における集団内情報量の算出、評価値の改善量の算出を実行し、例えば、算出結果をRAM102に記憶する。
以上説明したように、集団Uaにレコード{IP6、110}を追加した場合の評価値の改善量は2.0であり、この評価値の改善量が最大である(図15の吹き出し”最大”参照)。そこで、再配置部112dは、レコード{IP6、110}を、集団Uaに追加する(S34)。
再配置部112dは、g個(例えば、1個)のレコードを追加したか判定する(S35)。既に、1個のレコードを集団Uaに追加したので(S35のYES)、再配置部112dは、評価値の改善量が最も大きくなるときの集団Up1をレコード集合Q1に加える(S36)。以下、評価値の改善量が最も大きくなるときの集団Up1に含まれる2個のレコードの集団を集団U1aで示す。
再配置部112dは、2個のレコード{IP7、110}、{IP1、80}を含むレコード群Vから順に1個のレコードr1({IP7、110})を取得しているので、レコード群Vから全てのレコードを取得していない(S37のNO)。従って、再配置部112dは、集団Uを空集合にリセットする(S32)。以下、リセット後の集団Uを集団Ubと記す。図16を参照して、集団Ubの作成について説明する。
再配置部112dは、2個のレコード{IP7、110}、{IP1、80}を含むレコード群Vから順に1個のレコードr1(例えば、{IP1、80})を取得し、集団Ubに追加する(S33)。図16において、レコード{IP1、80}を一点鎖線の枠で示し、この追加を一点鎖線の矢印で示す。なお、レコード{IP1、80}は、図14の集団構成テーブルT11における第1の集団#1に属するレコードである(図16のレコード群Vにおいて”#1”で示す点線矢印参照)。
集団Ubにレコード{IP1、80}が追加されている状態を集団Ubのセル内に”集団構成:{IP1、80}”で示す。再配置部112dは、集団Ubにおけるレコード{IP1、80}の集団内情報量0.0を算出する。この算出を集団Ubのセル内に”集団内情報量:0.0”で示す。集団Ubに属するレコード{IP1、80}の変数値は、IP1、80である。この変数値を集団Ubのセル内に”変数値:IP1、80”で示す。
例えば、第1の集団#1に属するレコード{IP1、80}を集団Ubに再配置することにより、レコード{IP1、80}の第1の集団#1における集団内情報量(1.2)が減少し、集団Ubの集団内情報量は0.0増加する。なお、レコード{IP1、80}の第1の集団#1における集団内情報量は、1.2(−log{(2/13)*(5/13)})である。
従って、集団Ubにレコード{IP1、80}を再配置したことにより、図14の集団構成テーブルT11で示す第1の集団#1〜第3の集団#3および図16の集団Ubにおける全集団内情報量は、1.2(1.2−0.0)減少する。この減少を集団Ubのセル内に”減少:1.2−0.0=1.2”で示す。
第1の集団#1に属するレコード{IP1、80}を集団Ubに再配置しても、変数IP1、80は、第1の集団#1内の変数値に含まれる。従って、第1の集団#1に属するレコード{IP1、80}を集団Ubに再配置しても、変数値は減少しない。この減少しないことを集団Ubのセル内に”#1の減少:0”で示す。
ここで、レコード{IP1、80}が属する集団Ubの変数値は、2個である。この変数値の個数を集団Ubのセル内に”Uの変数値の数:2”で示す。
第1の集団#1に属するレコード{IP1、80}を集団Ubに再配置した場合における評価値の改善量は、−0.8(1.2−α×(2−0)、ただしαは1)である。この”1.2”は、集団内情報量の減少値である。この”(2−0)”の”2”は、レコード{IP1、80}が属する集団Ubの変数値の個数であり、この”0”は、変数値の減少である。
再配置部112dは、集団Ubにおける集団内情報量の算出、評価値の改善量の算出を実行し、例えば、算出結果をRAM102に記憶する。
次いで、再配置部112dは、集団Ub内の何れかの変数値を共有するレコードの中で、集団Ubに追加したときの評価値の改善量が最も大きいレコードを、集団Ubに追加する(S34)。例えば、集団Ub内の何れかの変数値(IP1または80)を共有するレコードを{IP1、8080}とする。このレコードは、図14の集団構成テーブルT11における第1の集団#1に属するレコードである。
集団Ubにレコード{IP1、8080}を追加すると想定する(図16の集団Up11において”#1”で示す点線矢印参照)。集団Ubにレコード{IP1、8080}が追加されている状態を集団Up11のセル内に”集団構成:{IP1、80}、{IP1、8080}”で示す。再配置部112dは、集団Up11におけるレコード{IP1、80}、{IP1、8080}の集団Up1における集団内情報量0.3を算出する。この算出式は、−log{(1/2)*(2/2)}である。なお、−log{(1/2)*(2/2)}の値は0.3である。
この算出を集団Up11のセル内に”集団内情報量:0.3、0.3”で示す。集団Up11に属するレコード{IP1、80}、{IP1、8080}の変数値は、IP1、80、8080である。この変数値を集団Up11のセル内に”変数値:IP1、80、8080”で示す。
第1の集団#1に属するレコード{IP1、80}、{IP1、8080}を集団Up11に再配置することにより、レコード{IP1、80}の第1の集団#1における集団内情報量(1.2)とレコード{IP1、8080}の第1の集団#1における集団内情報量(1.2)が減少する。そして、この再配置により、集団Up11の集団内情報量は0.6(0.3+0.3)増加する。
従って、集団Up11にレコード{IP1、80}、{IP1、8080}を再配置したことにより、図14の集団構成テーブルT11で示す第1の集団#1〜第3の集団#3および図16の集団Up11における全集団内情報量は、1.8((1.2+1.2)−(0.3+0.3))減少する。この減少を集団Up11のセル内に”減少:(1.2+1.2)−(0.3+0.3)=1.8”で示す。
図14において、第1の集団#1に属するレコード{IP1、80}、{IP1、8080}を集団Up11に再配置すると、変数値IP1と同一変数値IP1が、第1の集団#1内の変数値から含まれなくなる。しかし、この再配置をしても、変数80、8080は、第1の集団#1内の変数値に含まれる。従って、第1の集団#1に属するレコード{IP1、80}、{IP1、8080}を集団Up11に再配置すると、変数値は1個減少する。この減少を集団Up11のセル内に”#1の減少:1”で示す。
ここで、レコード{IP1、80}、{IP1、8080}が属する集団Up11の変数値は、3個である。この変数値の個数を集団Up11のセル内に”Uの変数値の数:3”で示す。
第1の集団#1に属するレコード{IP1、80}、{IP1、8080}を集団Up11に再配置した場合における評価値の改善量は、−0.2(1.8−α×(3−1)、ただしαは1)である。
再配置部112dは、集団Up11における集団内情報量の算出、評価値の改善量の算出を実行し、例えば、算出結果をRAM102に記憶する。
集団Ubに第1の集団#1に属するレコード{IP2、80}を追加すると想定する(図16の集団Up12において”#1”で示す点線矢印参照)。集団Ubにレコード{IP2、80}が追加されている状態を集団Up2のセル内に”集団構成:{IP1、80}、{IP2、80}”で示す。再配置部112dは、レコード{IP1、80}、{IP2、80}の集団Up12における集団内情報量0.3を算出する。この算出式は、−log{(1/2)*(2/2)}である。なお、−log{(1/2)*(2/2)}の値は0.3である。
この算出を集団Up12のセル内に”集団内情報量:0.3、0.3”で示す。集団Up12に属するレコード{IP1、80}、{IP2、80}の変数値は、IP1、IP2、80である。この変数値を集団Up12のセル内に”変数値:IP1、IP2、80”で示す。
第1の集団#1に属するレコード{IP1、80}、{IP2、80}を集団Up12に再配置することにより、レコード{IP1、80}の第1の集団#1における集団内情報量(1.2)とレコード{IP2、80}の第1の集団#1における集団内情報量(1.2)が減少する。そして、この再配置により、集団Up12の集団内情報量は0.6(0.3+0.3)増加する。なお、レコード{IP2、80}の第1の集団#1における集団内情報量は、1.2(−log{(2/13)*(5/13)})である。
従って、集団Up12にレコード{IP1、80}、{IP2、80}を再配置したことにより、図14の集団構成テーブルT11で示す第1の集団#1〜第3の集団#3および図16の集団Up12における全集団内情報量は、1.8((1.2+1.2)−(0.3+0.3))減少する。この減少を集団Up12のセル内に”減少:(1.2+1.2)−(0.3+0.3)=1.8”で示す。
第1の集団#1に属するレコード{IP1、80}、{IP2、80}を集団Up12に再配置しても、変数値IP1、IP2、80と同一変数値IP1、IP2、80が、第1の集団#1内の変数値から含まれなくなることがない。従って、第1の集団#1に属するレコード{IP1、80}、{IP2、80}を集団Up12に再配置しても、変数値は減少しない。この減少しないことを集団Up12のセル内に”#1の減少:0”で示す。
ここで、レコード{IP1、80}、{IP2、80}が属する集団Up2の変数値は、3個である。この変数値の個数を集団Up12のセル内に”Uの変数値の数:3”で示す。
第1の集団#1に属するレコード{IP1、80}、{IP2、80}を集団Up12に再配置した場合における評価値の改善量は、−1.2(1.8−α×(3−0)、ただしαは1)である。
再配置部112dは、集団Up12における集団内情報量の算出、評価値の改善量の算出を実行し、例えば、算出結果をRAM102に記憶する。
集団Ubにレコード{IP1、8080}を追加した場合の評価値の改善量は−0.2であり、この評価値の改善量が最大である(図16の吹き出し”最大”参照)。そこで、再配置部112dは、レコード{IP1、8080}を、集団Ubに追加する(S34)。
再配置部112dは、g個(例えば、1個)のレコードを追加したか判定する(S35)。既に、1個のレコードを集団Uaに追加したので(S35のYES)、再配置部112dは、評価値の改善量が最も大きくなるときの集団Up11をレコード集合Q1に加える(S36)。以下、評価値の改善量が最も大きくなるときの集団Up11に含まれる2個のレコードの集団を集団U1bで示す。
図12、図15、図16で説明したように、再配置部112dは、再配置する1以上のレコードの選択において、相互に変数値を共有しないレコードを、出現確率の逆数の対数(例えば、集団内情報量)が高い順に選択する(S31)。図15、図16の例では、再配置部112dは、レコード{IP7、110}、{IP1、80}を含むレコード群Vを選択する(S31)。
そして、再配置部112dは、選択したレコードA(例えば、図15のレコード{IP7、110})をk個の集団以外の他の集団(例えば、図15の集団Ua)に追加する第1の追加処理を実行する(S33)。そして、再配置部112dは、離散データLSD4に含まれるレコードの中から、レコードAに含まれる複数の変数値の何れか1つの変数値を含むレコードB(例えば、図15のレコード{IP6、110})を選択する(S33)。再配置部112dは、選択したレコードBを他の集団Uaに追加する第2の追加処理を実行する(S33)。
再配置部112dは、他の集団にレコードを追加する度に、第1の合計と第2の合計との減少量を概算する。再配置部112dは、この概算においては、例えば、図15の評価値の改善量を算出している。再配置部112dは、最大の減算値を概算した場合の他の集団(例えば、図15のレコード集団U1a)を再配置する1以上のレコードとして選択する。
再配置部112dは、減少量の概算において、他の集団にレコードを追加する度に、以下の算出処理を実行する。すなわち、再配置部112dは、他の集団に属する1以上のレコードCの各々のk個の集団における出現確率の逆数の対数(例えば、集団内情報量)の第1の和を算出する。そして、再配置部112dは、レコードCの各々の他の集団における出現確率の逆数の対数(例えば、集団内情報量)の第2の和を算出する。次いで、再配置部112dは、第1の和から第2の和を減算した第1の値を算出する。
次いで、再配置部112dは、他の集団に含まれる相互に異なる変数値の総数から、レコードCの各々をレコードCが属する集団から除外した際に、レコードCに含まれる変数値が該集団に含まれなくなる場合における該変数値の個数を減算した第2の値を算出する。
再配置部112dは、第1の値から第2の値を減算した減算値を算出し、この減算値を減少量の概算とする。この減少量の概算は、評価値の改善量である。再配置部112d、減算値の算出において、第1の値から、第2の値に重み付け係数を乗算した値を減算した値を減算値とする。この重み付け係数は、例えば、図15、図16で説明したα(例えば、1)であり、調整可能である。
ここで、図15の例において、集団Uにレコード{IP7、110}を追加した場合(集団Ua参照)を第1の場合とする。そして、図15の例において、集団Uaにレコード{IP6、110}を追加した場合(集団Up1参照)を第2の場合とする。
第1の場合、図14、図15の例で示すように、第1の和は集団内情報量(1.8)であり、第2の和は集団内情報量(0.0)であり、第1の値は”減少:1.8−0.0=1.8”である。第1の場合、レコードCは、図14の第1の集団#1に属するレコード{IP7、110}である。第1の場合、他の集団Uaに含まれる相互に異なる変数値は、変数値IP7、110であり、この変数値の総数は2(”Uの変数値の数:2”)である。第1の場合、レコードCに含まれる変数値が第1の集団#1に含まれなくなる場合におけるこの変数値の個数は、図15で説明したように、”#1の減少:1”で示す1個である。従って、第1の場合、第2の値は、1(2ー1)である。第1の場合、第1の値から第2の値を減算した減算値(すなわち、評価値の改善量)は、”1.8−α(2ー1)=0.8”である(αは例えば、1)。
第2の場合、図14、図15の例で示すように、第1の和は集団内情報量(1.8+1.8)であり、第2の和は集団内情報量(0.3+0.3)であり、第1の値は”減少:(1.8+1.8)−(0.3+0.3)=3.0”である。第2の場合、レコードCは、図14の第1の集団#1に属するレコード{IP7、110}、{IP6、110}、である。第2の場合、他の集団Up1に含まれる相互に異なる変数値は、変数値IP7、IP6、110であり、この変数値の総数は3(”Uの変数値の数:3”)である。
第2の場合、レコードCに含まれる変数値が第1の集団#1に含まれなくなる場合におけるこの変数値の個数は、図15で説明したように、”#1の減少:2”で示す2個である。従って、第2の場合、第2の値は、1(3ー2)である。第2の場合、第1の値(3.0)から第2の値(1.0)を減算した減算値(すなわち、評価値の改善量)は、”3.0−α(3−2)=2.0”である(αは例えば1)。
再配置部112dは、前記した第1の追加処理において、相互に変数値を共有しないレコードをm(1以上の整数)個選択する(S31)。なお、mをNbと記しても良い。そして、再配置部112dは、出現確率の逆数の対数(例えば、集団内情報量)が高い順に1個のレコードを他の集団に追加する(S32)。第1の追加処理は、前記した第1の場合で説明した。
次いで、再配置部112dは、前記した第2の追加処理において、g(1以上の整数)個のレコードBを他の集団に順次追加して、評価値の改善量が最大になる再配置用の集団(例えば、図15のレコード集団U1a)を生成する(S34)。再配置部112dは、g個のレコードBの追加が終了すると(S35のYES)、この他の集団を配置用の集団として記憶部(例えば、RAM102)に記憶する(S36)。そして、再配置部112dは、相互に変数値を共有しない前記Nb個のレコードを全て他の集団に追加するまで、第1、第2の追加処理を繰り返し行う(S33〜S36)。すなわち、再配置部112dは、第1、第2の追加処理を繰り返し行い、相互に変数値を共有しないNb個のレコードを全て他の集団に追加すると、RAM102に記憶した配置用の集団を1以上のレコード(すなわち、再配置の対象となるレコード)として選択する。
以後、再配置部112dは、選択した1以上のレコード(すなわち、再配置の対象となるレコード)を、集団内情報量の合計と集団間情報量の合計との総合計の減少量が最大になる集団に再配置する。なお、この集団は、第1の集団#1〜第3の集団#3の何れか1つの集団である。
[再配置するレコード群の取得]
再配置部112dは、レコード群Vから全てのレコード({IP7、110}、{IP1、80})を取得したので(S37のYES)、S4に移る。再配置部112dは、レコード集合Q1の中で、評価値の改善量が最も大きいレコード群rgを取得する(S4)。
図15の例では、最も大きい評価値の改善量は2.0であり、最も大きい評価値の改善量になるときの集団Up1(集団U1a)に属するレコードは、レコード{IP7、110}、{IP6、110}である。そして、図16の例では、最も大きい評価値の改善量はー0.2であり、最も大きい評価値の改善量になるときの集団Up11(集団U1b)に属するレコードは、レコード{IP1、80}、{IP1、8080}である。
従って、レコード集合Q1の中で、評価値の改善量が最も大きいレコード群rgは、図15の例において、最も大きい評価値の改善量(2.0)になるときの集団Up1(集団U1a)に属するレコードである。従って、再配置部112dは、レコード群rg(集団U1a)を取得する(S4)。
[再配置するレコード群の有効性の判定]
算出部112bは、S4で取得したレコード群rg(集団U1a)に基づき、第1評価値e1及び第2評価値e2を算出する(S5)。そして、判定部112cは、S4で取得したレコード群rgの有効性の判定する(S6)。
具体的に、判定部112cは、S4で取得したレコード群rgが、再配置を行うことによって評価値を改善できるレコード群rgであるか否かを判定する(S6)。ここで、評価値を改善できるレコード群rgには、そのレコード群rgの再配置を行うことにより評価値を改善できないものであっても、レコード集合Q1に含まれる他のレコード群の再配置を引き続き行うことで、長期的には評価値を改善できるものを含む。そして、S4で取得したレコード群rgが長期的にも評価値を改善できないものであると判定した場合、判定部112cは、S4で取得したレコード群rgについてはS7の処理を行わない旨の決定を行う(S6のNO)。
すなわち、図14等で説明した集団構成テーブルは、場合によっては、膨大な数(例えば、数万件)のレコードが含んでいる可能性があり、各レコードに含まれる変数値の数も膨大である可能性がある。このような場合、レコード群rgが再配置可能な集団の中には、例えば、再配置を行うことによって評価値を改善できる再配置先が存在しない場合がある。一方で、評価値を改善できないレコード群rgには、そのレコード群rgの再配置を行うことにより評価値の改善を行うことができないが、レコード集合Q1に含まれる他のレコード群の再配置を引き続き行うことで、長期的には評価値を改善できるものが存在する場合がある。
そこで、本実施の形態の判定部112cは、S4で取得したレコード群rgが、再配置を行うことによって評価値を改善できるレコード群rgであるか否かを判定する(S6)。そして、判定部112cは、再配置を行うことによって評価値を改善できるレコード群rgについては再配置を行う(S6のYES、S7)。すなわち、判定部112cは、再配置によって評価値を改善できないレコード群rgであっても、レコード集合Q1に含まれる他のレコード群の再配置を引き続き行うことで評価値を改善できるレコード群rgについては再配置を行う。一方、判定部112cは、再配置を行うことによって評価値を改善できないレコード群rgについては再配置を行わない(S6のNO)。すなわち、判定部112cは、再配置によって評価値を改善できないだけでなく、レコード集合Q1に含まれる他のレコード群の再配置を引き続き行っても評価値を改善できないレコード群rgについては再配置を行わない。
これにより、分類部112は、例えば、レコードの再配置を行うことによって評価値を改善できる再配置先が存在しない状態が発生しても、レコードの再配置を継続することが可能になる。
なお、以下、再配置を行うことによって評価値を改善できるレコード群rgを、有効性を有するレコード群rgとも呼ぶ。以下、S5及びS6の処理の具体例について説明する。
初めに、算出部112bは、新たな集団(以下、仮集団#0とも呼ぶ)にレコード群rgを再配置したと仮定した場合における評価値(第1評価値e1)を算出する(S5)。
図17は、レコード群rgを仮集団#0に再配置した場合の(点線枠参照)、集団構成テーブルT12を説明する図である。具体的に、図17に示す集団構成テーブルにおいて、レコード{IP7、110}、{IP6、110}が第1の集団#1から仮集団#0に再配置されている。そして、算出部112bは、図17に示す集団構成テーブルT12を参照し、図14で説明した場合と同様に、第1評価値e1を算出する。具体的に、算出部112bは、この場合、第1評価値e1として45.0を算出する。
次に、算出部112bは、図14に示す集団構成テーブルT11において、第1の集団#1(レコード{IP7、110}、{IP6、110}が属する元の集団)に属するレコードを、第1の集団#1または仮集団#0のいずれかにランダムに再配置したものと仮定する。そして、算出部112bは、この場合における評価値(第2評価値e2)を算出する(S5)。
図18は、図14に示す集団構成テーブルT11において、第1の集団#1に配置されたレコードを、第1の集団#1または仮集団#0のいずれかにランダムに配置したときの(点線枠参照)、集団構成テーブルT13を説明する図である。具体的に、図18に示す集団構成テーブルにおいて、レコード{IP1、80}、{IP2、80}、{IP2、8080}、{IP3、8080}、{IP4、80}、{IP5、8080}、{IP6、110}が第1の集団#1に配置されている。また、図18に示す集団構成テーブルにおいて、レコード{IP1、8080}、{IP3、80}、{IP4、8080}、{IP5、80}、{IP5、110}、{IP7、110}が仮集団#0に配置されている。そして、算出部112bは、図18に示す集団構成テーブルT13を参照し、図14で説明した場合と同様に、第2評価値e2を算出する。具体的に、算出部112bは、この場合、第2評価値e2として54.5を算出する。
その後、判定部112cは、以下の式2が成立する場合に、S4で取得したレコード群rgが有効性を有するレコード群rgであるものと判定する(S6)。
第1評価値e1−ε×レコード群rgが配置されていた元の集団に属するレコードの数(第2評価値e2−第1評価値e1)<元の評価値e_pre・・・(式2)
なお、εはいわゆる重み付け係数(0よりも大きい値からなる係数)であり、分析者により適宜調整可能である。
式2において、あるレコード群rgに基づく第1評価値e1と第2評価値e2とが近い値である程、または、あるレコード群rgに基づく第1評価値e1が第2評価値e2よりも大きい値である程、左辺の値は大きくなる。そのため、第1評価値e1及び第2評価値e2は、第1評価値e1と第2評価値e2とが近い値である程、または、あるレコード群rgに基づく第1評価値e1が第2評価値e2よりも大きい値である程、式2の成立を妨げるように作用する。一方、式2において、あるレコード群rgに基づく第2評価値e2が第1評価値e1よりも大きい値である程、左辺の値は小さくなる。そのため、第1評価値e1及び第2評価値e2は、第2評価値e2が第1評価値e1よりも大きい値である程、式2を成立させるように作用する。
すなわち、第1評価値e1と第2評価値e2とが近い値であるレコード群rgの再配置は、第1の集団#1からランダムで選択されたレコード群を再配置した場合と比較して、評価値を改善させる効果に差がないと理解できる。さらに、第1評価値e1が第2評価値e2よりも大きい値であるレコード群rgの再配置は、第1の集団#1からランダムで選択されたレコード群を再配置した場合よりも、評価値を改悪させるものであると理解できる。そのため、判定部112cは、式2が成立しないレコード群rgについては、再配置を行っても評価値を改善させることができないものであると判定し、再配置を行わない旨の決定をすることが可能になる。
また、式2において、第2評価値e2が第1評価値e1よりも大きい値である場合、レコード群rgが配置されていた元の集団に属するレコードの数が多い程、左辺の値は小さくなる。すなわち、第2評価値e2が第1評価値e1よりも大きい値である場合、レコード群rgが配置されていた元の集団に属するレコードの数は、そのレコード数が多い程、式2を成立させるように作用する。
具体的に、式2において、εが0.1である場合、左辺が32.6となり、右辺が48.3(図14参照)になる。したがって、この場合、判定部112cは、式2が成立するものと判定し、レコード群rgが有効性を有するものと判定する(S6のYES)。一方、上記の例において、例えば、元の評価値e_pre(式2の右辺)が30.0である場合、判定部112cは、式2が成立しないものと判定し、レコード群rgが有効性を有しないものと判定する(S6のNO)。
これにより、データ分類装置1は、例えば、S4で取得したレコード群rgを再配置可能な集団の中に、レコード群rgの再配置によって評価値を改善できる集団が存在しない場合であっても、レコード群rgの再配置を行うべきか否かの判定を行うことが可能になる。すなわち、データ分類装置1は、S4で取得したレコード群rgが、再配置を行っても評価値を改善することができないものであるが、再配置を継続することで長期的に評価値を改善させることができるレコード群rgであるか否かの判定を行うことが可能になる。そのため、データ分類装置1は、S4で取得したレコード群rgを再配置可能な集団の中に、再配置を行った場合に評価値を改善させることができる集団が存在しない場合であっても、評価値の改善させるための再配置を行うことが可能になる。
また、データ分類装置1は、再配置によって評価値を改善させることができないレコード群rgであって、長期的にも評価値を改善できないレコード群rgについては、再配置を行わない旨の判定を行うことが可能になる。これにより、データ分類装置1は、例えば、離散データの分類を効率的に行うことが可能になる。
[レコード群の再配置]
再配置部112dは、レコード群rgが有効性を有していた場合において(S6のYES)、第1の集団#1〜第3の集団#3の中の何れか1個の集団にレコード群rg(集団U1a)を再配置したときに、評価値が最も良くなる集団にレコード群rgを再配置する(S7)。この再配置を、図19〜図21を参照して説明する。
再配置部112dは、第1の集団#1〜第3の集団#3にレコード群rg(集団U1a)を再配置した場合における各値を算出する。この各値は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計および集団間情報量の総合計、評価値である。
図19は、レコード群rg(集団U1a)を再配置しないときの(点線枠参照)、集団構成テーブルT21を示す。
集団構成テーブルT21は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計(27.2)および集団間情報量の総合計(21.1)、評価値(48.3)を示す。
図20は、第2の集団#2にレコード群rg(集団U1a)を再配置したときの(点線枠参照)、集団構成テーブルT22を示す。集団構成テーブルT22は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計(24.0)および集団間情報量の総合計(21.1)、評価値(45.1)を示す。
図21は、第3の集団#3にレコード群rg(集団U1a)を再配置したときの(点線枠参照)、集団構成テーブルT23を示す。集団構成テーブルT23は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計(25.0)および集団間情報量の総合計(18.9)、評価値(43.9)を示す。
再配置部112dは、図19〜図21に示したように、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計および集団間情報量の総合計、評価値を算出しRAM102に記憶する。
図21に示したように、第3の集団#3にレコード群rg(集団U1a)を再配置したときの評価値が、最良(最小)である。この最小の評価値を、図21の吹き出し”最小”で示す。従って、再配置部112dは、第3の集団#3にレコード群rg(集団U1a)を再配置する(S7)。図21の集団構成テーブルT23の集団構成欄が、図13の集団構成テーブルT2の集団構成欄に対応する。
再配置部112dは、レコード集合Q1からレコード群rg(集団U1a)を除外する(S8)。レコード群rg(集団U1a)を除外したレコード集合Q1は、集団U1bを含むので、レコード集合Q1は、空集合ではない(S9のNO)。従って、再配置部112dは、S9でのNOと判定し、S4に移る。
再配置部112dは、除外後のレコード集合Q1の中で、評価値の改善量が最も大きいレコード群rgを取得する(S4)。
図16の例では、最も大きい評価値の改善量は−0.2であり、最も大きい評価値の改善量になるときの集団Up11(集団U1b)に属するレコードは、レコード{IP1、80}、{IP1、8080}である。
従って、レコード集合Q1の中で、評価値の改善量が最も大きいレコード群rgは、最も大きい評価値の改善量(−0.2)になるときの集団Up11(集団U1b)に属するレコード(集団U1b)である。従って、再配置部112dは、レコード群rg(集団U1b)を取得する(S4)。
算出部112bは、S4で取得したレコード群rg(集団U1b)に基づき、第1評価値e1及び第2評価値e2を算出する(S5)。そして、判定部112cは、S4で取得したレコード群rgの有効性の判定する(S6)。
図22は、レコード群rgを仮集団#0に再配置した場合の(点線枠参照)、集団構成テーブルT24を説明する図である。具体的に、図22に示す集団構成テーブルにおいて、レコード{IP1、80}、{IP1、8080}が第1の集団#1から仮集団#0に再配置されている。算出部112bは、例えば、図22に示す集団構成テーブルT24を参照し、図14で説明した場合と同様に、第1評価値e1を算出する。具体的に、算出部112bは、この場合、第1評価値e1として43.7を算出する。
次に、算出部112bは、図21に示す集団構成テーブルT23において、第1の集団#1(レコード{IP1、80}、{IP1、8080}が属する元の集団)に属するレコードを、第1の集団#1または仮集団#0のいずれかにランダムに再配置したものと仮定する。そして、算出部112bは、この場合における評価値(第2評価値e2)を算出する(S5)。
図23は、図21に示す集団構成テーブルT23において、第1の集団#1に配置されたレコードを、第1の集団#1または仮集団#0のいずれかにランダムに配置したときの(点線枠参照)、集団構成テーブルT25を説明する図である。具体的に、図23に示す集団構成テーブルにおいて、レコード{IP1、80}、{IP2、80}、{IP3、8080}、{IP4、80}、{IP5、80}、{IP5、8080}が第1の集団#1に配置されている。また、図18に示す集団構成テーブルにおいて、レコード{IP1、8080}、{IP2、8080}、{IP3、80}、{IP4、8080}、{IP5、110}が仮集団#0に配置されている。算出部112bは、例えば、図23に示す集団構成テーブルT25を参照し、図14で説明した場合と同様に、第2評価値e2を算出する。具体的に、算出部112bは、この場合、第2評価値e2として50.9を算出する。
その後、判定部112cは、上記の式2が成立する場合に、S4で取得したレコード群rgが有効性を有するレコード群rgであるものと判定する(S6)。
具体的に、εが0.1である場合、左辺が35.8となり、右辺が43.9(図21参照)になる。したがって、この場合、判定部112cは、式2が成立するものと判定し、レコード群rgが有効性を有するものと判定する(S6のYES)。
再配置部112dは、第1の集団#1〜第3の集団#3の中の何れか1個の集団にレコード群rg(集団U1b)を再配置したときに、評価値が最も良くなる集団にレコード群rgを再配置する(S7)。この再配置を、図24〜図26を参照して説明する。前記したように、再配置部112dは、第1の集団#1〜第3の集団#3にレコード群rg(集団U1b)を再配置した場合における各値を算出する。
図24は、第1の集団#1にレコード群rg(集団U1b)を再配置したときの(点線枠参照)、集団構成テーブルT31を示す。集団構成テーブルT31は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計(25.0)および集団間情報量の総合計(18.9)、評価値(43.9)を示す。
図25は、第2の集団#2にレコード群rg(集団U1b)を再配置したときの(点線枠参照)、集団構成テーブルT32を示す。集団構成テーブルT32は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計(23.7)および集団間情報量の総合計(21.1)、評価値(44.8)を示す。
図26は、第3の集団#3にレコード群rg(集団U1b)を再配置したときの(点線枠参照)、集団構成テーブルT33を示す。集団構成テーブルT33は、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計(27.1)および集団間情報量の総合計(21.1)、評価値(48.1)を示す。
再配置部112dは、図24〜図26に示したように、全レコードの集団内情報量および集団間情報量、各集団における集団内情報量の合計および集団間情報量の合計、集団内情報量の総合計および集団間情報量の総合計、評価値を算出しRAM102に記憶する。
図24に示したように、第1の集団#1にレコード群rg(集団U1b)を再配置したときの評価値が、最良(最小)である。この最小の評価値を、図24の吹き出し”最小”で示す。従って、再配置部112dは、第1の集団#1にレコード群rg(集団U1b)を再配置する(S7)。図24の集団構成テーブルT31の集団構成欄が、図13の集団構成テーブルT3の集団構成欄に対応する。
再配置部112dは、レコード集合Q1からレコード群rg(集団U1b)を除外する(S8)。レコード群rg(集団U1b)を除外したレコード集合Q1は、空集合である(S9のYES)。従って、再配置部112dは、S9でのYESと判定し、S10に移る。再配置部112dは、再配置後の評価値e(43.9)を算出する(S10)。
再配置部112dは、再配置後の評価値e(43.9)は、元の評価値e_pre(図14の評価値48.3参照)未満なので(S11のNO)、S12に移る。
再配置部112dは、S2〜S11のステップをR回(例えば、1回)繰り返したか判定する。図14〜図26の例では、再配置部112dは、S2〜S11のステップを1回実行しているので、S12でNOと判定し、S12でのYESと判定し、処理を終了する。
再配置部112dは、再配置後の集団を示す図26の集団構成テーブルT31を出力部113に入力する。出力部113は、図26の集団構成テーブルT31に示す集団欄に記憶した集団識別子と、この集団識別子により識別される集団に属するレコードを出力装置に出力する。すなわち、再配置部112dは、図26の集団構成テーブルT31に示す、集団欄に記憶した集団識別子と集団構成欄に記憶した分類されたレコードとを出力装置に出力する。
以上説明したように、本実施の形態のデータ分類装置1は、集団内情報量だけでなく、集団間情報量をも考慮した離散データの分類処理を実行している。その結果、分析者の目的を容易に達成できる最適な集団に離散データを分類できる。
また、本実施の形態のデータ分類装置1は、評価値の減少量が最も大きくなると概算できる1以上のレコードを選択し、選択した1つ以上のレコードを再配置用のレコードとしている(図12のS36、図15、図16参照)。
一方、再配置するレコード群をランダムに作成し、作成したレコード群を、評価値が最も小さくなるように集団(例えば、第1の集団#1〜第3の集団#3)に再配置する方法も考えられる。しかし、多数のレコードに対してかかる方法を実行すると、計算量が膨大になり、現実的ではない。これに対し、本実施の形態のデータ分類装置1は、評価値の減少量が最も大きくなると概算できる1以上のレコードを選択し、その後、選択した1以上のレコードを評価値が最も小さくなるように集団に再配置している。従って、計算量の増大を抑制でき、処理負荷を削減できる。
また、本実施の形態のデータ分類装置1は、再配置用のレコードを複数個選択することができる。そのため、異なる集団に属する同一変数値の数(共有数)がなるべく少なくなるように分類できる。
例えば、複数のレコードを含むレコード群が、ある集団に併合されてしまうと、図2〜図7で説明した一方法により離散データを分類した場合、異なる集団に属する同一変数値の数の増加を抑制できなくなる。その結果、ある集団に属する前記したレコード群を他の集団に配置することが困難になる。しかし、再配置用のレコードを複数個選択することができるので、前記した同一変数値の数の増加を抑制できる。
さらに、本実施の形態のデータ分類装置1は、再配置によって評価値を改善させることができないレコード群が、継続して再配置を行うことで評価値を改善させることができるか否かを判定する。これにより、データ分類装置1は、レコード群を再配置可能な集団の中に、レコード群の再配置を行うことにより評価値を改善させることができる集団が存在しない場合であっても、レコード群の再配置を継続することが可能になる。
また、本実施の形態のデータ分類装置1は、再配置によって評価値を改善させることができないものであって、継続して再配置を行っても長期的に評価値を改善できないレコード群については、再配置を行わない。これにより、データ分類装置1は、離散データに含まれる複数のレコードの分類を効率的に行うことが可能になる。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
複数の種類の変数値をそれぞれが含む複数のレコードを含むデータを取得する取得部と、
前記取得部により取得された前記データに含まれる複数のレコードを分類する分類部と、を有し、
前記分類部は、
前記複数のレコードのそれぞれが配置された複数のグループを生成する生成部と、
前記複数のグループに含まれる第1グループに配置された第1レコードを、前記複数のグループに含まれない新たなグループである第2グループに再配置した場合における前記複数のレコードの配置状況に基づく第1評価値と、前記第1グループに配置された各レコードを、前記第1グループまたは第2グループのいずれかに再配置した場合における前記複数のレコードの配置状況に基づく第2評価値とを算出する算出部と、
前記第1評価値及び前記第2評価値に基づき、前記第1レコードを再配置するか否かについての判定を行う判定部と、
前記第1レコードを前記再配置すると判定した場合、前記第1レコードの再配置を行う再配置部と、を有する、
ことを特徴とするデータ分類装置。
(付記2)
付記1において、
前記判定部は、
前記第2評価値から前記第1評価値を減算することにより第1減算値を算出し、
前記第1評価値から前記第1減算値を減算して算出した第2減算値が、前記複数のレコードの現在の配置状況に基づく第3評価値よりも小さい場合、前記第1レコードを再配置する旨の判定を行う、
ことを特徴とするデータ分類装置。
(付記3)
付記2において、
前記判定部は、前記第1評価値から、前記第1減算値の値に重み付け係数を乗算した値を減算することにより、前記第2減算値を算出する、
ことを特徴とするデータ分類装置。
(付記4)
付記1において、
前記算出部は、前記第1レコードを前記第2グループに再配置した場合における、前記複数のグループ及び前記第2グループを含むグループ毎であって前記複数のレコード毎の出現確率の逆数を算出し、前記複数のグループ及び前記第2のグループのうちの前記変数値のそれぞれを含むグループの数と、前記複数のグループ及び前記第2グループのうちのいずれかのグループに含まれる前記変数値の種類の数とに基づく共有値を前記変数値毎に算出し、算出した前記出現確率の逆数の総和と、算出した前記共有値の総和とを加算することにより、前記第1評価値を算出する、
ことを特徴とするデータ分類装置。
(付記5)
付記1において、
前記算出部は、前記第1グループに配置されたレコードを前記第1グループまたは第2グループのいずれかに再配置した場合における、前記複数のグループ及び前記第2グループを含むグループ毎であって前記複数のレコード毎の出現確率の逆数を算出し、前記複数のグループ及び前記第2のグループのうちの前記変数値のそれぞれを含むグループの数と、前記複数のグループ及び前記第2グループのうちのいずれかのグループに含まれる前記変数値の種類の数とに基づく共有値を前記変数値毎に算出し、前記出現確率の逆数の総和と前記共有値の総和とを加算することにより、前記第2評価値を算出する、
ことを特徴とするデータ分類装置。
(付記6)
付記4または5において、
前記算出部は、算出した前記出現確率の逆数の対数の合計を第1の合計として算出し、算出した前記共有値の対数の合計を第2の合計として算出し、前記第1の合計と前記第2の合計とを加算することにより、前記第1または第2評価値を算出する、
ことを特徴とするデータ分類装置。
(付記7)
付記1において、
前記算出部は、前記複数のグループ毎であって前記複数のレコード毎の出現確率の逆数を算出し、前記複数のグループのうちの前記変数値のそれぞれを含むグループの数と、前記複数のグループのうちのいずれかのグループに含まれる前記変数値の種類の数とに基づく共有値を前記変数値毎に算出し、算出した前記出現確率の逆数の総和と、算出した前記共有値の総和とを加算することにより、前記第3評価値を算出する、
ことを特徴とするデータ分類装置。
(付記8)
付記1において、
前記生成部は、前記複数のレコードの中から、共有して含まれる前記変数値の数が少なくなるように、Na(Naは2以上の整数)個のレコードをランダムに選択してNa個のグループを生成し、前記複数のグループ毎であって前記複数のレコード毎の前記出現確率が高くなるように、前記複数のレコードのうちの前記Na個のレコード以外のレコードを、前記Na個のグループにそれぞれ配置することにより、前記複数のグループの生成を行う、
ことを特徴とするデータ分類装置。
(付記9)
付記2において、
前記再配置部は、前記複数のグループのうち、前記第3評価値に対する、前記第1レコードを再配置した場合における配置状況に基づく第4評価値の減少量が最大になるグループに前記第1レコードを再配置する、
ことを特徴とするデータ分類装置。
(付記10)
複数の種類の変数値をそれぞれが含む複数のレコードを含むデータを取得し、
取得した前記データに含まれる複数のレコードを分類し、
前記分類では、
前記複数のレコードのそれぞれが配置された複数のグループを生成し、
前記複数のグループに含まれる第1グループに配置された第1レコードを、前記複数のグループに含まれない新たなグループである第2グループに再配置した場合における前記複数のレコードの配置状況に基づく第1評価値と、前記第1グループに配置された各レコードを、前記第1グループまたは第2グループのいずれかに再配置した場合における前記複数のレコードの配置状況に基づく第2評価値とを算出し、
前記第1評価値及び前記第2評価値に基づき、前記第1レコードを再配置するか否かについて判定し、
前記第1レコードを前記再配置すると判定した場合、前記第1レコードの再配置を行う、
ことを特徴とするデータ分類方法。
(付記11)
コンピュータに、
複数の種類の変数値をそれぞれが含む複数のレコードを含むデータを取得し、
取得した前記データに含まれる複数のレコードを分類する、
処理を実行させ、
前記分類では、
前記複数のレコードのそれぞれが配置された複数のグループを生成し、
前記複数のグループに含まれる第1グループに配置された第1レコードを、前記複数のグループに含まれない新たなグループである第2グループに再配置した場合における前記複数のレコードの配置状況に基づく第1評価値と、前記第1グループに配置された各レコードを、前記第1グループまたは第2グループのいずれかに再配置した場合における前記複数のレコードの配置状況に基づく第2評価値とを算出し、
前記第1評価値及び前記第2評価値に基づき、前記第1レコードを再配置するか否かについて判定し、
前記第1レコードを前記再配置すると判定した場合、前記第1レコードの再配置を行う、
ことを特徴とするデータ分類プログラム。