JP2000322262A - データ解析方法 - Google Patents
データ解析方法Info
- Publication number
- JP2000322262A JP2000322262A JP11129550A JP12955099A JP2000322262A JP 2000322262 A JP2000322262 A JP 2000322262A JP 11129550 A JP11129550 A JP 11129550A JP 12955099 A JP12955099 A JP 12955099A JP 2000322262 A JP2000322262 A JP 2000322262A
- Authority
- JP
- Japan
- Prior art keywords
- counter
- analysis method
- data analysis
- condition
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】P(A)またはP(B|A)が0になるような
ルールは、よいルールではないので、そのようなルール
に対しては十分なメモリを用意せずに、結果的に用意す
べき必要な全体メモリ量を減らす。 【解決手段】半分のメモリ量で、第1カウンタ記憶部1
02を実現し、N(A&B)が0以外になる条件Aにつ
いて改めて、第2カウンタ記憶部103を用意する。そ
の際には、第1カウンタ記憶部は解放する。
ルールは、よいルールではないので、そのようなルール
に対しては十分なメモリを用意せずに、結果的に用意す
べき必要な全体メモリ量を減らす。 【解決手段】半分のメモリ量で、第1カウンタ記憶部1
02を実現し、N(A&B)が0以外になる条件Aにつ
いて改めて、第2カウンタ記憶部103を用意する。そ
の際には、第1カウンタ記憶部は解放する。
Description
【0001】
【発明の属する技術分野】本発明は、大規模なデータの
解析を行う技術分野に属する。
解析を行う技術分野に属する。
【0002】さらに本発明は、データマイニングあるい
はデータウェアハウスの利用技術に関わる。
はデータウェアハウスの利用技術に関わる。
【0003】
【従来の技術】大規模なデータから、因果関係や規則性
を発見する場合の手法として、データマイニングと呼ば
れる技術がある。森田、前田、データマイニングサーバ
の開発と移動体通信業界への適用、電子情報通信学会信
学技報DE98−19(1998−10)(公知例1)
では、特徴的ルール生成方式を提案している。ここで
は、規則性をif A then Bのルールの形で抽
出する。Bは、「ある変数がある値をとる」という形で
表されており、あらかじめ指定し、その枠組でAを探索
する。
を発見する場合の手法として、データマイニングと呼ば
れる技術がある。森田、前田、データマイニングサーバ
の開発と移動体通信業界への適用、電子情報通信学会信
学技報DE98−19(1998−10)(公知例1)
では、特徴的ルール生成方式を提案している。ここで
は、規則性をif A then Bのルールの形で抽
出する。Bは、「ある変数がある値をとる」という形で
表されており、あらかじめ指定し、その枠組でAを探索
する。
【0004】Aは「ある変数がある値をとる」という
形、またはその論理積で表される。よりよいAを求める
ために、ルールif A then Bに対して評価関
数を定めており、P(A)とP(B|A)の関数となっ
ている。評価関数は、P(A)が大きいほどよいルール
であり、P(B|A)が大きいほどよいルールであるよ
うになっている。また、P(A)が0である場合、P
(B|A)が0である場合は意味のないルールであると
判定される評価関数となっている。
形、またはその論理積で表される。よりよいAを求める
ために、ルールif A then Bに対して評価関
数を定めており、P(A)とP(B|A)の関数となっ
ている。評価関数は、P(A)が大きいほどよいルール
であり、P(B|A)が大きいほどよいルールであるよ
うになっている。また、P(A)が0である場合、P
(B|A)が0である場合は意味のないルールであると
判定される評価関数となっている。
【0005】ここで、P(A)は、全レコードの中でA
を満たすレコードの割合を、P(B|A)はAを満たし
ているレコードがBを満たす割合をそれぞれ意味してい
る。ルールは指定された個数だけ出力される。この計算
のときに、候補となるすべてのルールに対応するカウン
タをメモリ内に持ち、レコードは読み捨てし、1パスの
読み込みで各ルールの評価に必要な値を収集できる。
を満たすレコードの割合を、P(B|A)はAを満たし
ているレコードがBを満たす割合をそれぞれ意味してい
る。ルールは指定された個数だけ出力される。この計算
のときに、候補となるすべてのルールに対応するカウン
タをメモリ内に持ち、レコードは読み捨てし、1パスの
読み込みで各ルールの評価に必要な値を収集できる。
【0006】
【発明が解決しようとする課題】上記従来の技術には以
下のような課題がある。
下のような課題がある。
【0007】公知例1では、すべてのルールのためのカ
ウンタをメモリに備えなければならないため、必要なメ
モリ量が大きいという課題がある。Bが固定なので、P
(A)とP(B|A)は独立変数となる。N(「ある条
件」)を、「ある条件」を満たすレコードの個数の表記
とする。またNを全レコード数とすると、 P(B|A)=N(A&B)/N(A) N(A)=N(A&B)+N(A&^B) P(A)=N(A)/N なので、ルールの評価関数を得るためのP(B|A)と
P(A)を得るためにはN(A&B)とN(A&^B)
をカウンタとして揃えることが必要十分となる。
ウンタをメモリに備えなければならないため、必要なメ
モリ量が大きいという課題がある。Bが固定なので、P
(A)とP(B|A)は独立変数となる。N(「ある条
件」)を、「ある条件」を満たすレコードの個数の表記
とする。またNを全レコード数とすると、 P(B|A)=N(A&B)/N(A) N(A)=N(A&B)+N(A&^B) P(A)=N(A)/N なので、ルールの評価関数を得るためのP(B|A)と
P(A)を得るためにはN(A&B)とN(A&^B)
をカウンタとして揃えることが必要十分となる。
【0008】ここで、^の記号は否定を表す。
【0009】したがって、すべてのルールについて、2
つずつの独立したメモリが必要になる。
つずつの独立したメモリが必要になる。
【0010】したがって、本発明の第1の目的は、計算
の際に必要なメモリ量を減らすことにある。
の際に必要なメモリ量を減らすことにある。
【0011】
【課題を解決するための手段】本発明は、P(A)また
はP(B|A)が0になるようなルールは意味がないの
でそのルールに対しては十分なメモリを用意せずに、結
果的に用意すべき必要な全体メモリ量を減らすものであ
る。
はP(B|A)が0になるようなルールは意味がないの
でそのルールに対しては十分なメモリを用意せずに、結
果的に用意すべき必要な全体メモリ量を減らすものであ
る。
【0012】P(A)が0になる条件は、N(A&B)
もN(A&^B)もともに0のときである。
もN(A&^B)もともに0のときである。
【0013】P(B|A)が0になる条件は、N(A)
が0でなく、N(A&B)が0のときである。N(A)
=N(A&B)+N(A&^B)に注意すれば、これ
は、N(A&B)が0で、かつ、N(A&^B)が0以
外のときである。
が0でなく、N(A&B)が0のときである。N(A)
=N(A&B)+N(A&^B)に注意すれば、これ
は、N(A&B)が0で、かつ、N(A&^B)が0以
外のときである。
【0014】以上より、P(A)またはP(B|A)が
0になる必要十分条件は、N(A&B)が0となる。
0になる必要十分条件は、N(A&B)が0となる。
【0015】したがって、N(A&B)=0となるルー
ルは最終的によいルールとして出力されないので、この
ルールに対するメモリは必要最小限にする。
ルは最終的によいルールとして出力されないので、この
ルールに対するメモリは必要最小限にする。
【0016】手順としては、N(A&B)のカウンタだ
けをメモリに用意し、最初にBが成り立つレコードだけ
を読む。次にN(A&B)が0以外になったものだけに
ついてN(A&^B)のカウンタを用意して、^Bが成
り立つレコードを読む。
けをメモリに用意し、最初にBが成り立つレコードだけ
を読む。次にN(A&B)が0以外になったものだけに
ついてN(A&^B)のカウンタを用意して、^Bが成
り立つレコードを読む。
【0017】以上によれば、N(A&B)が0以外にな
ったものについては、すべてのレコードについてN(A
&B)とN(A&^B)がカウントアップされるので、
目的とするルールの評価関数の計算は可能となる。この
とき、Bを満たすレコードを読むときに必要なメモリ量
は公知例1より半分になっており、^Bを満たすレコー
ドを読むときに必要なメモリ量は、N(A&B)=0を
満たすAが多ければ多いほど少なくなる。
ったものについては、すべてのレコードについてN(A
&B)とN(A&^B)がカウントアップされるので、
目的とするルールの評価関数の計算は可能となる。この
とき、Bを満たすレコードを読むときに必要なメモリ量
は公知例1より半分になっており、^Bを満たすレコー
ドを読むときに必要なメモリ量は、N(A&B)=0を
満たすAが多ければ多いほど少なくなる。
【0018】また、本発明は、最初にBが成り立つレコ
ードだけを読んだあと、N(A&B)が0以外になった
条件Aについて、さらに条件を細分化し、N(A&B)
とN(A&^B)のカウンタをすべてのレコードをもう
一度読みなおすことで計算しなおすものである。
ードだけを読んだあと、N(A&B)が0以外になった
条件Aについて、さらに条件を細分化し、N(A&B)
とN(A&^B)のカウンタをすべてのレコードをもう
一度読みなおすことで計算しなおすものである。
【0019】また、本発明は、最初にBが成り立つレコ
ードだけを読んだあと、N(A&B)が0以外になった
条件AについてのN(A&^B)の計算を複数の計算機
で分散処理するものである。
ードだけを読んだあと、N(A&B)が0以外になった
条件AについてのN(A&^B)の計算を複数の計算機
で分散処理するものである。
【0020】また、本発明は、最初にBが成り立つレコ
ードだけを読んだあと、N(A&B)が0以外になった
条件Aについて、さらに条件を細分化し、N(A&B)
とN(A&^B)の計算を複数の計算機で分散処理する
ものである。
ードだけを読んだあと、N(A&B)が0以外になった
条件Aについて、さらに条件を細分化し、N(A&B)
とN(A&^B)の計算を複数の計算機で分散処理する
ものである。
【0021】
【発明の実施の形態】以下、本発明の実施の形態の一例
を詳細に説明する。
を詳細に説明する。
【0022】図1に本発明の実施の形態の一例の構成図
を示す。
を示す。
【0023】本発明では、メモリ101、レコードデー
タ記憶装置105、入力装置106、出力装置107、
制御装置108が、通信線114を介して相互接続され
ている。さらに、メモリ101の内部には、第1カウン
タ記憶部102、第2カウンタ記憶部103、ワークメ
モリ104がある。また、制御装置108の内部には、
レコードデータ入出力制御部109、カウンタ生成制御
部110、カウンタ更新制御部111、カウンタ消去制
御部112、ルール選択制御部113がある。通信線1
14はネットワークまたはバスで実現されている。
タ記憶装置105、入力装置106、出力装置107、
制御装置108が、通信線114を介して相互接続され
ている。さらに、メモリ101の内部には、第1カウン
タ記憶部102、第2カウンタ記憶部103、ワークメ
モリ104がある。また、制御装置108の内部には、
レコードデータ入出力制御部109、カウンタ生成制御
部110、カウンタ更新制御部111、カウンタ消去制
御部112、ルール選択制御部113がある。通信線1
14はネットワークまたはバスで実現されている。
【0024】図3に、レコードデータ記憶装置105に
記憶されたレコードデータの形式の例を示す。縦方向に
レコードが示され、横方向にはそれぞれのレコードの項
目が示されている。本例は、顧客ごとの取引情報を示す
データである。
記憶されたレコードデータの形式の例を示す。縦方向に
レコードが示され、横方向にはそれぞれのレコードの項
目が示されている。本例は、顧客ごとの取引情報を示す
データである。
【0025】以下、図2に示すフローチャートを利用し
て本発明の実施の形態の一例の処理を説明する。
て本発明の実施の形態の一例の処理を説明する。
【0026】ステップ201では、入力装置106か
ら、データ解析の条件の入力を行う。出力されるルール
if A then BのBの入力が行われる。例えば
「顧客の契約状態=解約」などが有りえる。また、Aで
使える項目が入力される。例えば、「性別」、「年
齢」、「先月の取引金額」、「取引形態」などが入力さ
れる。
ら、データ解析の条件の入力を行う。出力されるルール
if A then BのBの入力が行われる。例えば
「顧客の契約状態=解約」などが有りえる。また、Aで
使える項目が入力される。例えば、「性別」、「年
齢」、「先月の取引金額」、「取引形態」などが入力さ
れる。
【0027】また、Aで使えるそれぞれの項目につい
て、値のバリエーションが入力される。
て、値のバリエーションが入力される。
【0028】例えば、「性別は男または女の2値」、
「年齢は10歳ごとに区切る」などが入力される。ま
た、Aでいくつまでの論理積を考慮するかが入力され
る。例えばこれが2であれば、Aには「ある条件かつあ
る条件」という2つの条件の論理積までが可能になる。
これらの情報は、ワークメモリ104に記憶される。
「年齢は10歳ごとに区切る」などが入力される。ま
た、Aでいくつまでの論理積を考慮するかが入力され
る。例えばこれが2であれば、Aには「ある条件かつあ
る条件」という2つの条件の論理積までが可能になる。
これらの情報は、ワークメモリ104に記憶される。
【0029】ステップ202では、第1カウンタの生成
を行う。第1カウンタの形式を図4に示す。図4に示す
ようにこれは1次元のデータ配列となっている。それぞ
れのデータは一つのルールif A then Bの条
件Aに対応している。Aは、「ある変数がある値をと
る」という形または、その形の論理積で表される。例え
ば、「性別が男」であるとか、「性別が女、かつ、年齢
が10代」のようなものになる。ここで、どのような条
件が生成されるかは、ステップ201でワークメモリ1
04に記憶された条件Aで使われる項目とその値のバリ
エーションと論理積の数の上限によって決まる。第1カ
ウンタはすべての条件の組み合わせを網羅するようにカ
ウンタ生成制御部110が作る。
を行う。第1カウンタの形式を図4に示す。図4に示す
ようにこれは1次元のデータ配列となっている。それぞ
れのデータは一つのルールif A then Bの条
件Aに対応している。Aは、「ある変数がある値をと
る」という形または、その形の論理積で表される。例え
ば、「性別が男」であるとか、「性別が女、かつ、年齢
が10代」のようなものになる。ここで、どのような条
件が生成されるかは、ステップ201でワークメモリ1
04に記憶された条件Aで使われる項目とその値のバリ
エーションと論理積の数の上限によって決まる。第1カ
ウンタはすべての条件の組み合わせを網羅するようにカ
ウンタ生成制御部110が作る。
【0030】論理積が条件1個までの場合は、「性別=
男」、「性別=女」、「年齢=0代」、「年齢=10
代」、・・というようにすべての項目についてすべての
値を網羅する。
男」、「性別=女」、「年齢=0代」、「年齢=10
代」、・・というようにすべての項目についてすべての
値を網羅する。
【0031】論理積が条件2個までのときには、異なる
二つの項目の間でのすべての値同士の組み合わせとな
る。
二つの項目の間でのすべての値同士の組み合わせとな
る。
【0032】論理積が条件3個以上のときも同様であ
る。
る。
【0033】これを、図4のように、N(A&B)のカ
ウンタ領域のみ作る。どの条件がどのカウンタ領域に対
応するかは、どの条件が最初から何番めのカウンタ領域
に対応するかの順序を決めておくことで実現する。すべ
ての項目に順序をつけ、さらにそのすべての項目のすべ
ての値に順序をつける。論理積の条件の個数が1の場合
から始め、例えば性別が第1の項目であり、男が第1の
値であれば、最初から1番目のカウンタ領域は「性別=
男」で、2番めのカウンタ領域は「性別=女」となる。
論理積の条件の個数が1の場合のカウンタ領域がすべて
終われば、その後に論理積の条件の個数が2の場合のカ
ウンタ領域を続ける。以上のようにすれば、それぞれの
カウンタ領域にこれがどの条件と対応しているかという
情報を持たせなくても、メモリのオフセットを計算すれ
ば条件に対応するカウンタにアクセスできることにな
る。
ウンタ領域のみ作る。どの条件がどのカウンタ領域に対
応するかは、どの条件が最初から何番めのカウンタ領域
に対応するかの順序を決めておくことで実現する。すべ
ての項目に順序をつけ、さらにそのすべての項目のすべ
ての値に順序をつける。論理積の条件の個数が1の場合
から始め、例えば性別が第1の項目であり、男が第1の
値であれば、最初から1番目のカウンタ領域は「性別=
男」で、2番めのカウンタ領域は「性別=女」となる。
論理積の条件の個数が1の場合のカウンタ領域がすべて
終われば、その後に論理積の条件の個数が2の場合のカ
ウンタ領域を続ける。以上のようにすれば、それぞれの
カウンタ領域にこれがどの条件と対応しているかという
情報を持たせなくても、メモリのオフセットを計算すれ
ば条件に対応するカウンタにアクセスできることにな
る。
【0034】ステップ203ではレコードデータの読み
込みを行う。レコードデータ入出力制御部109がレコ
ードデータ記憶装置105から、if A then
BのBを満たすレコードを一つ入力し、ワークメモリ1
04に記憶する。
込みを行う。レコードデータ入出力制御部109がレコ
ードデータ記憶装置105から、if A then
BのBを満たすレコードを一つ入力し、ワークメモリ1
04に記憶する。
【0035】ステップ204ではカウンタの更新を行
う。カウンタ更新制御部111は、ステップ203でワ
ークメモリ104に記憶されたレコードについて、対応
する第1カウンタを第1カウンタ記憶部102から選ん
で1ずつカウントアップする。
う。カウンタ更新制御部111は、ステップ203でワ
ークメモリ104に記憶されたレコードについて、対応
する第1カウンタを第1カウンタ記憶部102から選ん
で1ずつカウントアップする。
【0036】ステップ205ではレコードデータ入出力
制御部109が、レコードデータ記憶装置105から、
if A then BのBが成り立つすべてのレコー
ドを読んだかどうか判定する。読んだ場合にはステップ
206に移り、まだすべて読んでいない場合にはステッ
プ203に移る。
制御部109が、レコードデータ記憶装置105から、
if A then BのBが成り立つすべてのレコー
ドを読んだかどうか判定する。読んだ場合にはステップ
206に移り、まだすべて読んでいない場合にはステッ
プ203に移る。
【0037】ステップ206では、第2カウンタの生成
と第1カウンタの消去を行う。第2カウンタの形式を図
5に示す。条件とN(A&B)のカウンタとN(A&^
B)のカウンタが項目としてある。ここでは、すべての
条件が残らずに、課題を解決する手段の項で書いたよう
に、N(A&B)が0以外になった条件についてのみこ
のカウンタが生成される。したがって、第1カウンタの
ように考えられるすべての条件Aを網羅的に持たないの
で、ステップ202で述べたように条件とカウンタの順
番が対応するようにしておくことはできない。それぞれ
の第2カウンタについて、条件Aがどのような条件かを
示す領域が必要になる。第2カウンタに条件とN(A&
B)を第1カウンタからコピーした後に第1カウンタの
対応するメモリ領域を消去・解放できる。ここで、第2
カウンタの生成ならびに第1カウンタからの値のコピー
はカウンタ生成制御部110が行い、第1カウンタの消
去・解放はカウンタ消去制御部112が行う。
と第1カウンタの消去を行う。第2カウンタの形式を図
5に示す。条件とN(A&B)のカウンタとN(A&^
B)のカウンタが項目としてある。ここでは、すべての
条件が残らずに、課題を解決する手段の項で書いたよう
に、N(A&B)が0以外になった条件についてのみこ
のカウンタが生成される。したがって、第1カウンタの
ように考えられるすべての条件Aを網羅的に持たないの
で、ステップ202で述べたように条件とカウンタの順
番が対応するようにしておくことはできない。それぞれ
の第2カウンタについて、条件Aがどのような条件かを
示す領域が必要になる。第2カウンタに条件とN(A&
B)を第1カウンタからコピーした後に第1カウンタの
対応するメモリ領域を消去・解放できる。ここで、第2
カウンタの生成ならびに第1カウンタからの値のコピー
はカウンタ生成制御部110が行い、第1カウンタの消
去・解放はカウンタ消去制御部112が行う。
【0038】ステップ207ではレコードデータの読み
込みを行う。レコードデータ入出力制御部109がレコ
ードデータ記憶装置105から、if A then
BのBの否定である^Bを満たすレコードを一つ入力
し、ワークメモリ104に記憶する。
込みを行う。レコードデータ入出力制御部109がレコ
ードデータ記憶装置105から、if A then
BのBの否定である^Bを満たすレコードを一つ入力
し、ワークメモリ104に記憶する。
【0039】ステップ208ではカウンタの更新を行
う。カウンタ更新制御部111は、ステップ207でワ
ークメモリ104に記憶されたレコードについて、対応
する第2カウンタを第2カウンタ記憶部103から選ん
で、そのN(A&^B)のカウンタを1ずつカウントア
ップする。
う。カウンタ更新制御部111は、ステップ207でワ
ークメモリ104に記憶されたレコードについて、対応
する第2カウンタを第2カウンタ記憶部103から選ん
で、そのN(A&^B)のカウンタを1ずつカウントア
ップする。
【0040】ステップ209ではレコードデータ入出力
制御部109が、レコードデータ記憶装置105から、
if A then BのBの否定である^Bが成り立
つすべてのレコードを読んだかどうか判定する。読んだ
場合にはステップ210に移り、まだすべて読んでいな
い場合にはステップ207に移る。
制御部109が、レコードデータ記憶装置105から、
if A then BのBの否定である^Bが成り立
つすべてのレコードを読んだかどうか判定する。読んだ
場合にはステップ210に移り、まだすべて読んでいな
い場合にはステップ207に移る。
【0041】ステップ210ではルールの選択を行う。
ルール選択制御部113が、第2カウンタ記憶部103
のすべての第2カウンタの条件について出力対象とし
て、ワークメモリ104に対応する条件を記憶する。
ルール選択制御部113が、第2カウンタ記憶部103
のすべての第2カウンタの条件について出力対象とし
て、ワークメモリ104に対応する条件を記憶する。
【0042】ステップ211では出力装置107が、ス
テップ210でワークメモリ104に記憶された条件
と、それに対応するカウンタの値を第2カウンタ記憶部
103から読み出して出力する。
テップ210でワークメモリ104に記憶された条件
と、それに対応するカウンタの値を第2カウンタ記憶部
103から読み出して出力する。
【0043】この実施の形態によれば、if A th
en BのBが非常にまれに起こるような場合で、N
(A&B)が0になる条件Aが頻発するような場合に、
計算に必要なメモリが少なくて済む。また、レコードデ
ータ自体は1度の読み込みで計算が可能である。
en BのBが非常にまれに起こるような場合で、N
(A&B)が0になる条件Aが頻発するような場合に、
計算に必要なメモリが少なくて済む。また、レコードデ
ータ自体は1度の読み込みで計算が可能である。
【0044】また、この実施の形態は以下のように変更
して実施することも可能である。
して実施することも可能である。
【0045】第1に、ステップ201において、追加情
報として、ステップ211で出力するルールの条件をあ
らかじめ入力することが可能である。例えば、P(A)
の下限やP(B|A)の下限を入力してワークメモリ1
04に記憶する。ステップ210ではすべてのルールを
選択する代わりに、ワークメモリ104に記憶された条
件を満たす第2カウンタの条件についてのみ出力対象と
してワークメモリ104に対応する条件を記憶するよう
に変更して実施することも可能である。この変更例によ
れば、出力するルールを減らすことができ、指定された
条件に見合うルールのみを出力でき、より有用なルール
を分かりやすく提示できる。
報として、ステップ211で出力するルールの条件をあ
らかじめ入力することが可能である。例えば、P(A)
の下限やP(B|A)の下限を入力してワークメモリ1
04に記憶する。ステップ210ではすべてのルールを
選択する代わりに、ワークメモリ104に記憶された条
件を満たす第2カウンタの条件についてのみ出力対象と
してワークメモリ104に対応する条件を記憶するよう
に変更して実施することも可能である。この変更例によ
れば、出力するルールを減らすことができ、指定された
条件に見合うルールのみを出力でき、より有用なルール
を分かりやすく提示できる。
【0046】第2に、ステップ201において、追加情
報として、ステップ211で出力するルールの個数をあ
らかじめ入力することが可能である。例えば100個な
ど。この数値をMとしてワークメモリ104に記憶す
る。ステップ210では、ルール選択制御部113が第
2カウンタ記憶部103のすべての第2カウンタの条件
について、数1で示す評価関数の値を順に計算し、その
値が大きい上位M個の条件を抽出する。それには、ワー
クメモリ104に上位M個分の条件の記憶領域と評価関
数の記憶領域があればよい。この変更例によれば、よい
ルールを、指定された個数だけ出力することができる。
報として、ステップ211で出力するルールの個数をあ
らかじめ入力することが可能である。例えば100個な
ど。この数値をMとしてワークメモリ104に記憶す
る。ステップ210では、ルール選択制御部113が第
2カウンタ記憶部103のすべての第2カウンタの条件
について、数1で示す評価関数の値を順に計算し、その
値が大きい上位M個の条件を抽出する。それには、ワー
クメモリ104に上位M個分の条件の記憶領域と評価関
数の記憶領域があればよい。この変更例によれば、よい
ルールを、指定された個数だけ出力することができる。
【0047】
【数1】
【0048】第3に、ステップ206において第2カウ
ンタの生成と第1カウンタの消去を行う際に、第1カウ
ンタでN(A&B)が0でなかった条件をワークメモリ
104に記憶し、それぞれの条件におけるN(A&B)
のカウンタの値はいかなる領域にも保持せずにカウンタ
消去制御部112が第1カウンタ記憶部を消去・解放
し、その後にカウンタ生成制御部110がワークメモリ
104に記憶された条件を参照し、この条件をさらに細
かく分割した条件に対応する第2カウンタを第2カウン
タ記憶部103に生成するように変更して実施すること
も可能である。
ンタの生成と第1カウンタの消去を行う際に、第1カウ
ンタでN(A&B)が0でなかった条件をワークメモリ
104に記憶し、それぞれの条件におけるN(A&B)
のカウンタの値はいかなる領域にも保持せずにカウンタ
消去制御部112が第1カウンタ記憶部を消去・解放
し、その後にカウンタ生成制御部110がワークメモリ
104に記憶された条件を参照し、この条件をさらに細
かく分割した条件に対応する第2カウンタを第2カウン
タ記憶部103に生成するように変更して実施すること
も可能である。
【0049】例えば第1カウンタでN(A&B)が0で
なかった条件として、「年齢が10代」という条件があ
り、それがワークメモリ104に記憶されたとする。カ
ウンタ生成制御部110はこの条件を参照し、この条件
をさらに「年齢が10歳から14歳まで」と「年齢が1
5歳から19歳まで」の二つに分割する。この二つの条
件について第2カウンタを第2カウンタ記憶部103に
生成する。ここで、入力装置106から分割の方法を入
力するようにしておき、その結果を利用してカウンタ生
成制御部110が再分割の方法を決定するようにしてお
く。
なかった条件として、「年齢が10代」という条件があ
り、それがワークメモリ104に記憶されたとする。カ
ウンタ生成制御部110はこの条件を参照し、この条件
をさらに「年齢が10歳から14歳まで」と「年齢が1
5歳から19歳まで」の二つに分割する。この二つの条
件について第2カウンタを第2カウンタ記憶部103に
生成する。ここで、入力装置106から分割の方法を入
力するようにしておき、その結果を利用してカウンタ生
成制御部110が再分割の方法を決定するようにしてお
く。
【0050】入力装置106の画面例を図6に示す。数
直線において分割位置を任意個数だけ指定する。これに
より、第1カウンタより細かいカウンタを第2カウンタ
で実現する。第1カウンタのN(A&B)は対応する第
2カウンタがないのでコピーしない。第2カウンタの形
式は図5と同一である。また、この変更例では、ステッ
プ207では、レコードデータ入出力制御部109はレ
コードデータ記憶装置105から、if A then
BのBを満たすかどうかによらずすべてのレコードを
一つずつ入力し、ワークメモリ104に記憶する。
直線において分割位置を任意個数だけ指定する。これに
より、第1カウンタより細かいカウンタを第2カウンタ
で実現する。第1カウンタのN(A&B)は対応する第
2カウンタがないのでコピーしない。第2カウンタの形
式は図5と同一である。また、この変更例では、ステッ
プ207では、レコードデータ入出力制御部109はレ
コードデータ記憶装置105から、if A then
BのBを満たすかどうかによらずすべてのレコードを
一つずつ入力し、ワークメモリ104に記憶する。
【0051】ステップ208ではカウンタ更新制御部1
11は、ステップ207でワークメモリ104に記憶さ
れたレコードについて、第2カウンタを第2カウンタ記
憶部103から一つずつ選んで、A&Bが成り立ってい
ればN(A&B)を1だけカウントアップし、A&^B
が成り立っていればN(A&^B)を1だけカウントア
ップする。ステップ209ではレコードデータ入出力制
御部109が、レコードデータ記憶装置105から、す
べてのレコードを読んだかどうか判定する。読んだ場合
にはステップ210に移り、まだすべて読んでいない場
合にはステップ27に移る。この変更例については、第
1の変更例及び第2の変更例が重ねて実施できる。この
第3の変更例によれば、より少ないメモリ量でより細か
い条件でのルールの生成が効率良くできる。
11は、ステップ207でワークメモリ104に記憶さ
れたレコードについて、第2カウンタを第2カウンタ記
憶部103から一つずつ選んで、A&Bが成り立ってい
ればN(A&B)を1だけカウントアップし、A&^B
が成り立っていればN(A&^B)を1だけカウントア
ップする。ステップ209ではレコードデータ入出力制
御部109が、レコードデータ記憶装置105から、す
べてのレコードを読んだかどうか判定する。読んだ場合
にはステップ210に移り、まだすべて読んでいない場
合にはステップ27に移る。この変更例については、第
1の変更例及び第2の変更例が重ねて実施できる。この
第3の変更例によれば、より少ないメモリ量でより細か
い条件でのルールの生成が効率良くできる。
【0052】次に、本発明の第2の実施の形態について
詳細に説明する。
詳細に説明する。
【0053】図7に本発明の実施の形態の一例の構成図
を示す。
を示す。
【0054】本発明では、管理サーバA702、計算サ
ーバB703、計算サーバC704、計算サーバD70
5がネットワーク701に相互接続されている。計算サ
ーバB703と計算サーバC704と計算サーバD70
5は内部の構成は同様である。この例では計算サーバが
3台あるが、2台以上であれば何台であっても実施可能
である。
ーバB703、計算サーバC704、計算サーバD70
5がネットワーク701に相互接続されている。計算サ
ーバB703と計算サーバC704と計算サーバD70
5は内部の構成は同様である。この例では計算サーバが
3台あるが、2台以上であれば何台であっても実施可能
である。
【0055】次に管理サーバA702の構成図を図8に
示す。
示す。
【0056】本発明では、メモリ801、レコードデー
タ記憶装置806、入力装置807、出力装置808、
制御装置809、ネットワーク接続装置804が、通信
線805を介して相互接続されている。さらにネットワ
ーク接続装置804はネットワーク701に接続してい
る。さらに、メモリ801の内部には、第1カウンタ記
憶部802、ワークメモリ803がある。また、制御装
置809の内部には、レコードデータ入出力制御部81
0、カウンタ生成制御部811、カウンタ更新制御部8
12、分散計画制御部813、ルール選択制御部814
がある。通信線805はネットワークまたはバスで実現
されている。図3に、レコードデータ記憶装置806に
記憶されたレコードデータの形式の例を示す。縦方向に
レコードが示され、横方向にはそれぞれのレコードの項
目が示されている。本例は、顧客ごとの取引情報を示す
データである。
タ記憶装置806、入力装置807、出力装置808、
制御装置809、ネットワーク接続装置804が、通信
線805を介して相互接続されている。さらにネットワ
ーク接続装置804はネットワーク701に接続してい
る。さらに、メモリ801の内部には、第1カウンタ記
憶部802、ワークメモリ803がある。また、制御装
置809の内部には、レコードデータ入出力制御部81
0、カウンタ生成制御部811、カウンタ更新制御部8
12、分散計画制御部813、ルール選択制御部814
がある。通信線805はネットワークまたはバスで実現
されている。図3に、レコードデータ記憶装置806に
記憶されたレコードデータの形式の例を示す。縦方向に
レコードが示され、横方向にはそれぞれのレコードの項
目が示されている。本例は、顧客ごとの取引情報を示す
データである。
【0057】次に計算サーバの構成図を図9に示す。こ
れは、図7での計算サーバB703、計算サーバC70
4、計算サーバD705で共通の構成である。
れは、図7での計算サーバB703、計算サーバC70
4、計算サーバD705で共通の構成である。
【0058】本発明では、メモリ901、レコードデー
タ記憶装置906、制御装置907、ネットワーク接続
装置904が、通信線905を介して相互接続されてい
る。さらにネットワーク接続装置905はネットワーク
701に接続している。さらに、メモリ901の内部に
は、第2カウンタ記憶部902、ワークメモリ903が
ある。また、制御装置907の内部には、レコードデー
タ入出力制御部908、カウンタ生成制御部909、カ
ウンタ更新制御部910がある。通信線905はネット
ワークまたはバスで実現されている。図3に、レコード
データ記憶装置906に記憶されたレコードデータの形
式の例を示す。縦方向にレコードが示され、横方向には
それぞれのレコードの項目が示されている。本例は、顧
客ごとの取引情報を示すデータである。
タ記憶装置906、制御装置907、ネットワーク接続
装置904が、通信線905を介して相互接続されてい
る。さらにネットワーク接続装置905はネットワーク
701に接続している。さらに、メモリ901の内部に
は、第2カウンタ記憶部902、ワークメモリ903が
ある。また、制御装置907の内部には、レコードデー
タ入出力制御部908、カウンタ生成制御部909、カ
ウンタ更新制御部910がある。通信線905はネット
ワークまたはバスで実現されている。図3に、レコード
データ記憶装置906に記憶されたレコードデータの形
式の例を示す。縦方向にレコードが示され、横方向には
それぞれのレコードの項目が示されている。本例は、顧
客ごとの取引情報を示すデータである。
【0059】以下、図10に示すフローチャートを利用
して管理サーバAの実施の形態の一例の処理を説明す
る。
して管理サーバAの実施の形態の一例の処理を説明す
る。
【0060】ステップ1001では、入力装置807か
ら、データ解析の条件の入力を行う。出力されるルール
if A then BのBの入力が行われる。例えば
「顧客の契約状態=解約」などが有りえる。また、Aで
使える項目が入力される。例えば、「性別」、「年
齢」、「先月の取引金額」、「取引形態」などが入力さ
れる。また、Aで使えるそれぞれの項目について、値の
バリエーションが入力される。例えば、「性別は男また
は女の2値」、「年齢は10歳ごとに区切る」などが入
力される。また、Aでいくつまでの論理積を考慮するか
が入力される。例えばこれが2であれば、Aには「ある
条件かつある条件」という2つの条件の論理積までが可
能になる。これらの情報は、ワークメモリ803に記憶
される。
ら、データ解析の条件の入力を行う。出力されるルール
if A then BのBの入力が行われる。例えば
「顧客の契約状態=解約」などが有りえる。また、Aで
使える項目が入力される。例えば、「性別」、「年
齢」、「先月の取引金額」、「取引形態」などが入力さ
れる。また、Aで使えるそれぞれの項目について、値の
バリエーションが入力される。例えば、「性別は男また
は女の2値」、「年齢は10歳ごとに区切る」などが入
力される。また、Aでいくつまでの論理積を考慮するか
が入力される。例えばこれが2であれば、Aには「ある
条件かつある条件」という2つの条件の論理積までが可
能になる。これらの情報は、ワークメモリ803に記憶
される。
【0061】ステップ1002では、第1カウンタの生
成を行う。第1カウンタの形式を図4に示す。図4に示
すようにこれは1次元のデータ配列となっている。それ
ぞれのデータは一つのルールif A then Bの
条件Aに対応している。Aは、「ある変数がある値をと
る」という形または、その形の論理積で表される。例え
ば、「性別が男」であるとか、「性別が女、かつ、年齢
が10代」のようなものになる。ここで、どのような条
件が生成されるかは、ステップ1001でワークメモリ
803に記憶された条件Aで使われる項目とその値のバ
リエーションと論理積の数の上限によって決まる。第1
カウンタはすべての条件の組み合わせを網羅するように
カウンタ生成制御部811が作る。
成を行う。第1カウンタの形式を図4に示す。図4に示
すようにこれは1次元のデータ配列となっている。それ
ぞれのデータは一つのルールif A then Bの
条件Aに対応している。Aは、「ある変数がある値をと
る」という形または、その形の論理積で表される。例え
ば、「性別が男」であるとか、「性別が女、かつ、年齢
が10代」のようなものになる。ここで、どのような条
件が生成されるかは、ステップ1001でワークメモリ
803に記憶された条件Aで使われる項目とその値のバ
リエーションと論理積の数の上限によって決まる。第1
カウンタはすべての条件の組み合わせを網羅するように
カウンタ生成制御部811が作る。
【0062】論理積が条件1個までの場合は、「性別=
男」、「性別=女」、「年齢=0代」、「年齢=10
代」、・・というようにすべての項目についてすべての
値を網羅する。
男」、「性別=女」、「年齢=0代」、「年齢=10
代」、・・というようにすべての項目についてすべての
値を網羅する。
【0063】論理積が条件2個までのときには、異なる
二つの項目の間でのすべての値同士の組み合わせとな
る。
二つの項目の間でのすべての値同士の組み合わせとな
る。
【0064】論理積が条件3個以上のときも同様であ
る。
る。
【0065】これを、図4のように、N(A&B)のカ
ウンタ領域のみ作る。どの条件がどのカウンタ領域に対
応するかは、どの条件が最初から何番めのカウンタ領域
に対応するかの順序を決めておくことで実現する。すべ
ての項目に順序をつけ、さらにそのすべての項目のすべ
ての値に順序をつける。論理積の条件の個数が1の場合
から始め、例えば性別が第1の項目であり、男が第1の
値であれば、最初から1番目のカウンタ領域は「性別=
男」で、2番めのカウンタ領域は「性別=女」となる。
論理積の条件の個数が1の場合のカウンタ領域がすべて
終われば、その後に論理積の条件の個数が2の場合のカ
ウンタ領域を続ける。以上のようにすれば、それぞれの
カウンタ領域にこれがどの条件と対応しているかという
情報を持たせなくても、メモリのオフセットを計算すれ
ば条件に対応するカウンタにアクセスできることにな
る。
ウンタ領域のみ作る。どの条件がどのカウンタ領域に対
応するかは、どの条件が最初から何番めのカウンタ領域
に対応するかの順序を決めておくことで実現する。すべ
ての項目に順序をつけ、さらにそのすべての項目のすべ
ての値に順序をつける。論理積の条件の個数が1の場合
から始め、例えば性別が第1の項目であり、男が第1の
値であれば、最初から1番目のカウンタ領域は「性別=
男」で、2番めのカウンタ領域は「性別=女」となる。
論理積の条件の個数が1の場合のカウンタ領域がすべて
終われば、その後に論理積の条件の個数が2の場合のカ
ウンタ領域を続ける。以上のようにすれば、それぞれの
カウンタ領域にこれがどの条件と対応しているかという
情報を持たせなくても、メモリのオフセットを計算すれ
ば条件に対応するカウンタにアクセスできることにな
る。
【0066】ステップ1003ではレコードデータの読
み込みを行う。レコードデータ入出力制御部810がレ
コードデータ記憶装置806から、if A then
BのBを満たすレコードを一つ入力し、ワークメモリ
803に記憶する。
み込みを行う。レコードデータ入出力制御部810がレ
コードデータ記憶装置806から、if A then
BのBを満たすレコードを一つ入力し、ワークメモリ
803に記憶する。
【0067】ステップ1004ではカウンタの更新を行
う。カウンタ更新制御部812は、ステップ1003で
ワークメモリ803に記憶されたレコードについて、対
応する第1カウンタを第1カウンタ記憶部802から選
んで1ずつカウントアップする。
う。カウンタ更新制御部812は、ステップ1003で
ワークメモリ803に記憶されたレコードについて、対
応する第1カウンタを第1カウンタ記憶部802から選
んで1ずつカウントアップする。
【0068】ステップ1005ではレコードデータ入出
力制御部810が、レコードデータ記憶装置806か
ら、if A then BのBが成り立つすべてのレ
コードを読んだかどうか判定する。読んだ場合にはステ
ップ1006に移り、まだすべて読んでいない場合には
ステップ1003に移る。
力制御部810が、レコードデータ記憶装置806か
ら、if A then BのBが成り立つすべてのレ
コードを読んだかどうか判定する。読んだ場合にはステ
ップ1006に移り、まだすべて読んでいない場合には
ステップ1003に移る。
【0069】ステップ1006では分散処理の計画を行
う。計算サーバでは、管理サーバAで初めに用意したす
べての条件を用いずに、課題を解決する手段の項で書い
たように、N(A&B)が0以外になった条件について
のみカウンタが生成される。したがって、第1カウンタ
のように考えられるすべての条件Aを網羅的に持たない
ので、ステップ1002で述べたように条件とカウンタ
の順番が対応するようにしておくことはできない。第1
カウンタの計算以降の計算で用いるカウンタを第2カウ
ンタと呼ぶ。それぞれの第2カウンタについて、条件A
がどのような条件かを示す領域が必要になる。
う。計算サーバでは、管理サーバAで初めに用意したす
べての条件を用いずに、課題を解決する手段の項で書い
たように、N(A&B)が0以外になった条件について
のみカウンタが生成される。したがって、第1カウンタ
のように考えられるすべての条件Aを網羅的に持たない
ので、ステップ1002で述べたように条件とカウンタ
の順番が対応するようにしておくことはできない。第1
カウンタの計算以降の計算で用いるカウンタを第2カウ
ンタと呼ぶ。それぞれの第2カウンタについて、条件A
がどのような条件かを示す領域が必要になる。
【0070】第2カウンタの形式を図12に示す。計算
サーバは2個以上あるが、すべての計算サーバの内部に
同じ条件に対応する第2カウンタを用意し、レコードデ
ータを分割して配布する。処理性能に応じて、レコード
データの量を調整する。ここでは送られるデータは^B
を満たすレコードのみである。以上を分散計画制御部8
13が行う。
サーバは2個以上あるが、すべての計算サーバの内部に
同じ条件に対応する第2カウンタを用意し、レコードデ
ータを分割して配布する。処理性能に応じて、レコード
データの量を調整する。ここでは送られるデータは^B
を満たすレコードのみである。以上を分散計画制御部8
13が行う。
【0071】ステップ1007では管理サーバとすべて
の計算サーバ間の伝送を行う。
の計算サーバ間の伝送を行う。
【0072】伝送する内容は、第1カウンタでN(A&
B)が0以外になった条件すべてと、計算サーバごとに
割り振られたレコードデータである。ネットワーク接続
装置804を介して、さらに、ネットワーク701を介
して、それぞれの計算サーバに伝送がされる。さらに、
すべての計算サーバから計算結果を返送してもらう。計
算結果はワークメモリ803に記憶する。ワークメモリ
には、第2カウンタの記憶領域を確保しておく。ここで
は、図5の形式でメモリを確保しておく。すべての計算
サーバのカウンタN(A&^B)の結果を同じ条件のも
の同士で足しあわせる。N(A&B)は最初の管理サー
バの結果をコピーしておく。
B)が0以外になった条件すべてと、計算サーバごとに
割り振られたレコードデータである。ネットワーク接続
装置804を介して、さらに、ネットワーク701を介
して、それぞれの計算サーバに伝送がされる。さらに、
すべての計算サーバから計算結果を返送してもらう。計
算結果はワークメモリ803に記憶する。ワークメモリ
には、第2カウンタの記憶領域を確保しておく。ここで
は、図5の形式でメモリを確保しておく。すべての計算
サーバのカウンタN(A&^B)の結果を同じ条件のも
の同士で足しあわせる。N(A&B)は最初の管理サー
バの結果をコピーしておく。
【0073】ステップ1008ではすべての計算サーバ
から計算結果が返ってきたかどうかの判定を行う。返っ
てきた場合にはステップ1009に移り、返ってきてい
ない場合にはステップ1008に戻る。
から計算結果が返ってきたかどうかの判定を行う。返っ
てきた場合にはステップ1009に移り、返ってきてい
ない場合にはステップ1008に戻る。
【0074】ステップ1009ではルール選択を行う。
ルール選択制御部814がワークメモリ803のすべて
の第2カウンタの条件について、これを出力対象とし
て、ワークメモリ804に対応する条件を記憶する。
ルール選択制御部814がワークメモリ803のすべて
の第2カウンタの条件について、これを出力対象とし
て、ワークメモリ804に対応する条件を記憶する。
【0075】ステップ1010では出力装置808が、
ステップ1009でワークメモリ803に記憶された条
件と、それに対応するカウンタの値をワークメモリ80
3から読み出して出力する。
ステップ1009でワークメモリ803に記憶された条
件と、それに対応するカウンタの値をワークメモリ80
3から読み出して出力する。
【0076】次に、図11に示すフローチャートを利用
して計算サーバの実施の形態の一例の処理を説明する。
して計算サーバの実施の形態の一例の処理を説明する。
【0077】ステップ1101では管理サーバAから計
算サーバへの伝送を行う。伝送される内容は、管理サー
バの第1カウンタでN(A&B)が0以外になった条件
すべてと、この計算サーバに割り振られたレコードデー
タである。ネットワーク701、さらに、ネットワーク
接続装置904を介して管理サーバから伝送がされる。
条件は暫定的にワークメモリ903に記憶し、レコード
データはレコードデータ記憶装置906に記憶する。
算サーバへの伝送を行う。伝送される内容は、管理サー
バの第1カウンタでN(A&B)が0以外になった条件
すべてと、この計算サーバに割り振られたレコードデー
タである。ネットワーク701、さらに、ネットワーク
接続装置904を介して管理サーバから伝送がされる。
条件は暫定的にワークメモリ903に記憶し、レコード
データはレコードデータ記憶装置906に記憶する。
【0078】ステップ1102では第2カウンタの生成
を行う。第2カウンタの形式を図12に示す。条件とN
(A&^B)のカウンタが項目としてある。ここでは、
前述したように、管理サーバの第1カウンタで、N(A
&B)が0以外になった条件についてのみこのカウンタ
が生成される。第2カウンタの生成はカウンタ生成制御
部909が行う。
を行う。第2カウンタの形式を図12に示す。条件とN
(A&^B)のカウンタが項目としてある。ここでは、
前述したように、管理サーバの第1カウンタで、N(A
&B)が0以外になった条件についてのみこのカウンタ
が生成される。第2カウンタの生成はカウンタ生成制御
部909が行う。
【0079】ステップ1103ではレコードデータの読
み込みを行う。レコードデータ入出力制御部908がレ
コードデータ記憶装置906からレコードを一つ入力
し、ワークメモリ903に記憶する。
み込みを行う。レコードデータ入出力制御部908がレ
コードデータ記憶装置906からレコードを一つ入力
し、ワークメモリ903に記憶する。
【0080】ステップ1104ではカウンタの更新を行
う。カウンタ更新制御部910は、ステップ1103で
ワークメモリ903に記憶されたレコードについて、対
応する第2カウンタを第2カウンタ記憶部902から選
んで、そのN(A&^B)のカウンタを1ずつカウント
アップする。
う。カウンタ更新制御部910は、ステップ1103で
ワークメモリ903に記憶されたレコードについて、対
応する第2カウンタを第2カウンタ記憶部902から選
んで、そのN(A&^B)のカウンタを1ずつカウント
アップする。
【0081】ステップ1105ではレコードデータ入出
力制御部908が、レコードデータ記憶装置906から
すべてのレコードを読んだかどうか判定する。読んだ場
合にはステップ1106に移り、まだすべて読んでいな
い場合にはステップ1103に移る。
力制御部908が、レコードデータ記憶装置906から
すべてのレコードを読んだかどうか判定する。読んだ場
合にはステップ1106に移り、まだすべて読んでいな
い場合にはステップ1103に移る。
【0082】ステップ1106では管理サーバAへの結
果の伝送を行う。伝送する内容は、第2カウンタのN
(A&^B)の値である。
果の伝送を行う。伝送する内容は、第2カウンタのN
(A&^B)の値である。
【0083】この実施の形態によれば、if A th
en BのBが非常にまれに起こるような場合で、N
(A&B)が0になる条件Aが頻発するような場合に、
計算に必要なメモリが少なくて済む。また、分散処理の
ため、第2カウンタの計算が速くなる。
en BのBが非常にまれに起こるような場合で、N
(A&B)が0になる条件Aが頻発するような場合に、
計算に必要なメモリが少なくて済む。また、分散処理の
ため、第2カウンタの計算が速くなる。
【0084】また、この実施の形態は以下のように変更
して実施することも可能である。
して実施することも可能である。
【0085】第1に、ステップ1001において、追加
情報として、ステップ1010で出力するルールの条件
をあらかじめ入力することが可能である。例えば、P
(A)の下限やP(B|A)の下限を入力してワークメ
モリ803に記憶する。ステップ1009ではすべての
ルールを選択する代わりに、ワークメモリ803に記憶
された条件を満たす第2カウンタの条件についてのみ出
力対象としてワークメモリ803に対応する条件を記憶
するように変更して実施することも可能である。この変
更例によれば、出力するルールを減らすことができ、指
定された条件に見合うルールのみを出力でき、より有用
なルールを分かりやすく提示できる。
情報として、ステップ1010で出力するルールの条件
をあらかじめ入力することが可能である。例えば、P
(A)の下限やP(B|A)の下限を入力してワークメ
モリ803に記憶する。ステップ1009ではすべての
ルールを選択する代わりに、ワークメモリ803に記憶
された条件を満たす第2カウンタの条件についてのみ出
力対象としてワークメモリ803に対応する条件を記憶
するように変更して実施することも可能である。この変
更例によれば、出力するルールを減らすことができ、指
定された条件に見合うルールのみを出力でき、より有用
なルールを分かりやすく提示できる。
【0086】第2に、ステップ1001において、追加
情報として、ステップ1010で出力するルールの個数
をあらかじめ入力することが可能である。例えば100
個など。この数値をMとしてワークメモリ803に記憶
する。ステップ1009ではルール選択制御部814
が、すべての第2カウンタの条件について数1で示す評
価関数の値を順に計算し、その値が大きい上位M個の条
件を抽出する。それには、上位M個分の条件の記憶領域
と評価関数の記憶領域があればよい。この変更例によれ
ば、よいルールを、指定された個数だけ出力することが
できる。
情報として、ステップ1010で出力するルールの個数
をあらかじめ入力することが可能である。例えば100
個など。この数値をMとしてワークメモリ803に記憶
する。ステップ1009ではルール選択制御部814
が、すべての第2カウンタの条件について数1で示す評
価関数の値を順に計算し、その値が大きい上位M個の条
件を抽出する。それには、上位M個分の条件の記憶領域
と評価関数の記憶領域があればよい。この変更例によれ
ば、よいルールを、指定された個数だけ出力することが
できる。
【0087】第3に、ステップ1006において、第1
カウンタでN(A&B)が0以外になった条件をワーク
メモリ803に記憶し、これをさらに細かく分割した条
件で第2カウンタを生成するように変更して実施するこ
とも可能である。例えば第1カウンタでN(A&B)が
0でなかった条件として、「年齢が10代」という条件
があり、それがワークメモリ803に記憶されたとす
る。カウンタ生成制御部811はこの条件を参照し、こ
の条件をさらに「年齢が10歳から14歳まで」と「年
齢が15歳から19歳まで」の二つに分割する。
カウンタでN(A&B)が0以外になった条件をワーク
メモリ803に記憶し、これをさらに細かく分割した条
件で第2カウンタを生成するように変更して実施するこ
とも可能である。例えば第1カウンタでN(A&B)が
0でなかった条件として、「年齢が10代」という条件
があり、それがワークメモリ803に記憶されたとす
る。カウンタ生成制御部811はこの条件を参照し、こ
の条件をさらに「年齢が10歳から14歳まで」と「年
齢が15歳から19歳まで」の二つに分割する。
【0088】この二つの条件について第2カウンタをワ
ークメモリ803に生成する。第2カウンタの形式は図
5の通りである。ここで、入力装置807から分割の方
法を入力するようにしておき、その結果を利用してカウ
ンタ生成制御部811が再分割の方法を決定するように
しておく。入力装置807の画面例を図6に示す。数直
線において分割位置を任意個数だけ指定する。これによ
り、第1カウンタより細かいカウンタを第2カウンタで
実現する。また、ステップ1007では、N(A&B)
が0以外になった条件ではなく、第2カウンタの条件す
べてと、計算サーバごとに割り振られたレコードデータ
を管理サーバから計算サーバへ伝送する。また、ここで
伝送するレコードデータは、^Bを満たすレコードだけ
でなく、すべてのレコードである。
ークメモリ803に生成する。第2カウンタの形式は図
5の通りである。ここで、入力装置807から分割の方
法を入力するようにしておき、その結果を利用してカウ
ンタ生成制御部811が再分割の方法を決定するように
しておく。入力装置807の画面例を図6に示す。数直
線において分割位置を任意個数だけ指定する。これによ
り、第1カウンタより細かいカウンタを第2カウンタで
実現する。また、ステップ1007では、N(A&B)
が0以外になった条件ではなく、第2カウンタの条件す
べてと、計算サーバごとに割り振られたレコードデータ
を管理サーバから計算サーバへ伝送する。また、ここで
伝送するレコードデータは、^Bを満たすレコードだけ
でなく、すべてのレコードである。
【0089】さらに、計算サーバから返送してもらうデ
ータは、N(A&B)とN(A&^B)の両方である。
複数のサーバから返って来たデータは、N(A&B)と
N(A&^B)の両方とも、同じ条件のもの同士をワー
クメモリ803で足しあわせる。また、ステップ110
1では、管理サーバAから計算サーバへ伝送される内容
は、管理サーバの第2カウンタとして生成された条件す
べてと、この計算サーバに割り振られたレコードデータ
である。ステップ1102で生成される第2カウンタの
形式は図5の形式である。条件とN(A&B)のカウン
タとN(A&^B)のカウンタが項目としてある。
ータは、N(A&B)とN(A&^B)の両方である。
複数のサーバから返って来たデータは、N(A&B)と
N(A&^B)の両方とも、同じ条件のもの同士をワー
クメモリ803で足しあわせる。また、ステップ110
1では、管理サーバAから計算サーバへ伝送される内容
は、管理サーバの第2カウンタとして生成された条件す
べてと、この計算サーバに割り振られたレコードデータ
である。ステップ1102で生成される第2カウンタの
形式は図5の形式である。条件とN(A&B)のカウン
タとN(A&^B)のカウンタが項目としてある。
【0090】ステップ1104でのカウンタの更新で
は、カウンタ更新制御部910は、ステップ1103で
ワークメモリ903に記憶されたレコードについて、第
2カウンタを第2カウンタ記憶部902から一つずつ選
んで、A&Bが成り立っていればN(A&B)を1だけ
カウントアップし、A&^Bが成り立っていれば、N
(A&^B)を1だけカウントアップする。ステップ1
106で管理サーバAへ伝送する内容は、第2カウンタ
のN(A&B)とN(A&^B)の値である。この変更
例については、第1の変更例及び第2の変更例が重ねて
実施できる。この第3の変更例によれば、より少ないメ
モリ量でより細かい条件でのルールの生成が効率良くで
きる。
は、カウンタ更新制御部910は、ステップ1103で
ワークメモリ903に記憶されたレコードについて、第
2カウンタを第2カウンタ記憶部902から一つずつ選
んで、A&Bが成り立っていればN(A&B)を1だけ
カウントアップし、A&^Bが成り立っていれば、N
(A&^B)を1だけカウントアップする。ステップ1
106で管理サーバAへ伝送する内容は、第2カウンタ
のN(A&B)とN(A&^B)の値である。この変更
例については、第1の変更例及び第2の変更例が重ねて
実施できる。この第3の変更例によれば、より少ないメ
モリ量でより細かい条件でのルールの生成が効率良くで
きる。
【0091】第4に、分散処理を、第2カウンタはすべ
て同一にして、レコードを分散していたのを、第2カウ
ンタを分散して、レコードを同一にするように変更する
ことも可能である。ステップ1006で行う分散処理の
計画において、処理性能に応じて、第2カウンタを分割
する。レコードデータはすべてのレコードデータを送る
ように計画する。ステップ1007では、分割された第
2カウンタとすべてのレコードデータを伝送する。返送
してもらうときには、結果を足しあわせる必要はなく、
そのまま記憶する。この変更例は第1乃至第3の変更例
とも組み合わせられる。この変更例によれば、計算サー
バで必要なメモリがさらに少なくなる。第5に、計算サ
ーバのレコードデータ記憶装置906はその実体は管理
サーバAのレコードデータ記憶装置806と同一という
構成も実施可能である。その際には、ステップ1007
における伝送、ステップ1101における伝送において
レコードデータの伝送は不要になる。この変更例によれ
ば、ネットワーク転送量を減らすことができる。
て同一にして、レコードを分散していたのを、第2カウ
ンタを分散して、レコードを同一にするように変更する
ことも可能である。ステップ1006で行う分散処理の
計画において、処理性能に応じて、第2カウンタを分割
する。レコードデータはすべてのレコードデータを送る
ように計画する。ステップ1007では、分割された第
2カウンタとすべてのレコードデータを伝送する。返送
してもらうときには、結果を足しあわせる必要はなく、
そのまま記憶する。この変更例は第1乃至第3の変更例
とも組み合わせられる。この変更例によれば、計算サー
バで必要なメモリがさらに少なくなる。第5に、計算サ
ーバのレコードデータ記憶装置906はその実体は管理
サーバAのレコードデータ記憶装置806と同一という
構成も実施可能である。その際には、ステップ1007
における伝送、ステップ1101における伝送において
レコードデータの伝送は不要になる。この変更例によれ
ば、ネットワーク転送量を減らすことができる。
【0092】
【発明の効果】以上述べたように、本発明によれば、計
算の際に必要なメモリ量を減らすことにができる。ま
た、分散処理により、処理の高速化が図れる。
算の際に必要なメモリ量を減らすことにができる。ま
た、分散処理により、処理の高速化が図れる。
【図1】本発明の実施の形態であるデータ解析の一例を
示す構成図。
示す構成図。
【図2】本発明の実施の形態の一例のフローチャート。
【図3】レコードデータの形式を示す図。
【図4】第1カウンタの形式を示す図。
【図5】第2カウンタの形式その1を示す図。
【図6】条件細分化の入力画面例を示す図。
【図7】分散処理の実施の形態の一例の構成図。
【図8】管理サーバの構成図。
【図9】計算サーバの構成図。
【図10】管理サーバの処理のフローチャート。
【図11】計算サーバの処理のフローチャート。
【図12】第2カウンタの形式その2を示す図。
101…メモリ、102…第1カウンタ記憶部、103
…第2カウンタ記憶部、104…ワークメモリ、105
…レコードデータ記憶装置、106…入力装置、107
…出力装置、108…制御装置、109…レコードデー
タ入出力制御部、110…カウンタ生成制御部、111
…カウンタ更新制御部、112…カウンタ消去制御部、
113…ルール選択制御部、114…通信線、701…
ネットワーク、702…管理サーバA、703…計算サ
ーバB、704…計算サーバC、705…計算サーバ
D、801…メモリ、802…第1カウンタ記憶部、8
03…ワークメモリ、804…ネットワーク接続装置、
805…通信線、806…レコードデータ記憶装置、8
07…入力装置、808…出力装置、809…制御装
置、810…レコードデータ入出力制御部、811…カ
ウンタ生成制御部、812…カウンタ更新制御部、81
3…分散計画制御部、814…ルール選択制御部、90
1…メモリ、902…第2カウンタ記憶部、903…ワ
ークメモリ、904…ネットワーク接続装置、905…
通信線、906…レコードデータ記憶装置、907…制
御装置、908…レコードデータ入出力制御部、909
…カウンタ生成制御部、910…カウンタ更新制御部。
…第2カウンタ記憶部、104…ワークメモリ、105
…レコードデータ記憶装置、106…入力装置、107
…出力装置、108…制御装置、109…レコードデー
タ入出力制御部、110…カウンタ生成制御部、111
…カウンタ更新制御部、112…カウンタ消去制御部、
113…ルール選択制御部、114…通信線、701…
ネットワーク、702…管理サーバA、703…計算サ
ーバB、704…計算サーバC、705…計算サーバ
D、801…メモリ、802…第1カウンタ記憶部、8
03…ワークメモリ、804…ネットワーク接続装置、
805…通信線、806…レコードデータ記憶装置、8
07…入力装置、808…出力装置、809…制御装
置、810…レコードデータ入出力制御部、811…カ
ウンタ生成制御部、812…カウンタ更新制御部、81
3…分散計画制御部、814…ルール選択制御部、90
1…メモリ、902…第2カウンタ記憶部、903…ワ
ークメモリ、904…ネットワーク接続装置、905…
通信線、906…レコードデータ記憶装置、907…制
御装置、908…レコードデータ入出力制御部、909
…カウンタ生成制御部、910…カウンタ更新制御部。
Claims (18)
- 【請求項1】複数の項目の値を記述したレコードを複数
集めたデータから、項目の値同士の関係をif A t
hen Bのルールの形で求める解析方法であって、レ
コードを記憶する手段と、解析の条件を入力する手段と
得られたルールを出力する手段と、すべての項目の値の
組み合わせの生起回数を計数する第1カウンタと第1カ
ウンタの結果から有用であると判断された項目の値の組
み合わせの生起回数を計数する第2カウンタと、カウン
タを生成する手段と、カウンタを更新する手段と、カウ
ンタを消去する手段と、ルールを選択する手段とを持つ
ことを特徴とするデータ解析方法。 - 【請求項2】請求項1記載のデータ解析方法において、
ルールを選択する手段は、第2カウンタで選ばれたすべ
てのルールを選択することを特徴とするデータ解析方
法。 - 【請求項3】請求項1記載のデータ解析方法において、
解析の条件を入力する手段は、ルールの前件部の生起確
率とルールの前件部が成り立った場合に後件部が成り立
つ条件付き確率のうち、少なくとも一つについて条件を
入力し、ルールを選択する手段は、上記条件を満たすル
ールを選択することを特徴とするデータ解析方法。 - 【請求項4】請求項1記載のデータ解析方法において、
解析の条件を入力する手段は、ルールの個数を入力し、
ルールを選択する手段は、ルールの良さを評価する評価
関数によって、よいルールを上記個数だけ選択すること
を特徴とするデータ解析方法。 - 【請求項5】請求項1乃至4のいずれか1項記載のデー
タ解析方法において、第1カウンタはAかつBの成り立
つ個数についてのカウンタであり、第2カウンタは第1
カウンタでAかつBの成り立つ個数が0以外であった項
目の値の組み合わせについてのみ用意されたカウンタで
あり、カウンタを更新する手段は、第1カウンタについ
てはBの成り立つレコードのみについてカウンタを更新
し、第2カウンタについてはBが成り立たないレコード
のみについてカウンタを更新することを特徴とするデー
タ解析方法。 - 【請求項6】請求項1乃至4のいずれか1項記載のデー
タ解析方法において、第1カウンタはAかつBの成り立
つ個数についてのカウンタであり、解析の条件を入力す
る手段は、第1カウンタでAかつBの成り立つ個数が0
以外であった項目の値の組み合わせについて、条件Aを
細分化する条件を入力し、第2カウンタは上記細分化さ
れた条件について用意されたカウンタであり、カウンタ
を更新する手段は、第1カウンタについてはBの成り立
つレコードのみについてカウンタを更新し、第2カウン
タについてはBの成立・不成立にかかわらずすべてのレ
コードについてカウンタを更新することを特徴とするデ
ータ解析方法。 - 【請求項7】複数の項目の値を記述したレコードを複数
集めたデータから、項目の値同士の関係をif A t
hen Bのルールの形で求める解析方法であって、管
理サーバと複数の計算サーバによる分散処理を行う解析
方法であって、管理サーバにおいては、レコードを記憶
する手段と、解析の条件を入力する手段と得られたルー
ルを出力する手段と、すべての項目の値の組み合わせの
生起回数を計数する第1カウンタと、カウンタを生成す
る手段と、カウンタを更新する手段と、分散処理を計画
する手段と、ルールを選択する手段と、ネットワークと
接続する手段とを持ち、計算サーバにおいては、レコー
ドを記憶する手段と、管理サーバの第1カウンタの結果
から有用であると判断された項目の値の組み合わせの生
起回数を計数する第2カウンタとカウンタを生成する手
段と、カウンタを更新する手段と、ネットワークと接続
する手段とを持つことを特徴とするデータ解析方法。 - 【請求項8】請求項7記載のデータ解析方法において、
ルールを選択する手段は、第2カウンタで選ばれたすべ
てのルールを選択することを特徴とするデータ解析方
法。 - 【請求項9】請求項7記載のデータ解析方法において、
解析の条件を入力する手段は、ルールの前件部の生起確
率とルールの前件部が成り立った場合に後件部が成り立
つ条件付き確率のうち、少なくとも一つについて条件を
入力し、ルールを選択する手段は、上記条件を満たすル
ールを選択することを特徴とするデータ解析方法。 - 【請求項10】請求項7記載のデータ解析方法におい
て、解析の条件を入力する手段は、ルールの個数を入力
し、ルールを選択する手段は、ルールの良さを評価する
評価関数によって、よいルールを上記個数だけ選択する
ことを特徴とするデータ解析方法。 - 【請求項11】請求項7乃至10のいずれか1項記載の
データ解析方法において、第1カウンタはAかつBの成
り立つ個数についてのカウンタであり、第2カウンタは
第1カウンタでAかつBの成り立つ個数が0以外であっ
た項目の値の組み合わせについてのみ用意されたカウン
タであり、管理サーバのカウンタを更新する手段は、第
1カウンタについてはBの成り立つレコードのみについ
てカウンタを更新し、計算サーバの第2カウンタについ
てはBが成り立たないレコードのみについてカウンタを
更新することを特徴とするデータ解析方法。 - 【請求項12】請求項7乃至10のいずれか1項記載の
データ解析方法において、第1カウンタはAかつBの成
り立つ個数についてのカウンタであり、解析の条件を入
力する手段は、第1カウンタでAかつBの成り立つ個数
が0以外であった項目の値の組み合わせについて、条件
Aを細分化する条件を入力し、第2カウンタは上記細分
化された条件について用意されたカウンタであり、管理
サーバのカウンタを更新する手段は、第1カウンタにつ
いてはBの成り立つレコードのみについてカウンタを更
新し、計算サーバの第2カウンタについてはBの成立・
不成立にかかわらずすべてのレコードについてカウンタ
を更新することを特徴とするデータ解析方法。 - 【請求項13】請求項7乃至12のいずれか1項記載の
データ解析方法において、分散処理を計画する手段は、
複数の計算サーバにレコードを分散して配布し、第2カ
ウンタは分散しないことを特徴とするデータ解析方法。 - 【請求項14】請求項7乃至12のいずれか1項記載の
データ解析方法において、分散処理を計画する手段は、
複数の計算サーバに第2カウンタを分散して配布し、レ
コードは分散しないで、すべて同じものを用意すること
を特徴とするデータ解析方法。 - 【請求項15】請求項7乃至14のいずれか1項記載の
データ解析方法において、管理サーバのレコードを記憶
する手段と計算サーバのレコードを記憶する手段とが実
際には同一であることを特徴とするデータ解析方法。 - 【請求項16】請求項1乃至15のいずれか1項記載の
データ解析方法をプログラムに記憶し、コンピュータで
読み取り可能な媒体であることを特徴とするデータ解析
方法。 - 【請求項17】請求項1乃至15のいずれか1項記載の
データ解析方法をプログラムに記憶し、コンピュータで
読み取り可能なようにし、それをネットワークを通じて
配布するシステムであることを特徴とするデータ解析方
法。 - 【請求項18】請求項1乃至15のいずれか1項記載の
データ解析方法をプログラムに記憶し、実行する装置で
あることを特徴とするデータ解析方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11129550A JP2000322262A (ja) | 1999-05-11 | 1999-05-11 | データ解析方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11129550A JP2000322262A (ja) | 1999-05-11 | 1999-05-11 | データ解析方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000322262A true JP2000322262A (ja) | 2000-11-24 |
Family
ID=15012291
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11129550A Pending JP2000322262A (ja) | 1999-05-11 | 1999-05-11 | データ解析方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000322262A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002163274A (ja) * | 2000-11-28 | 2002-06-07 | Nippon Telegr & Teleph Corp <Ntt> | アイテム属性フィルタリング方法、アイテム属性フィルタリング装置及び記録媒体 |
-
1999
- 1999-05-11 JP JP11129550A patent/JP2000322262A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002163274A (ja) * | 2000-11-28 | 2002-06-07 | Nippon Telegr & Teleph Corp <Ntt> | アイテム属性フィルタリング方法、アイテム属性フィルタリング装置及び記録媒体 |
| JP3466152B2 (ja) | 2000-11-28 | 2003-11-10 | 日本電信電話株式会社 | アイテム属性フィルタリング方法、アイテム属性フィルタリング装置及び記録媒体 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10410258B2 (en) | Graphical user interface for high volume data analytics | |
| CN109299169B (zh) | 数据可视化方法、系统、终端及计算机可读存储介质 | |
| EP0657830B1 (en) | Method and apparatus for data management | |
| US20190391990A1 (en) | Using ray intersection lists to visualize data points bounded by geometric regions | |
| US20020070953A1 (en) | Systems and methods for visualizing and analyzing conditioned data | |
| CN113220945B (zh) | 一种用于数据血缘的字段检索和路径展示的方法及系统 | |
| JP2016516246A (ja) | 個別のデータ値に対する効率よい演算を行うための方法、装置、並びにコンピュータ可読媒体 | |
| JP2013149277A (ja) | 圧縮データの構造を問い合わせる方法 | |
| CN112364021B (zh) | 业务数据处理方法、装置及存储介质 | |
| US10657680B2 (en) | Simplified point-in-polygon test for processing geographic data | |
| US5649113A (en) | Method and system for translating an optimization problem for use in efficient resource allocation | |
| CN118982256B (zh) | 一种基于大数据的bi决策管理系统和方法 | |
| EP4002151A1 (en) | Data tagging and synchronisation system | |
| US5720023A (en) | Appartus and method for storing diagram data | |
| EP3759665A1 (en) | Multi-dimensional organization of data for efficient analysis | |
| CN117874120A (zh) | 基于数据虚拟化的智能数据集成方法及系统 | |
| CN120744333B (zh) | 一种结合ai的多维数据集分析处理方法及系统 | |
| US20040205657A1 (en) | Method and system for linking project information | |
| CN118411174A (zh) | 工单管理方法、装置、计算机设备和存储介质 | |
| US9582782B2 (en) | Discovering a reporting model from an existing reporting environment | |
| JP4038255B2 (ja) | 大規模データ分析方法 | |
| JP4772506B2 (ja) | 情報処理方法、情報処理システムおよびプログラム | |
| JP3952043B2 (ja) | 分析装置 | |
| JPH09292986A (ja) | 部品抽出方法 | |
| CN110109994A (zh) | 包含结构化和非结构化数据的汽车金融风控模型 |