JP2019021198A - クラスタリング装置、クラスタリング方法及びプログラム - Google Patents

クラスタリング装置、クラスタリング方法及びプログラム Download PDF

Info

Publication number
JP2019021198A
JP2019021198A JP2017141082A JP2017141082A JP2019021198A JP 2019021198 A JP2019021198 A JP 2019021198A JP 2017141082 A JP2017141082 A JP 2017141082A JP 2017141082 A JP2017141082 A JP 2017141082A JP 2019021198 A JP2019021198 A JP 2019021198A
Authority
JP
Japan
Prior art keywords
data
cluster
clustering
clusters
unit
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
JP2017141082A
Other languages
English (en)
Inventor
愛子 碓井
Aiko Usui
愛子 碓井
沼尾 雅之
Masayuki Numao
雅之 沼尾
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.)
University of Electro Communications NUC
Original Assignee
University of Electro Communications NUC
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 University of Electro Communications NUC filed Critical University of Electro Communications NUC
Priority to JP2017141082A priority Critical patent/JP2019021198A/ja
Publication of JP2019021198A publication Critical patent/JP2019021198A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

【課題】個人情報の匿名化を適切に行いながら、匿名化による情報損失を極力抑えたクラスタリングを可能にする。【解決手段】データベースに蓄積された個人情報を含むデータを取得し、その取得したデータに含まれる個人を識別できる属性を削除すると共に、データのフォーマット調整を行う。そして、フォーマット調整が行われたデータを、複数のクラスタに分割するクラスタリング処理を行う。このとき、それぞれのクラスタに含まれるデータの重心を計算して、その重心の変化を抑えながらクラスタごとのデータの数を調整し、データの数が調整された各クラスタのデータを出力する。【選択図】図1

Description

本発明は、個人情報データベースに蓄積された個人情報をクラスタリングするクラスタリング装置、クラスタリング方法及びプログラムに関する。
近年、個人情報が蓄積された個人情報データベースから、データマイニング技術を用いて解析した結果を提供するサービスが提案され、実用化されている。
例えば、通信販売サイトの購買履歴からユーザの好みを学習し、おすすめの商品を予測する機能がある。
このようなサービスを行う上では、個人情報の保護が重要である。すなわち、個人情報データベースに蓄積されたデータについて、個人を識別できないように匿名化したデータに加工して提供することが重要である。匿名化して個人を識別できないように加工されたデータであれば、個人の承諾を得ずにデータを活用出来るため、匿名化技術は非常に重要である。
従来から知られた個人情報の匿名化技術としては、例えばk−匿名化と称される技術がある。このk−匿名化の技術は、同じデータが少なくともk個以上存在するようにデータを変換する手法である。このk−匿名化の技術を適用することで、個人が特定される確率をk分の1以下にすることができる。
特許文献1には、k−匿名化を適用して個人情報を匿名化する技術の一例が記載されている。
特開2016−151908号公報
ところで、k−匿名化を適用して個人情報を匿名化する際には、「k」の値を大きくすることで、同じデータが存在する数が増え、適切に匿名化が実行される。しかしながら、「k」の値が大きいということは、匿名化後のデータの情報損失が大きいということであり、データの有用性が低下してしまうという問題がある。
また、個人情報を含むデータを匿名化して公開する際には、類似したデータを同じクラスタに分類するクラスタリングを行い、それぞれのクラスタのデータから、解析結果を得るようにしている。
このクラスタリングを行う手法としては、例えばk−means法と称される手法が知られている。このk−means法は、複数のデータをクラスタリングする際に、k個のクラスタを生成させる手法である。なお、先に述べたk−匿名化の「k」と、k−means法の「k」とは意味が異なる。
k−means法では、k個のクラスタにランダムにデータを割り当て、各クラスタ内の重心を求めて、その求めた重心から一番近いデータを、対応したクラスタに割り振るため、演算処理で比較的簡単にクラスタリングを行うことができるが、クラスタ数が事前に決められているため、クラスタリング状態が適切でない場合がある。したがって、従来のk−means法を適用したクラスタリング手法では、クラスタリング結果が不適切になってしまう可能性がある。
このように個人情報の匿名化技術では、個人情報データベースからデータを取り出す際のデータの匿名化を行うことと、データの有用性の確保とが相反するという問題がある。そこで、匿名化による情報損失を抑えながら、個人の特定を防ぐことができる技術の開発が望まれている。
本発明は、個人情報の匿名化を適切に行いながら、匿名化による情報損失を極力抑えることができるクラスタリング装置、クラスタリング方法及びプログラムを提供することを目的とする。
本発明のクラスタリング装置は、データベースに蓄積された個人情報を含むデータを取得するデータ入力部と、データ入力部が取得したデータに含まれる個人を識別できる属性を削除すると共に、データのフォーマット調整を行うレコード変換部と、レコード変換部によりフォーマット調整が行われたデータを、複数のクラスタに分割するクラスタリング部と、クラスタリング部で分割されたそれぞれのクラスタに含まれるデータの重心を計算して、その重心の変化を抑えながらクラスタごとのデータの数を調整するクラスタサイズ調整部と、クラスタサイズ調整部でサイズが調整されたクラスタのデータを出力するクラスタリングデータ出力部と、を備える。
また本発明のクラスタリング方法は、データベースに蓄積された個人情報を含むデータを取得し、その取得したデータに含まれる個人を識別できる属性を削除すると共に、データのフォーマット調整を行うレコード変換処理と、レコード変換処理によりフォーマット調整が行われたデータを、複数のクラスタに分割するクラスタリング処理と、クラスタリング処理で分割されたそれぞれのクラスタに含まれるデータの重心を計算して、その重心の変化を抑えながらクラスタごとのデータの数を調整するクラスタサイズ調整処理と、クラスタサイズ調整処理でサイズが調整されたクラスタのデータを出力するクラスタリングデータ出力処理と、を含む。
また本発明のプログラムは、クラスタリング方法の各処理を手順としてコンピュータに実行させるものである。
本発明によれば、クラスタリングを行う際に、それぞれのクラスタが最適なデータ数に自動的に調整され、類似したデータのみで各クラスタが構成され、情報損失を抑えた良好なクラスタリングが可能になる。
本発明の一実施の形態例によるクラスタリング装置の例を示す機能ブロック図である。 本発明の一実施の形態例によるクラスタリング装置に適用されるコンピュータのハードウェアの例を示す構成図である。 本発明の一実施の形態例による処理全体の流れを示すフローチャートである。 本発明の一実施の形態例によるk−means法を適用したフォーマット調整アルゴリズムの例を示すフローチャートである。 本発明の一実施の形態例による階層型クラスタリングを使うためにフォーマットを整えるアルゴリズムの例を示すフローチャートである。 本発明の一実施の形態例によるk=3のときのクラスタ分割例を示す説明図である。 本発明の一実施の形態例による情報損失を考慮したクラスタサイズ調整アルゴリズムの例を示すフローチャートである。 本発明の一実施の形態例によるデンドログラムの例を示す説明図である。 本発明の一実施の形態例によるデンドログラムから作成する処理の例を示すフローチャートである。 本発明の一実施の形態例によるデンドログラム履歴から作成したクラスタを分割するアルゴリズムの例を示すフローチャートである。 各クラスタの情報損失量の例(データの近さのみで見たクラスタ調整手法を実行した例)を示す特性図である。 各クラスタの情報損失量の例(情報損失順を加味したクラスタ調整手法を実行した例1)を示す特性図である。 各クラスタの情報損失量の例(情報損失順を加味したクラスタ調整手法を実行した例2)を示す特性図である。 各クラスタの情報損失量の例(情報損失順を加味したクラスタ調整手法を実行した例3)を示す特性図である。
以下、本発明の一実施の形態例(以下、「本例」と称する)を、添付図面を参照して説明する。
[1.クラスタリング装置の全体構成例]
図1は、本例のクラスタリング装置の例を示す機能ブロック図である。
本例のクラスタリング装置は、個人情報データベースに蓄積された個人情報を含むデータを取得して、その取得したデータについて、個人を特定できないように匿名化を施した上で、類似したデータどうしを集めてクラスタを形成させるクラスタリングを行うものである。
ここでは、例えば、情報処理を行うコンピュータに、クラスタリングのための処理を実行するプログラムを実装させて、クラスタリング装置として機能させる。但し、コンピュータを使用してクラスタリング装置を構成するのは一例であり、クラスタリング装置を専用のハードウェアで構成してもよい。
図1に示すクラスタリング装置10の構成について説明すると、クラスタリング装置10は、データ入力部11を備える。データ入力部11は、不図示の個人情報データベースに蓄積された個人情報を含む多数のデータを取得する。
データ入力部11が取得したデータは、レコード変換部12に供給される。そして、このレコード変換部12で、データのフォーマットが、クラスタリングが可能なフォーマットに調整される。レコード変換部12でのフォーマット調整の例については後述する。
レコード変換部12でフォーマットが変換されたデータは、クラスタリング部13に供給される。クラスタリング部13では、予め決められた手法でデータを複数のクラスタに分割するクラスタリング処理が行われる。クラスタリング部13で分割された複数のクラスタのデータは、クラスタサイズ調整部14により、各クラスタのデータ数が調整(クラスタサイズ調整)される。クラスタリング部13でのクラスタリング処理と、クラスタサイズ調整部14によるクラスタサイズの調整の例についても後述する。
そして、クラスタサイズ調整部14によるクラスタサイズ調整が実施済の複数のクラスタのデータが、クラスタリング部13からクラスタリングデータ出力部15に供給され、クラスタリングデータ出力部15から各クラスタのデータが出力される。
[2.ハードウェア構成の例]
図2は、クラスタリング装置10を構成するコンピュータのハードウェア構成例を示す図である。
クラスタリング装置10として機能するコンピュータCは、バスラインC10にそれぞれ接続されたCPU(Central Processing Unit:中央処理装置)C1、ROM(Read Only Memory)C2、及びRAM(Random Access Memory)C3を備える。さらに、コンピュータCは、不揮発性ストレージC4、ネットワークインターフェースC5、入力装置C6、及び表示装置C7を備える。
CPU C1は、クラスタリング装置10が備える各機能を実現するソフトウェアのプログラムコードをROM C2から読み出して実行する。RAM C3には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。例えば、クラスタリング装置10は、CPU C1がROM C2に記憶されているプログラムを読み出すことで、例えば、図1に示すレコード変換部12、クラスタリング部13、及びクラスタサイズ調整部14での処理を実行する。
不揮発性ストレージC4としては、例えば、HDD(Hard disk drive)、SSD(Solid State Drive)、フレキシブルディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリ等が用いられる。この不揮発性ストレージC4には、OS(Operating System)、各種のパラメータの他に、コンピュータCをクラスタリング装置10として機能させるためのプログラムが記録されている。
ネットワークインターフェースC5には、例えば、NIC(Network Interface Card)等が用いられ、端子が接続されたLAN(Local Area Network)、専用線等を介して各種のデータを送受信することが可能である。
入力装置C6は、キーボードやマウスなどで構成される。表示装置C7は、液晶ディスプレイなどで構成される。
[3.処理全体の流れ]
図3は、本例のクラスタリング装置10が行う処理全体の流れの概要を示すフローチャートである。
まず、クラスタリング装置10のデータ入力部11に入力されたデータについて、クラスタリング処理が行えるように、レコード変換部12によってフォーマットを調整するレコード変換処理が行われる(ステップS1)。その後、レコード変換部12でフォーマットが調整されたデータを、クラスタリング部13が複数のクラスタに分類するクラスタリング処理を行う(ステップS2)。
そして、クラスタサイズ調整部14は、クラスタリング処理で得られた各クラスタ内のデータを判断して、クラスタごとのデータの数を調整するクラスタサイズ調整処理を行う(ステップS3)。このステップS3でのクラスタサイズ調整処理が行われた各クラスタのデータが、クラスタリングデータ出力部15から出力される。
[4.フォーマット調整(階層型クラスタリングを行わない例)]
図4は、レコード変換部12で行われるフォーマット調整の例を示すフローチャートである。ここでは、個人情報を含むデータとして、次の表1に示すデータを扱う。
表1は、ID1,ID2,ID3の3人の個人情報を扱う例である。表1に示すそれぞれのデータID1,ID2,ID3には、年齢のレコードと、職業のレコードと、出身地(都道府県)のレコードが含まれる。年齢は数値であり、職業と都道府県は文字で示される。
図4のフローチャートにしたがって処理を説明すると、まず、表1に示す個人情報を含むデータ(表1に示す各データID1,ID2,ID3など)がデータ入力部11に供給される(ステップS11)。ここで、レコード変換部12は、入力データがカテゴリ型か否かを判断する(ステップS12)。
このステップS12の判断で、入力データがカテゴリ型である場合には(ステップS12のYES)、入力データに含まれる不要な属性列を削除して、個人を識別できる属性のデータを削除する(ステップS13)。その後、[属性種類×レコード行]の零行列(数値が0の行列)を作成し(ステップS14)、入力データのレコードを1行ずつ読み込む(ステップS15)。
そして、ステップS15で読み込んだ入力データが、地域のデータである都道府県を示すデータか否かを判断する(ステップS16)。ここで、都道府県を示すデータである場合には(ステップS16のYES)、都道府県のデータ用の処理を行う(ステップS17)。都道府県のデータ用の処理の具体例については後述する。また、ステップS16の判断で、都道府県を示すデータでない場合には(ステップS16のNO)、レコード変換部12は、属性とデータとが一致するか否かを判断する(ステップS18)。そして、属性が一致した場合には(ステップS12のYES)、一致した箇所のデータを0から1に置き換える処理を行う(ステップS19)。
また、ステップS12での判断で、入力データがカテゴリ型でない場合には(ステップS12のNO)、レコード変換部12は、入力データの数値を正規化する(ステップS20)。
そして、レコード変換部12は、ステップS17で都道府県のデータ用の処理を行った後と、ステップS19で一致した箇所のデータを1に置き換えた後と、ステップS18でNOと判断した後と、ステップS20で数値の正規化を行った後に、データを統合する処理であるマージ処理を行う(ステップS21)。その後、レコード変換部12は、入力データに未処理の別のレコードがあるか否かを判断し(ステップS22)、別のレコードがある場合には(ステップS22のNO)、ステップS15の処理に戻る。
また、ステップS22で入力データの全てのレコードを処理したと判断したとき、処理済みのデータを出力する(ステップS23)。ここでの処理済みのデータは、全てのデータを数値で表したファイルのデータである。
[4.フォーマット調整処理]
次の表2及び表3は、表1に示すデータに対して、図4のフローチャートに示すフォーマット調整を実行した例1(表2)及び例2(表3)を示す。
これら表2及び表3に示すように、属性ごとに、その属性に該当するか否かを、1又は0で示すようにしている。例えば、職業を示す3つの属性の学生、会社員、SE(システムエンジニア)のデータを用意する。そして、学生に該当する者については、学生の値を「1」とし、他の属性の値を「0」とする。また、会社員に該当する者については、会社員の値を「1」とし、他の属性の値を「0」とする。さらに、SEに該当する者については、SEの値を「1」とし、他の属性の値を「0」とする。この値を「1」に設定する処理は、図4のフローチャートのステップS19での処理に相当する。
出身を示す値についても、「東京」、「秋田」、「岩手」の3つの属性のデータを用意して、それぞれの属性ごとに、出身地が該当する場合に値を「1」とし、該当しない場合には値を「0」にする。
さらに、表2の例2では、それぞれの属性ごとに、出身地が該当する場合に値を「1」とし、該当しない場合には値を「0」にすることに加えて、「秋田」と「岩手」が同じ東北地方であり、東北地方が6つの県で構成されることから、東北地方のいずれかの県が出身である場合に、同じ東北地方の別の県の属性の値を、「1/6」に設定する。これらの出身の都道府県の処理は、図4のフローチャートのステップS17で実行される。
また、年齢については、最小値の20才と最大値の30才を使って正規化する処理が行われ、20才、22才、30才を正規化した値である「0」、「0.2」、「1」が表2及び表3に示すようにデータ化される。
この表2又は表3に示すデータが、図4のフローチャートのステップS23で出力される。
[5.フォーマット調整(階層型クラスタリングを行う例)]
次に、レコード変換部12で行われるフォーマット調整の別の例を説明する。ここでは、階層型クラスタリングを行うためのフォーマット調整について説明する。
まず、データの型ごとの距離を、次の(1)式により定義して、データ間の距離を求める。(1)式において、xは比較元データであり、yは比較先データである。
また、都道府県型の定義:PrefTable[xpref][ypref]は、各都道府県間の距離(例えば国土地理院が発表した都道府県庁間の距離)を示す、次の表4から得る。
図5のフローチャートは、階層型クラスタリングを行うためのフォーマット調整の例を示している。
まず、個人情報を含むデータがデータ入力部11に供給される(ステップS31)。ここで、レコード変換部12は、入力データから2行分のレコードを読み込み(ステップS32)、レコードの属性を比較する(ステップS33)。ここで、レコードの属性がカテゴリ型である場合には、レコード変換部12は、カテゴリ型の距離計算を行う(ステップS34)。カテゴリ型の距離計算は、レコードの属性に応じて0又は1とする距離計算である。また、ステップS33での比較で、レコードの属性が数値型(年齢)である場合には、レコード変換部12は、数値型の距離計算を行う(ステップS35)。ここでの数値型の距離計算は、正規化した距離計算である。さらに、ステップS33での比較で、レコードの属性が都道府県型である場合には、レコード変換部12は、都道府県型の距離計算を行う(ステップS34)。この都道府県型の距離計算は、表4に示す各都道府県間の実際の距離を計算する処理である。
そして、ステップS34,S35,S36の距離計算を行った後、レコード変換部12は、レコードの属性の距離計算の和を距離行列に配列する(ステップS37)。その後、レコード変換部12は、入力データの最終行か否かを判断する(ステップS38)。ここで、入力データの最終行でない場合には(ステップS38のNO)、ステップS32のレコードの読み込み処理に戻る。
また、ステップS38で入力データの最終行と判断したとき(ステップS38のYES)、処理済みのデータを、クラスタ内に属するデータ情報のファイルとして出力する(ステップS39)。
ここで、ステップS34,S35,S36の距離計算を行う例について説明する。比較を行う2つのレコードの例を以下に示す。
レコード1:[男,奈良県,55才,未婚,自営業]
レコード2:[男,宮城県,52才,既婚,会社員]
このとき、性別は同じなので、距離0とする。また、都道府県は、奈良県と宮城県とが、200km以上の距離なので、距離1とする。年齢は、2つのレコードの差が3才であり、値3を10で割って、距離0.3とする。婚姻は、未婚と既婚で相違するので、距離1とする。職業も相違するので、距離1とする。
そして、ステップS37での和を求める処理として、これらの距離を合計した3.3を得る。この距離3.3が、レコード1とレコード2とのレコード間距離になる。
このような距離を求める処理を、全てのレコードに対して行う。
このようなレコード間距離を、先に示した[表1]のID1,ID2,ID3のデータに対して求めた結果の例を、[表5]に示す。
[5.クラスタリング処理]
次に、クラスタリング部13で実行されるクラスタリング処理について説明する。
クラスタリング部13が実行するクラスタリング処理としては、k−means法と、階層型クラスタリング法とがある。
k−means法は、k個のクラスタにランダムでデータを割り当て、各クラスタ内の重心を求めてその重心から一番近いデータをクラスタに割り振る手法である。
そして、クラスタ重心の計算とデータの割り振りを、全てのクラスタ重心が変動しなくなるまで繰り返す。このk−means法では、処理を繰り返して最適解を見つけるため、クラスタリングの精度が高いメリットを有するが、処理を繰り返す必要があり、事前に最適値を知ることは困難である。ここで、本例ではクラスタサイズ調整部14で、クラスタサイズが、k−匿名化の「k」(ここでの「k」はデータ数を示し、k−means法での「k」とは意味が違う)を満たしていないクラスタ内のサイズを調整する。本例で行われるクラスタのサイズ調整の詳細は後述する。
次に、階層型クラスタリング法について説明する。
図6は、階層型クラスタリング法によるクラスタリングの概要を示す図である。
階層型クラスタリングは、距離が近いデータ同士でまとめて行き、最終的には、全てのデータが1つのクラスタになる手法である。すなわち、図6に示すように14個のデータが存在するとき(1〜14の値は各データのID)、近いデータ同士で1つのクラスタを作り、そのクラスタ内のデータに近い別のデータを同じクラスタにまとめる処理を繰り返して、1つのクラスタにまとめる。
このような階層型クラスタリング法は、クラスタが作成される途中の履歴が表され、クラスタ数を予め指定する必要がなく、任意のクラスタ数にできる。但し、階層型クラスタリング法では、2つのデータずつでクラスタが作成されて行くため、1つ1つのデータを見て分けることができない。
なお、データ間の距離を測る手法には、例えばウォード法、群平均法、最短距離法などがある。
[6.クラスタサイズ調整]
次に、クラスタリング部13でクラスタリング処理が行われたデータに対して、クラスタサイズ調整部14がクラスタサイズ(つまりクラスタ内のデータ数)の調整を行う処理について説明する。
図7のフローチャートは、情報損失を考慮したクラスタサイズの調整アルゴリズムの処理手順を示す。
まず、クラスタサイズ調整部14は、クラスタIDと、そのクラスタIDに属するレコード番号(レコードNo.)が記載されたファイル1と、各レコードのデータを数値で表したファイル2とを入力データとして取得する(ステップS41)。ファイル2は、例えば各データの数値をカンマで区切った形式のファイルであるCSVファイルとして取得する。
クラスタサイズ調整部14は、入力データのクラスタを、情報損失が大きい順に並べる(ステップS42)。そして、クラスタサイズ調整部14は、レコード数がk個未満のレコードのIDをリストAとして保存する(ステップS43)。
次に、クラスタサイズ調整部14は、リストAの先頭のクラスタの重心と重心距離が一番近く、かつ情報損失量が大きいクラスタが存在するか否かを判断する(ステップS44)。ここで、該当するクラスタが存在する場合には(ステップS44のYES)、クラスタサイズ調整部14は、そのクラスタのデータを取得する(ステップS45)。また、該当するクラスタが存在しない場合には(ステップS44のNO)、比較元クラスタの重心と、一番重心位置が近いクラスタを取得する(ステップS46)。
その後、クラスタサイズ調整部14は、取得したクラスタのサイズがk以上か否かを判断する(ステップS47)。ここで、クラスタのサイズがk以上である場合には(ステップS47のYES)、クラスタサイズ調整部14は、比較元クラスタの重心とデータ値が最も近いデータを取り出して追加し、比較先クラスタから該当するデータを削除する(ステップS48)。また、クラスタのサイズがk以上でない場合には(ステップS47のNO)、クラスタサイズ調整部14は、比較元クラスタと比較先クラスタを統合し、比較先クラスタを削除する(ステップS49)。
そして、ステップS48及びS49の処理の後、クラスタサイズ調整部14は、クラスタ内の重心値と情報損失値を、新たなクラスタ内のデータに基づいて更新する(ステップS50)。さらに、クラスタサイズ調整部14は、比較元のクラスタのサイズがk以上か否かを判断する(ステップS51)。ここで、比較元のクラスタのサイズがk以上でない場合には(ステップS51のNO)、ステップS43の処理に戻る。また、比較元のクラスタのサイズがk以上である場合(ステップS51のYES)、クラスタサイズ調整部14は、情報損失順にクラスタを並べ、比較元のクラスタをリストAから削除する(ステップS52)。
その後、クラスタサイズ調整部14は、リストAの構成要素が0であるか否かを判断し(ステップS53)、構成要素が0でない場合には(ステップS53のNO)、ステップS43の処理に戻る。また、構成要素が0の場合(ステップS53のYES)、クラスタサイズ調整部14は、クラスタIDと、各クラスタに属するレコード番号(レコードNo.)を示すファイルを出力する(ステップS54)。ここでは、例えばクラスタIDごとファイルの行を設定し、その行にレコードNo.を記載したファイルを出力する。
クラスタリング部13は、このクラスタサイズ調整部14が出力するファイルを取得し、クラスタリングデータ出力部15がクラスタサイズ調整後のデータを出力する。
次に、クラスタリング部13が階層型クラスタリング実行した場合に、クラスタサイズ調整部14で行われるクラスタサイズ調整処理について説明する。
ここでは、クラスタサイズ調整部14が、図8に示す階層型クラスタリングが行われたデータのクラスタサイズ調整を行う場合について説明する。
図8に示す例では、データ7,2,6,4,1,3,5が存在し、順に図8示すようにクラスタのサイズが大きくなる階層型のクラスタリングが行われる。
例えば、最初の段階では、データ2とデータ6とを1つのクラスタ(クラスタID:1)とし、データ3とデータ5とを1つのクラスタ(クラスタID:2)とする。次に、クラスタID:2のクラスタに、データ1をまとめて、新たなクラスタ(クラスタID:3)とする。
さらに、クラスタID:1のクラスタに、データ7をまとめて、新たなクラスタ(クラスタID:4)とし、クラスタID:3のクラスタに、データ4をまとめて、新たなクラスタ(クラスタID:5)とする。そして、最後にクラスタID:4のクラスタとクラスタID:5のクラスタとを1つのクラスタ(クラスタID:6)にまとめる。
このようなクラスタの形成履歴を[表6]に示す。[表6]において、数値の前に−(マイナス)が付与されたものはデータの値を示し、マイナスがない数値はクラスタIDを示す。
図8はこの[表6]の履歴(デンドログラム履歴)を図示したものである。
次に、図9のフローチャートを参照して、デンドログラム履歴からクラスタを作成する処理について説明する。
まず、クラスタリング部13は、[表6]に示すようなデンドログラム履歴を取得する(ステップS61)。そして、クラスタリング部13は、入力したものが、データかクラスタかを判断する(ステップS62)。ここで、入力した値がいずれもデータである場合(例えば[表6]の1行目の−2,−6の場合)には、データを合併して新しいクラスタを作成する(ステップS63)。また、入力した値の一方がクラスタ、他方がデータである場合(例えば[表6]の3行目の−1,2の場合)には、クラスタとデータを合併して新しいクラスタを作成する(ステップS64)。
さらに、入力した値がいずれもクラスタである場合(例えば[表6]の6行目の4,5の場合)には、いずれのクラスタも、サイズがk未満か否かを判断する(ステップS65)。
ここで、いずれもクラスタもサイズがk未満である場合には(ステップS65のYES)、2つのクラスタを合併して新しいクラスタを作成する(ステップS66)。また、サイズがk未満でないクラスタがある場合には(ステップS65のNO)、サイズが小さい方の新しいクラスタを作成する(ステップS67)。
そして、ステップS63,S64,S66,S67で新しいクラスタを作成した後、クラスタリング部13は、ここでの処理がデンドログラム履歴の最終行の処理であるか否かを判断する(ステップS68)。ここで、最終行でない場合には(ステップS68のNO)、クラスタリング部13は、ステップS61のデンドログラム履歴の取得処理に戻る。また、最終行である場合には(ステップS68のYES)、クラスタリング部13は、各クラスタ内に属するデータについての情報を示すファイルを出力する(ステップS69)。
図10のフローチャートは、クラスタサイズ調整部14が、デンドログラム履歴から作成したクラスタを分割するクラスタサイズ調整を行う例を示す。
まず、クラスタサイズ調整部14は、デンドログラム履歴から作成したクラスタのデータ(図9のフローチャートのステップS69の出力データ)を取得する(ステップS71)。そして、クラスタサイズ調整部14は、取得した全クラスタを情報損失量順に並び替え(ソート)し(ステップS72)、並び替えた全クラスをリストAに入れる(ステップS73)。
次に、クラスタサイズ調整部14は、リストAから1行ずつクラスタを読み込む(ステップS74)。ここで、クラスタサイズ調整部14は、読み込んだクラスタの情報損失量が上位10%で、且つクラスタサイズが2・k以上か否かを判断する(ステップS75)。この判断で、クラスタの情報損失量が上位10%で、且つクラスタサイズが2・k以上である場合には(ステップS75のYES)、該当するクラスタのデータをリストBに挿入すると共に、リストAから削除する(ステップS76)。
そして、ステップS75でクラスタの情報損失量が上位10%で、且つクラスタサイズが2・k以上でない場合(ステップS75のNO)、及び、ステップS76の処理後には、ステップS74で読み込んだクラスタがデンドログラム履歴の最終行か否かを判断する(ステップS77)。ここで、最終行でない場合には(ステップS77のNO)、クラスタサイズ調整部14は、ステップS74の処理に戻る。また、最終行である場合には(ステップS77のYES)、クラスタサイズ調整部14は、リスト内のデータを生データとして取得する(ステップS78)。
その後、クラスタサイズ調整部14の取得した全てのデータの値の判断を行う(ステップS79)。そして、クラスタサイズ調整部14は、k=生データ数/kのk−means法を適用した演算でクラスタリング処理を行う(ステップS80)。ここでの[k]はk−means法での[k](クラスタ数)である。
このクラスタリング処理の後、クラスタサイズ調整部14は、ステップS80で得たクラスタとリストA内のクラスタとを合わせる(ステップS81)。
さらに、クラスタサイズ調整部14は、ステップS81で得た全てのクラスタを使って、クラスタサイズ調整を行う(ステップS82)。このステップS82でのクラスタサイズ調整は、図7のフローチャートのステップS41〜S54で説明した処理が行われる。
そして、ステップS82でのクラスタサイズ調整が行われた結果としての、クラスタ内に属するデータ情報のファイルが出力される(ステップS83)。
以上説明したそれぞれの処理を実行することで、クラスタリング装置10が出力するデータは、適切なクラスタリングが行われたデータになり、データの有用性を高めることができるようになる。
[7.実験例]
次に、本例のクラスタリング装置10でクラスタリングを行った実験例について説明する。
まず、次の[表7]に示すような性別、所在地(都道府県)、年齢、婚姻、職業のレコードが記載された5000名の個人情報のファイルを取得する。
ここでは、評価指標として、次の(2)式を適用して、類似データが集まった良いクラスタと、非類似データが集まった悪いクラスタの評価を行う。(2)式において、informationloss(cluster)は、情報損失値を示す。
まず、データ間距離のみから見たクラスタ調整処理の手法を用いて、k=5でフォーマット時に都道府県の地域に幅を持たせて実験した結果を、[表8]及び図11に示す。ここでの都道府県の地域に幅を持たせて実験とは、例えば[表2]に示すように地域を考慮した値に設定することを示す。
また、データ間距離の他に情報損失順も加味したクラスタ調整処理の手法を用いて、k=5でフォーマット時に、都道府県の地域に幅を持たせて実験した結果を、[表9]及び図12に示す。
また、データ間距離のみから見たクラスタ調整処理の手法を用いて、k=5でフォーマット時に、都道府県を1又は0として実験した結果を、[表10]及び図13に示す。
さらに、データ間距離の他に情報損失順も加味したクラスタ調整処理の手法を用いて、k=5でフォーマット時に、都道府県を1又は0として実験した結果を、[表11]及び図14に示す。
次に、k−meansクラスタリングを用いる際の考察について述べる。
次の[表12]は、クラスタサイズ調整前の情報損失量が少なく、クラスタサイズがk以上のクラスタに属しているレコードを示す例である。
ここで、データ間距離のみで見たクラスタ調整処理の手法を用いて、[表12]のレコードを、3つのクラスタに分割した例を、[表13],[表14],[表15]に示す。
ここでは、クラスタサイズがk=5で固定されているので、超えている3件分のレコード(ID:A3019,A3324,A4469)は、別のクラスタに移動している。
そして、情報損失量を考慮したクラスタ調整処理による手法を用いたときのクラスタは、次の[表16]に示すようになる。
これらの表からわかるように、データ間距離のみで見たクラスタ調整処理を用いたときには、クラスタ内の情報損失量が少なくても、サイズがkを超えていれば、超えている数だけ、他のクラスタに情報が移動してしまう問題があった。これに対して、情報損失量を考慮したクラスタ調整処理では、情報損失が少ないクラスタからのレコードの移動が生じない。その結果、サイズがkを超えたクラスタ内のデータが他のクラスタに移動することがなくなった。
次に、都道府県間の距離を1又は0のみで表した場合と、その都道府県が属する地域の情報を持たせた場合との相違について説明する。
以下の例では、情報損失順も加味したクラスタ調整処理の手法を用いており、フォーマット作成時の都道府県間の距離で同じ地域にも数値を加えている場合のクラスタである。
まず、都道府県間距離で同地域に数値を加えたフォーマット利用時のクラスタを、[表17]に示す。
次の[表18]は、[表12]と同様のクラスタ調整処理の手法を用いて、フォーマット作成時の都道府県間距離を1又は0のみで表した場合のクラスタである。
この[表18]において、A2314とA4511の都道府県が京都府であることに着目する。[表17]では、京都府と同じ地域の大阪府が同じクラスタになっているが、[表18]では、全く異なる地域である福岡県や埼玉県が同じクラスタになっている。このように、同じ地域の情報を加味することで、遠い地域の距離はより大きくなり、同じ地域の距離はより短くなり、適切にクラスタリングができるようになる。
次に、階層型クラスタリングの評価例を説明する。
先に説明したデンドログラム履歴からクラスタを作成する手法を用いて、k=5でクラスタリングをした結果が、次の[表19]に示すようになる。
また、デンドログラム履歴からクラスタを作成後に、さらにクラスタを細かく分ける手法を用いて、k=5でクラスタリングをした結果が、次の[表20]に示すようになる。
次に、階層型クラスタリングを用いた際の考察について述べる。
まず、階層型クラスタリングを用いて、デンドログラムの履歴からクラスタサイズがkを満たすようにクラスタを作成したとき、一番情報損失が大きいクラスタ内のレコードを、次の[表21]に示す。
このように、クラスタサイズが大きいものの、情報損失量が大きいクラスタは、k以下のいくつかの似通った固まりでまとまっている傾向があった。
クラスタサイズが2k以上で、情報損失量が上位10%のクラスタを、k−means法を実行する手法を用いて、[表21]のクラスタ内レコードがどのように分かれたのかを以下に示す。
ここではクラスタ数は全部で638個あり、そのうちクラスタサイズが2k以上で情報損失量が10%のクラスタは43個ある。これらをk−means法を実行して、その後に元の595個と合わせてクラスタサイズを、k=5を満たすように合わせる処理を実行した。
次に示す[表22]のクラスタは、都道府県が長野県であるA1438,A1635,A2217,A2405と、静岡県であるA2278のレコードが含まれている。
次に示す[表23]のクラスタは、都道府県が愛知県であるA3094,A1201,A4158のレコードが含まれている。
次に示す[表24]のクラスタは、都道府県が北海道であるA3644,A4604,A2847と秋田県であるA1799のレコードが含まれている。
次に示す[表25]のクラスタは、都道府県が秋田県であるA4164と福島県であるA0980のレコードが含まれている。
次に示す[表26]のクラスタは、都道府県が香川県であるA2307と福岡県であるA2254,A4140のレコードが含まれている。
次に示す[表27]のクラスタは、都道府県が兵庫県であるA1333のレコードが含まれている。
次に示す[表28]のクラスタは、都道府県が広島県であるA3405のレコードが含まれている。
このように、階層型ではクラスタリングの履歴からクラスタを作っていく。データまたはクラスタを2つずつ合併しながらクラスタを作成して行くため、似通ったまとまり同士でまとまっている。
ここで、クラスタサイズが大きいために情報損失量が大きくなっているクラスタをさらに分けて各クラスタの情報損失量を下げることができる。すなわち、クラスタサイズが2k以上で、情報損失量が上位10%である対象のクラスタは、クラスタサイズ調整後は、類似の属性を持つクラスタに分割されるようになる。
クラスタサイズ調整後のクラスタを見ると、1つだけ全く異なるレコードやまとまりが含まれているクラスタが存在する。これは、理由として、k−means法ではサイズがk未満のクラスタがk以上になるために調整を行うが、この際に、調整が必要なクラスタ(比較元)よりも情報損失が多いクラスタから重心が一番近いクラスタ(比較先)を発見し、その比較先クラスタから最も近いデータを取得しているためである。
しかしながら、クラスタサイズの調整を繰り返して行くことで、情報損失が近く、かつ重心が近いクラスタは減ってくる。これは、クラスタ重心間距離が一番近いクラスが、実はあまり似ていない可能性がある。
本例の場合には、いずれも例でも情報損失量を従来の手法よりも減らすことができた。これは、従来の場合にはクラスタサイズが固定されており、またクラスタサイズ再調整時にサイズがkを超えていたら、調整対象のデータに一番近くても別のクラスタに入っていたのに対して、本例の場合にはクラスタサイズを固定せず、データが似ていたらサイズがkを超えていても挿入する調整処理を行う手法や、階層型クラスタリングでクラスタ数やサイズを固定にしない調整で、情報損失量を減少させることができる。
なお、k−means法と階層型クラスタリングによる手法では、階層型クラスタリングを適用した手法の方が、情報損失が少なく、さらに階層型の中でも、クラスタリング実行後に情報損失値をクラスタサイズが大きいクラスタを、k−means法を用いて再度クラスタを分ける手法が、最も情報損失が少ない結果が得られた。
11…データ入力部、12…レコード変換部、13…クラスタリング部、14…クラスタサイズ調整部、15…クラスタリングデータ出力部

Claims (5)

  1. データベースに蓄積された個人情報を含むデータを取得し、取得したデータに含まれる個人を識別できる属性を削除すると共に、データのフォーマット調整を行うレコード変換部と、
    前記レコード変換部によりフォーマット調整が行われたデータを、複数のクラスタに分割するクラスタリング部と、
    前記クラスタリング部で分割されたそれぞれのクラスタに含まれるデータの重心を計算して、その重心の変化を抑えながらクラスタごとのデータの数を調整するクラスタサイズ調整部と、
    前記クラスタサイズ調整部でサイズが調整されたクラスタのデータを出力するクラスタリングデータ出力部と、を備える
    クラスタリング装置。
  2. 前記クラスタリング部は、各クラスタを決められた数のデータとするクラスタリングを行い、
    前記クラスタサイズ調整部は、情報損失が大きい順にクラスタを並べ、先頭のクラスタの重心と距離が近いクラスタとの比較で、その比較した両クラスタのデータの数を調整する処理を繰り返すようにした
    請求項1に記載のクラスタリング装置。
  3. 前記クラスタリング部は、データを複数のクラスタから順にまとめる階層型のクラスタリングを行い、そのクラスタリングの履歴を示すデンドログラムを作成し、
    前記クラスタサイズ調整部は、前記デンドログラムの履歴から作成したクラスタを情報損失が大きい順に並べ、先頭のクラスタの重心と距離が近いクラスタとの比較で、その比較した両クラスタのデータの数を調整する処理を繰り返すようにした
    請求項1に記載のクラスタリング装置。
  4. データベースに蓄積された個人情報を含むデータを取得し、その取得したデータに含まれる個人を識別できる属性を削除すると共に、データのフォーマット調整を行うレコード変換処理と、
    前記レコード変換処理によりフォーマット調整が行われたデータを、複数のクラスタに分割するクラスタリング処理と、
    前記クラスタリング処理で分割されたそれぞれのクラスタに含まれるデータの重心を計算して、その重心の変化を抑えながらクラスタごとのデータの数を調整するクラスタサイズ調整処理と、
    前記クラスタサイズ調整処理でサイズが調整されたクラスタのデータを出力するクラスタリングデータ出力処理と、を含む
    クラスタリング方法。
  5. データベースに蓄積された個人情報を含むデータを複数のクラスタに分割して出力する処理を、コンピュータに実行させるプログラムにおいて、
    前記コンピュータに実行させる手順として、
    データベースに蓄積された個人情報を含むデータを取得し、その取得したデータに含まれる個人を識別できる属性を削除すると共に、データのフォーマット調整を行うレコード変換手順と、
    前記レコード変換手順によりフォーマット調整が行われたデータを、複数のクラスタに分割するクラスタリング手順と、
    前記クラスタリング手順で分割されたそれぞれのクラスタに含まれるデータの重心を計算して、その重心の変化を抑えながらクラスタごとのデータの数を調整するクラスタサイズ調整手順と、
    前記クラスタサイズ調整手順でサイズが調整されたクラスタのデータを出力するクラスタリングデータ出力手順と、を含む
    プログラム。
JP2017141082A 2017-07-20 2017-07-20 クラスタリング装置、クラスタリング方法及びプログラム Pending JP2019021198A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017141082A JP2019021198A (ja) 2017-07-20 2017-07-20 クラスタリング装置、クラスタリング方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017141082A JP2019021198A (ja) 2017-07-20 2017-07-20 クラスタリング装置、クラスタリング方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2019021198A true JP2019021198A (ja) 2019-02-07

Family

ID=65355663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017141082A Pending JP2019021198A (ja) 2017-07-20 2017-07-20 クラスタリング装置、クラスタリング方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2019021198A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021163014A (ja) * 2020-03-31 2021-10-11 富士通株式会社 生成方法、生成プログラム、および生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021163014A (ja) * 2020-03-31 2021-10-11 富士通株式会社 生成方法、生成プログラム、および生成装置
JP7359063B2 (ja) 2020-03-31 2023-10-11 富士通株式会社 生成方法、生成プログラム、および生成装置

Similar Documents

Publication Publication Date Title
TWI718643B (zh) 異常群體識別方法及裝置
WO2023279696A1 (zh) 业务风险客群的识别方法、装置、设备及存储介质
JP3195310B2 (ja) 情報の分析方法およびプログラムを記録した機械読み取り可能記憶装置
US10883345B2 (en) Processing of computer log messages for visualization and retrieval
TW201426578A (zh) 匿名資料集的產生方法及裝置與風險評估方法及裝置
JP2021504789A (ja) Esg基盤の企業評価遂行装置及びその作動方法
JPWO2019202711A1 (ja) ログ分析システム、ログ分析方法及びプログラム
JPWO2010125781A1 (ja) データ処理装置、データ処理方法、プログラム、及び集積回路
EP3040900B1 (en) Data securing device, data securing program, and data securing method
CN111784040B (zh) 政策模拟分析的优化方法、装置及计算机设备
Rautray et al. Document summarization using sentence features
CA2304387A1 (en) A system for identification of selectively related database records
JP6242540B1 (ja) データ変換システム及びデータ変換方法
JP6972935B2 (ja) 関連スコア算出システム、方法およびプログラム
Bay et al. Characterizing model errors and differences
WO2014006851A1 (ja) 匿名化装置、匿名化システム、匿名化方法、及び、プログラム記録媒体
CN112632612A (zh) 一种医疗数据发布匿名化方法
CN112540973A (zh) 一种基于关联规则的网络可视化方法
JP2001117947A (ja) 高次元データを分類するための方法及びそれにより形成される分類木並びにコンピュータシステム
JP7026653B2 (ja) クラスタリング装置、クラスタリング方法及びクラスタリングプログラム
CN117473431A (zh) 一种基于知识图谱的机场数据分类分级方法及系统
Steinmann et al. Contribution profiles of voluntary mappers in OpenStreetMap
US20210357808A1 (en) Machine learning model generation system and machine learning model generation method
JP2019021198A (ja) クラスタリング装置、クラスタリング方法及びプログラム
JP6015777B2 (ja) 秘匿化データ生成方法及び装置