JPH10307828A - クラスタリング処理方法およびクラスタリング処理システム - Google Patents

クラスタリング処理方法およびクラスタリング処理システム

Info

Publication number
JPH10307828A
JPH10307828A JP9114553A JP11455397A JPH10307828A JP H10307828 A JPH10307828 A JP H10307828A JP 9114553 A JP9114553 A JP 9114553A JP 11455397 A JP11455397 A JP 11455397A JP H10307828 A JPH10307828 A JP H10307828A
Authority
JP
Japan
Prior art keywords
record
storage device
buffer
records
file
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
Application number
JP9114553A
Other languages
English (en)
Inventor
Tsuneko Hagiwara
つね子 萩原
Riichiro Take
理一郎 武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP9114553A priority Critical patent/JPH10307828A/ja
Publication of JPH10307828A publication Critical patent/JPH10307828A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 処理の対象となるデータあるいはその処理に
必要な中間データが主記憶に乗り切らなくてもクラスタ
リング処理をできるようにすること。 【解決手段】 2次記憶装置20上に、処理の対象とな
るレコードを格納するファイル6と、チェーンデータを
保存する一時ファイル17を設け、また、主記憶装置1
0上に、上記レコードの一部を格納する入力バッファ
2、出力バッファ3と、上記ファイル6に格納される各
レコードを管理するレコード管理情報4と、チェーンデ
ータを格納するチェーンバッファ5とを設ける。クラス
タリング処理部1は処理を行うに際し、処理に必要なレ
コードが主記憶装置上ないとき、ファイル6から上記レ
コードを含むレコードを入力バッファに読み込んで処理
を行い、また、出力バッファが一杯になったら、出力バ
ッファに格納されたレコードをファイル6に保存し、処
理結果のレコードを出力バッファに格納する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ベクトルの形式で
記述されたデータ群を、類似するもの同士をまとめて塊
(クラスタ)を作る処理、すなわちクリスタリング処理
を行う処理方法およびクラスタリング処理システムに関
する。このように処理は、大量データがあり、その中に
構造を発見したいときに有効である。利用分野として
は、科学技術分野での恒星のデータベースを類似する複
数のクラスタに分類する処理や、事務処理分野での顧客
のプロフィール情報に従って顧客を分類する処理などが
考えられる。
【0002】
【従来の技術】クラスタリング処理方法としては、例え
ば、Ed.W.B.Frankers and R.Baeza-Yaters,Prentice Ha
ll,1992 「Information Retrieval:Data Structure & A
lgorithms 」(参考文献1)に示される様々な手法が提
案されている。これらの中で実際に多く使われるのは、
例えば、H.C.Romesburg,共訳 西田英郎・佐藤嗣二・内
田老鶴圃,1992 「実例クラスター分析」(参考文献2)
に示されるように、階層クラスタリング手法に分類され
る手法、特に、Group Avarage法とWar
d法である。
【0003】
【発明が解決しようとする課題】上記したGroup
Avarage法とWard法は、主記憶上での処理を
前提としている。これらの手法を利用するには、クラス
タリング処理の対象となるデータ或いは同処理に必要な
中間データが主記憶に乗ることになる。しかし、近年、
大規模なデータベース中に蓄えられた大量のデータをク
ラスタリング処理の対象とするケースが出てきている。
その場合、クラスタリング処理を行う計算機に大量の主
記憶を用意する必要があり、コストが高くなる。また、
システムが許す最大の主記憶を実装してもクラスタリン
グ処理を行うのに足りない場合は、クラスタリング処理
を諦めなければならない。
【0004】本発明は上記した事情を考慮してなされた
ものであって、その目的とするところは、クラスタリン
グ処理の対象となるデータあるいはその処理に必要な中
間データが主記憶に乗り切らなくてもクラスタリング処
理を行うことができるクラスタリング処理方法およびク
ラスタリング処理システムを提供することである。
【0005】
【課題を解決するための手段】本発明は、上記したWa
rd法、特に前記した参考文献1のP435〜P436
に記載されるReciprocal Nearest Neighbour法(以下R
NN法という)による実現をそのベースとして用いてお
り、以下、上記手法によるクラスタリング処理について
簡単に説明する。Ward法のRNN法による実装で
は、以下の手順でクラスタリング処理を行う。ここで
は、クラスタリングの処理の対象となるデータは全て主
記憶上に乗っているとする。また、データはレコードの
集合として表現されているとする。各レコードは処理対
象ベクトルと同次元のベクトル情報と、そのレコードが
代表するベクトルの数と、そのレコードが代表するベク
トル群の分散を保持する。初期状態では、処理対象のベ
クトル数と同数のレコードが存在し、そのレコード群は
処理対象ベクトルと1対1に対応し、表現するベクトル
の数は1であり、表現するベクトル間の分散は0であ
る。
【0006】(1)任意のレコードを一つ選びv1とす
る。 (2)v1とv1以外のレコードとの距離を、例えば前記し
た参考文献1の定義に従って計算し、v1と最も距離が近
いものをv2とする。 (3)v1からv2へチェーンを張る。 (4)v2とv2以外のレコードとの距離を、上記(2)と
同様に計算し、v2と最も近いものをv3とする。 (5)v2からv3にチェーンを張る。 (6)v1とv3が同じレコードを表しているかどうかチェ
ックする。これが同じレコードなら、下記の(8)に飛
ぶ。また、同じレコードでなければ、次の(7)に進
む。 (7)v2をv1とし、v3をv2とし、上記(4)へ飛ぶ。 (8)v1とv2を、例えば前記した参考文献1の定義に従
ってマージし、v1をその結果で置き換える。 (9)残りのレコードが2個以上あるなら、上記(1)
へ飛ぶ。無ければ終了する。
【0007】以上のように、互いに最近傍のレコード同
士をマージし、さらに、互いに最近傍にあるレコードと
マージされたレコード同士、もしくは、マージされたレ
コード同士をマージしていくことにより、最終的にレコ
ードを複数のクラスタに分類することができる。なお、
実際の応用においては、上記流れの通りに動作すると、
クラスタリング処理の経緯が記録として残らないので、
上記(8)の処理の中で、どの2つのレコードをマージ
したかを何らかの形で外部に報告する様にする。しか
し、これはクラスタリング処理の本質ではないので、上
記説明ではその動作を省いている。
【0008】本発明は上記処理を、レコード群が外部記
憶装置等の2次記憶装置上に存在する場合にも動作する
ように拡張したものであり、クラスタリング処理の対象
となるレコードあるいは同処理に必要な中間データを2
次記憶装置上に置き、主記憶装置上には、レコードの一
部とそのデータを管理するデータを置き、上記クスタリ
ング処理を行う。これにより、クラスタリング処理の対
象となるレコードあるいは同処理に必要な中間データの
全てが主記憶装置上に乗り切らなくても処理を完了する
ことができる。
【0009】図1は本発明の原理説明図である。本発明
においては、上記したように2次記憶装置20上に、処
理の対象となるレコードを格納するファイル6と、チェ
ーンバッファのチェーンデータを保存する一時ファイル
7を設け、また、主記憶装置10上に上記レコードのク
ラスタリング処理を行うクラスタリング処理部1と、上
記レコードの一部を格納する入力バッファ2および出力
バッファ3と、上記2次記憶装置上のファイルに格納さ
れる各レコードに1対1に対応したレコード管理情報4
と、チェーン情報を格納するチェーンバッファ5とを設
ける。
【0010】そして、クラスタリング処理部1が上記ク
ラスタリング処理を行うに際し、処理に必要なレコード
が主記憶装置10上のバッファ2,3にないとき、2次
記憶装置20上のファイル6から上記レコードを含む一
連のレコードを入力バッファ2に読み込んで処理を行
い、また、上記処理の結果得られたレコードを出力バッ
ファ3に格納するとき、出力バッファ3が一杯になった
ら、出力バッファ3に格納されたレコードを上記2次記
憶装置20上のファイル6に保存したのち、上記レコー
ドを出力バッファ3に格納することにより、上記レコー
ドのクラスタリング処理を行うようにしたものである。
【0011】また、処理の対象となるレコード数が多
く、主記憶装置10上にチェーンバッファ5の領域を確
保できない場合には、2次記憶装置20上にチェーンバ
ッファ5のデータを格納する一時ファイル7を設け、チ
ェーンバッファ5が一杯になったとき、チェーンバッフ
ァ5のデータを上記一時ファイル7に格納し、また、主
記憶装置10上にチェーンバッファ5のデータがないと
き、上記一時ファイル7からデータを読み込んで主記憶
装置10上のチェーンバッファ5に格納する。
【0012】本発明の請求項1,2の発明においては、
上記のようにしてクラスタリング処理を行うようにした
ので、処理の対象となるレコード数が多く、主記憶装置
上にレコードが乗り切らなくてもクラスタリング処理を
行うことができる。また、比較的小さな主記憶装置の容
量で大量のレコードの処理を行うことができるので、コ
ストの削減を図ることができる。さらに、適切なサイズ
の入力バッファ、出力バッファを設けることにより、主
記憶装置へのアクセス回数を少なくでき、処理時間を短
縮することが可能となる。本発明の請求項3の発明にお
いては、2次記憶装置上にチェーンバッファのデータを
保存する一時ファイルを設けたので、処理の対象となる
レコード数が多い場合でもさらに小容量の主記憶装置で
クラスタリング処理を行うことが可能となる。
【0013】
【発明の実施の形態】図2は本発明の実施例のシステム
構成を示す図である。同図において、10は主記憶装置
であり、主記憶装置10上には、クラスタリング処理を
行うクラスタリング処理部1、入力バッファ2、出力バ
ッファ3、レコード管理情報4、チェーンバッファ5が
設けられる。また、2次記憶装置20上には、レコード
情報ファイル6と一時ファイル7が設けられており、レ
コード情報ファイル6には、クラスタリング処理の対象
となるレコードが格納される。また、一時ファイル7に
は、チェーンバッファ5のデータが保存される。レコー
ド情報ファイル6の大きさは、処理対象レコードの数を
N個とするとき、〔2N−1〕である。
【0014】クラスタリング処理部1には、同図に示す
ように下記の変数を保持する作業領域が設けられる(以
下、下記作業領域とその領域に格納される変数を同じ名
前で呼ぶこととする)。 (a) v1 :レコードを保持する領域、初期値なし (b) v2 :レコードを保持する領域、初期値なし (c) wp :レコードv1を指すポインタ、初期値なし (d) wpnext :レコードv2を指すポインタ、初期値なし (e) wpprev :レコードv1の一つ前のレコードを指すポ
インタ、初期値なし (f) irec :最近傍レコードを番号を保持する領域、
初期値なし (g) imin :最小距離を保持する領域、初期値なし (h) Obufp :出力バッファの先頭レコードを保持する
領域、初期値recnum+1 (i) cbufp :チェーンの長さを保持する領域、初期値
0 (j) 1rec :最終レコードを保持する領域、初期値re
cnum (k) recnum :処理対象レコード数 (l) mergecnt:マージカウント(マージ回数)、初期値
0 (m) inpfilenum:入力ファイル名
【0015】入力バッファ3は、2次記憶装置20上の
レコード情報ファイル6から読み込んだレコードを保持
し、また、出力バッファ14はレコード情報ファイル6
へ書き出すレコードを保持するものであり、図3に示す
ようにレコードの分散値とベクトルの数と可変長の項目
とから構成されている。初期状態においては、前記した
ように上記ベクトル数は1、分散は0である。各バッフ
ァ2,3の大きさはn(n<N)であり、入力バッファ
3は、計算の対象のレコードがなくなったとき、そのレ
コードを含むn個のレコードをレコード情報ファイル6
から読み込む。また、出力バッファ3はマージされたレ
コードを格納し、このバッファが一杯になったとき、そ
の内容をレコード情報ファイル6に格納する。
【0016】レコード管理情報4は、前記レコード情報
ファイル6に格納されるレコード数に対応した数のエン
トリを持ち、処理対象レコード数がN個の場合、図4に
示すように(2N−1)個のエントリを持つ。また、各
エントリは、3種類の値、0/1/2の内の一つを持
ち、これらのそれぞれは、そのエントリが管理するレコ
ードが以下の状態にあることを示す。 0:有効であり、かつ、チェインにない。 1:有効であり、かつ、チェインにある。 2:無効であり、かつ、チェインにない。 上記3種類の値を表現するには、2ビットがあれば足り
るので、レコード管理情報の総量は、(2N−1)×2
ビットとなる。したがって、処理対象となるレコード数
が1M個になったとしても、レコード管理データの総量
は高々512Kバイトであり、これを主記憶装置10上
に持つことは可能である。
【0017】チェーンバッファ5は、図5に示すように
N−1の大きさを持ち、各エントリには、レコード番号
がスタック形式で格納される。ここでレコード番号と
は、各レコードが2次記憶装置20上で何番目のレコー
ドに当たるかを表す番号である。したがって、一つの番
号が4バイトを必要とするとき、レコード数が1M個に
なったとしても、チェーンバッファ5に格納されるデー
タの総量は高々4Mバイトである。これは、上記レコー
ド管理情報の数より多いが、やはり主記憶装置10上に
持つことが可能な量である。なお、本実施例では、前記
したようにチェーンバッファ5のデータを一時保存する
ための一時ファイル7を設け、チェーンバッファ5が一
杯になったとき、一時ファイル7に保存する。そして、
チェーンバッファ5からレコードチェーンデータを取り
出そうとしたとき、チェーンバッファ5にデータがなか
ったらレコードチェーンデータを上記一時ファイル7か
ら取り出してくる。
【0018】図6、図7は本実施例のメインフローであ
り、また、図8〜図13は図6、図7中の示されるfunc
1〜func5 の処理フローを示す図であり、同図により本
実施例のクラスタリング処理について説明する。初期状
態では、処理対象ベクトル数と同数のレコード(=N)
が2次記憶装置20のレコード情報ファイル6上に存在
し、そのレコード群は処理対象ベクトルと1対1に対応
し、前記したように各レコードが表現するベクトル数は
1であり、表現する分散は0である。レコード管理情報
4の各エントリは0の値(有効であり、かつ、チェ−ン
にない)を持ち、チェーンバッファ5の全てのエントリ
はNULLポインタを持つ。また、クラスタリング処理
部1の各作業領域には前記(a) 〜(m) に示した初期値が
格納される。
【0019】図6において、まず、ステップS1におい
て、2次記憶装置20上のファイルからレコード数recn
um、入力ファイル名inpfilenum等を読み込み、クラスタ
リング処理部1の各変数を設定する。次に、入力バッフ
ァ2、出力バッファ3、レコード管理情報4、チェーン
バッファ5の領域を確保し、レコード情報ファイル6、
一時ファイル7を開く(ステップS2,S3)。ステッ
プS4において、任意のレコードを選んでv1とし、v1の
指すポインタをクラスタリング処理部1のwpに設定す
る。また、チェーンバッファ5にwpを入れ、レコード管
理情報4の上記ポインタwpに対応したエントリを1にす
る。また、チェーンの長さcbufp (初期値は0)に1を
加える。
【0020】上記ステップS4の処理において、上記し
たチェーンバッファ5にwpを入れる際、図8のfunc1 に
示すように次の処理を行う。まず、主記憶装置10上の
チェーンバッファ5が一杯であるかを調べ(図8のステ
ップT1)、チェーンバッファ5が一杯でない場合に
は、上記のようにチェーンバッファ5にwpを入れる(ス
テップT3)。また、チェーンバッファ5が一杯の場合
には、チェーンバッファ5を2次記憶装置20の一時フ
ァイル7に保存し(ステップT2)、チェーンバッファ
5にwpを入れる。
【0021】図6に戻り、ステップS5において、出力
バッファ3に上記v1のレコードがあるかを調べ出力バッ
ファにない場合には、ステップS6に行き、入力バッフ
ァ2に上記v1のレコードがあるかを調べる。そして、出
力バッファ3にも入力バッファ2にもv1のレコードがな
い場合には、ステップS7において、2次記憶装置20
のレコード情報ファイル6から入力バッファ2に上記v1
を含むレコードを読み込み、ステップS8に行く。ま
た、出力バッファ3もしくは入力バッファ2に上記v1の
レコードがある場合にはそのまま、ステップS8にい
く。ステップS8において、マージカウントmergecnt
(マージ回数)と〔レコード数recnum−1〕を比較し、
mergecnt<〔レコード数recnum−1〕であれば、以下の
処理を繰り返す。また、mergecnt≧〔レコード数recnum
−1〕になると、出力バッファ3にある情報を2次記憶
装置20上のレコード情報ファイル6に書き出し(ステ
ップS10)、処理を終了する。
【0022】mergecnt<〔レコード数recnum−1〕の場
合には、ステップS9において、図9、図10のfunc2
に示すようにwpと他のレコード間の距離をWard法に
基づいて計算する。図9、図10の処理の詳細について
後述するが、上記ステップS9においては、前記したR
NN法における(2)、(4)に相当した処理を行う。
すなわち、上記v1の最近傍のレコードを求め(最近傍レ
コードを指すポインタがwpnextに設定される)、最近傍
レコード番号をクラスタリング処理部1の変数irecに設
定し、最小距離を変数iminに設定する。
【0023】次に、図6のステップS11において、チ
ェーンバッファ5のチェーンカウントchaincnt<2であ
るかを調べ、チェーンカウントchaincnt<2の場合に
は、図7のステップS15に行く。また、チェーンカウ
ントchaincnt<2でない場合には、ステップS12にお
いて、レコードv1の一つ前のレコードを指すポインタwp
prevと上記wpnextが一致しているかを調べ、一致してい
る場合には、図7のステップS13に行く。また、wppr
evとwpnextが一致していない場合には、図7のステップ
S15に行く(前記RNN法における(6)の処理に相
当)。
【0024】図7のステップS15においては、上記wp
nextの値をチェーンバッファ5に入れ、レコード管理情
報4の上記ポインタwpnextに対応したエントリを1にす
る。また、チェーンの長さcbufp に1を加える(前記R
NN法における(5)の処理に相当)。さらに、ポイン
タwpprevにwpの値を入れ、ポインタwpにwpnextの値を入
れ、図6のステップS8に戻る(前記RNN法における
(7)の処理に相当)。ここで、上記処理において、前
記図8のfunc1 に示したように、主記憶装置10上のチ
ェーンバッファ5が一杯の場合には、チェーンバッファ
5を2次記憶装置20の一時ファイル7に保存したの
ち、チェーンバッファ5にwp,wpnext の値を入れる。
【0025】図7のステップ13において、ポインタwp
が指すレコードと、ポインタwpnextが指すレコードをマ
ージする。すなわち、図11のfunc3 に示すように、ポ
インタwpが指すレコードとポインタwpnextが指すレコー
ドをWard法に基づいてマージし(図11のステップ
T1)、マージ結果のレコードに含まれるレコードの数
とレコードの分散値を計算する(ステップT2)。さら
に、マージカウントmergecntを設定する(ステップT
3)(前記RNN法における(8)の前半の処理に相
当)。
【0026】ついで、ステップS14において、マージ
結果を出力バッファ3に格納する。その際、図12のfu
nc4 に示すように、出力バッファ3が一杯であるかを調
べ(図12のステップT1)、出力バッファ3が一杯の
場合には、出力バッファ3の内容をレコード情報ファイ
ル6に書き出し(図12のステップT2)、出力バッフ
ァの先頭レコード番号を保持する領域Obufp に最終レコ
ード番号1rec+1の値(1recの初期値は処理対象のレコ
ード数recnum)を設定する(図12のステップT3)。
【0027】図7に戻り、ステップS16において、最
終レコード番号1recに1を加え、レコード管理情報4の
1rec番目の値を有効、チェーンになしの状態(=0)に
する。これにより、上記マージ結果が、新たなレコード
として追加されることとなる。次に、ステップS17に
おいて、ポインタwp、wpnextが指すレコードのレコード
管理情報4を無効、チェーンになしの状態とする。これ
により、ポインタwp、wpnextが指すマージの対象となっ
たレコードは、処理対象レコードから外される。ステッ
プS18において、マージカウントmergecntに1を加
え、ステップS19において、前のポインタwpとwpprev
をチェーンバッファ5から外し、チェーンの長さcbufp
の値を−2する(ステップS16〜ステップS18の処
理は、前記RNN法における(8)の後半の処理に相
当)。
【0028】ステップS20において、ポインタwpprev
とwpに入れる値を、チェーンバッファ5から取り出し
(前のポインタwpとwpprevが上記のようにチェーンバッ
ファ5から外されているので、その前のwpとwpprevの値
がチェーンバッファ5から取り出される)、取り出した
値をポインタwpprevとwpに入れ、前記図6のステップS
8に戻り上記処理を繰り返す。上記ステップS20の処
理において、wpprevとwpに入れる値をチェーンバッファ
5から取り出す際、図13に示すfunc5 の処理を行う。
【0029】すなわち、チェーンバッファ5のレコード
チェーンデータが主記憶装置10上にあるかを調べ(図
13のステップT1)、レコードチェーンデータが2次
記憶装置20上にある場合には、レコードチェーンデー
タを2次記憶装置20から読み出し(図13のステップ
T2)、ポインタwpprevとwpに値を設定する。なお、チ
ェーンバッファ5の長さが短くなり、チェーンバッファ
5からポインタwpprevとwpに設定する値が取り出せなく
なった場合には、上記ポインタwpprevとwpに−1のデフ
ォルト値を設定する。
【0030】図9、図10は前記したfunc2 における処
理を示すフローチャートであり、同図によりwpと他のレ
コード間の距離計算について説明する。まず、図9のス
テップT1において、変数iを1に設定し、最小距離im
inを無限大に設定する。ステップT2において、上記変
数iが最終レコード番号irecより大きいかを調べ、大き
い場合には、処理を終了する。変数iが最終レコード番
号irecより大きくない場合には、ステップT3に行き、
i番目のレコードをv2として、v2を指すポインタをwpne
xtに設定する。ステップT4において、ポインタ値wpと
上記ポインタ値wpnextとが一致するかを調べ、一致して
いる場合にはステップT10に行き、iに1を加えてス
テップT2に戻る。また、一致していない場合には、ス
テップT5に行き、wpnextが指すレコードのレコード管
理情報4の値が、有効、チェーンにない(=0)である
かを調べ、レコード管理情報4の値が、有効、チェーン
にない(=0)の場合には、ステップT7にいく。
【0031】また、上記レコード管理情報4の値が、有
効、チェーンにある(=1)の場合には、次のステップ
T6に行き、wpnextの値とwpprevの値が一致しているか
を調べ、一致している場合にはステップT7に行く。ま
た、一致していない場合には、ステップT10に行き、
iに1を加えてステップT2に戻る。すなわち、wpnext
の値とwpprevの値が一致している場合、前記したように
wpprev(=wpnext)が指すレコードのレコード管理情報
4の値は、有効、チェーンにある(=1)となってい
る。そこで、上記ステップT8、T9の処理を行い、レ
コード管理情報4の値が、有効、チェーンにある(=
1)の場合には、wpnextの値とwpprevの値が一致してい
るかを調べ、wpnextの値とwpprevの値が一致している場
合のみ、後述する距離計算を行うようにしている。
【0032】次いで、ステップT7において、出力バッ
ファ3にレコードv2があるかを調べ出力バッファ3にな
い場合には、ステップT8に行き、入力バッファ2に上
記v2のレコードがあるかを調べる。そして、出力バッフ
ァ3にも入力バッファ2にもv2のレコードがない場合に
は、ステップT9において、2次記憶装置20のレコー
ド情報ファイル6から入力バッファ2に上記v2を含むレ
コードを読み込み、図10のステップT11に行く。ま
た、出力バッファ3もしくは入力バッファ2に上記v2の
レコードがある場合にはそのまま、図10のステップT
11にいく。
【0033】ステップT11において、上記ポインタwp
が指すレコードv1とポインタwpnextが指すレコードv2の
距離idecを前記したWard法の定義に従い計算する。
そして、ステップT12において、上記距離idecが最小
距離iminより小さいかを調べ、小さくない場合には前記
図9のステップT10に行き、iに1を加えてステップ
T2に戻る。また、上記距離idecが最小距離iminより小
さい場合には、ステップT13において、最小距離imin
を保持する領域に上記距離idecを入れ、最近傍レコード
番号irecを保持する領域にwpnextの値を入れて図9のス
テップT10に戻り、上記処理を繰り返す。以上の処理
をiが最終レコード番号irecになるまで繰り返すことに
より、v1に最も近いレコード番号を得ることができる。
【0034】以上のように、本実施例においては、主記
憶装置10上に入力バッファ2、出力バッファ3および
レコード管理情報4を設けるとともに、2次記憶装置2
0上に処理対象となるレコードを格納するレコード情報
ファイル6を設け、レコードv1,v2が入力バッファもし
くは出力バッファにない場合に、上記レコード情報ファ
イル6から該当するレコードを含むレコードを入力バッ
ファに読み込んで処理を行い、また、出力バッファが一
杯になったとき、上記レコード情報ファイル6に書き出
すようにしているので、処理の対象となるレコードある
いはその処理に必要な中間データが主記憶に乗り切らな
くてもクラスタリング処理を行うことが可能となる。
【0035】また、2次記憶装置20上のレコード情報
ファイル6からレコードの読み込みが行われるのは、前
記図6のステップS7およびステップS9だけであり、
また、2次記憶装置20上のレコード情報ファイル6へ
のレコードの書き込みが行われるのは、図6のステップ
S10および図7のS14だけであり、この読み込み、
書き込みは入力バッファと出力バッファの単位で行われ
るので、適切なサイズの入力バッファと出力バッファを
設ければ、2次記憶装置20へのアクセスを小さくする
ことができ、処理時間を短縮することができる。さら
に、2次記憶装置20上にチェーンバッファ5を保存す
る一時ファイル7を設けることにより、レコード数が多
くチェーンバッファが大きくなる場合であっても、比較
的小さな主記憶容量で処理を行うことができる。
【0036】
【発明の効果】以上説明したように、本発明において
は、以下の効果を得ることができる。 (1)2次記憶装置上に処理の対象となるレコードを格
納するファイルを設け、また、主記憶装置上に、上記レ
コードの一部を格納する入力、出力バッファと、2次記
憶装置上のファイルに格納される各レコードに1対1に
対応したレコード管理情報を格納する領域と、チェーン
情報を格納するチェーンバッファとを設けてクラスタリ
ング処理を行うようにしたので、処理の対象となるレコ
ード数が多く、主記憶装置上にレコードが乗り切らなく
てもクラスタリング処理を行うことができる。また、比
較的小さな主記憶装置の容量で大量のレコードの処理を
行うことができるので、コストの削減を図ることができ
る。さらに、適切なサイズの入力バッファ、出力バッフ
ァを設けることにより、主記憶装置へのアクセス回数を
少なくでき、処理時間を短縮することが可能となる。
【0037】(2)2次記憶装置上にチェーンバッファ
のデータを保存する一時ファイルを設けることにより、
処理の対象となるレコード数が多い場合でも小容量の主
記憶装置でクラスタリング処理を行うことができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施例のシステム構成を示す図であ
る。
【図3】本発明の実施例の入力バッファ、出力バッファ
の構造を示す図である。
【図4】本発明の実施例のレコード管理情報を示す図で
ある。
【図5】本発明の実施例のチェーンバッファの構造を示
す図である。
【図6】本発明の実施例のメインフローを示す図である
(その1)
【図7】本発明の実施例のメインフローを示す図である
(その2)
【図8】メインフローにおけるfunc1の処理を示す
図である。
【図9】メインフローにおけるfunc2の処理を示す
図(その1)である。
【図10】メインフローにおけるfunc2の処理を示
す図(その2)である。
【図11】メインフローにおけるfunc3の処理を示
す図である。
【図12】メインフローにおけるfunc4の処理を示
す図である。
【図13】メインフローにおけるfunc5の処理を示
す図である。
【符号の説明】
1 クラスタリング処理部 2 入力バッファ 3 出力バッファ 4 レコード管理情報 5 チェーンバッファ 6 レコード情報ファイル 7 一時ファイル 10 主記憶装置 20 2次記憶装置

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ベクトル集合の集合に対して、ベクトル
    集合間の定義された距離に基づき、近傍にある2つのベ
    クトル集合をまとめて新しい一つのベクトル集合とする
    操作を繰り返し、最終的に一つのベクトル集合にまとめ
    上げるクラスタリング処理方法であって、 2次記憶装置上に上記ベクトル集合に対応したレコード
    を格納するファイルを設け、 また、主記憶装置上に、上記レコードの一部を格納する
    入力バッファおよび出力バッファと、上記2次記憶装置
    上のファイルに格納される各レコードに1対1に対応し
    たレコード管理情報を設け、 任意の1レコードから開始して、上記主記憶装置上のレ
    コード管理情報を参照しながら最近傍にあるレコードを
    たどる処理を繰り返し、互いに最近傍にある2つのレコ
    ードを見つけたら、それらをまとめ上げたレコードを作
    成する処理を繰り返してクラスタリング処理を行い、 上記処理に必要となるレコードが主記憶装置上の入力バ
    ッファおよび出力バッファにないとき、2次記憶装置上
    のファイルから上記レコードを含む一連のレコードを入
    力バッファに読み込んで上記処理を行い、 また、上記処理の結果得られたレコードを出力バッファ
    に格納するとき、出力バッファが一杯になったら、出力
    バッファに格納されたレコードを上記2次記憶装置上の
    ファイルに保存したのち、上記レコードを出力バッファ
    に格納することにより、 比較的少ない2次記憶装置へのアクセスにより、主記憶
    装置上に乗り切らない大量のレコードのクラスタリング
    処理を行うことを特徴とするクラスタリング処理方法。
  2. 【請求項2】 ベクトル集合の集合に対して、ベクトル
    集合間の定義された距離に基づき、近傍にある2つのベ
    クトル集合をまとめて新しい一つのベクトル集合とする
    操作を繰り返し、最終的に一つのベクトル集合にまとめ
    上げるクラスタリング処理を行うクラスタリング処理シ
    ステムであって、 2次記憶装置上に上記ベクトル集合に対応したレコード
    を格納するファイルを設け、 また、主記憶装置上に、上記レコードの一部を格納する
    入力バッファおよび出力バッファと、 最近傍にあるレコードを順次登録するチェーンバッファ
    と、 上記2次記憶装置上のファイルに格納される各レコード
    に1対1に対応し、該レコードの有効/無効情報と、該
    レコードがチェーンバッファに登録されているか否かを
    示す情報からなるレコード管理情報とを設け、 クラスタリング処理部は、任意の1レコードから開始し
    て、上記主記憶装置上のレコード管理情報を参照しなが
    ら最近傍にあるレコードをたどる処理を繰り返して最近
    傍にあるレコードを順次チェーンバッファに登録し、互
    いに最近傍にある2つのレコードを見つけたら、それら
    をまとめ上げたレコードを作成する処理を繰り返してク
    ラスタリング処理を行い、 上記処理に必要なレコードが主記憶装置上のバッファに
    ないとき、2次記憶装置上のファイルから上記レコード
    を含む一連のレコードを入力バッファに読み込んで上記
    処理を行い、 また、上記処理の結果得られたレコードを出力バッファ
    に格納するとき、出力バッファが一杯になったら、出力
    バッファに格納されたレコードを上記2次記憶装置上の
    ファイルに保存したのち、上記レコードを出力バッファ
    に格納することにより、上記レコードのクラスタリング
    処理を行うことを特徴とするクラスタリング処理システ
    ム。
  3. 【請求項3】 2次記憶装置上にチェーンバッファのデ
    ータを格納する一時ファイルを設け、チェーンバッファ
    が一杯になったとき、チェーンバッファのデータを上記
    一時ファイルに格納し、また、主記憶装置上にチェーン
    バッファのデータがないとき、上記一時ファイルからデ
    ータを読み込んで、主記憶装置上のチェーンバッファに
    格納することを特徴とする請求項2のクラスタリング処
    理システム。
JP9114553A 1997-05-02 1997-05-02 クラスタリング処理方法およびクラスタリング処理システム Pending JPH10307828A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9114553A JPH10307828A (ja) 1997-05-02 1997-05-02 クラスタリング処理方法およびクラスタリング処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9114553A JPH10307828A (ja) 1997-05-02 1997-05-02 クラスタリング処理方法およびクラスタリング処理システム

Publications (1)

Publication Number Publication Date
JPH10307828A true JPH10307828A (ja) 1998-11-17

Family

ID=14640687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9114553A Pending JPH10307828A (ja) 1997-05-02 1997-05-02 クラスタリング処理方法およびクラスタリング処理システム

Country Status (1)

Country Link
JP (1) JPH10307828A (ja)

Similar Documents

Publication Publication Date Title
EP2885728B1 (en) Hardware implementation of the aggregation/group by operation: hash-table method
US7103596B2 (en) Data sort method, data sort apparatus, and data sort program
US6954759B2 (en) Data processing method using record division storing scheme and apparatus therefor
US20090271366A1 (en) Methods and Systems for Improving Hash Table Performance
US6584555B2 (en) Information storage and retrieval system
JP2003114816A (ja) コンピュータメモリにインデックスを記憶するデータ構造
CN1531692A (zh) 用于处理大量字符的高效排序元素结构
US6424970B1 (en) Sorting system and method executed by plural computers for sorting and distributing data to selected output nodes
US10241979B2 (en) Accelerated detection of matching patterns
US7197498B2 (en) Apparatus, system and method for updating a sorted list
US8515976B2 (en) Bit string data sorting apparatus, sorting method, and program
JPH08129551A (ja) ハッシュ方式
CN111522820A (zh) 数据存储结构、存储检索方法、系统、设备及存储介质
US20250156478A1 (en) Graph database storage engine
JPH10307828A (ja) クラスタリング処理方法およびクラスタリング処理システム
JP5354606B2 (ja) データ蓄積装置及び方法及びプログラム及びデータ検索装置及び方法及びプログラム
US8849866B2 (en) Method and computer program product for creating ordered data structure
US20220138338A1 (en) Data replacement apparatus, data replacement method, and program
CN117540056B (zh) 数据查询的方法、装置、计算机设备和存储介质
JP2874810B2 (ja) キーの記憶割り当て方法
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法
US20060106855A1 (en) Reusable row indices table
JP3224159B2 (ja) エキスパートシステム
CN111581204A (zh) 多b+树操作装置及其方法
JP2002530785A (ja) ディジタル・メモリ構造と装置及びそれの管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070213