JP2000040000A - デ―タ分析方法および装置 - Google Patents

デ―タ分析方法および装置

Info

Publication number
JP2000040000A
JP2000040000A JP11158820A JP15882099A JP2000040000A JP 2000040000 A JP2000040000 A JP 2000040000A JP 11158820 A JP11158820 A JP 11158820A JP 15882099 A JP15882099 A JP 15882099A JP 2000040000 A JP2000040000 A JP 2000040000A
Authority
JP
Japan
Prior art keywords
data
value
rule
database
item
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
JP11158820A
Other languages
English (en)
Inventor
Akira Maeda
章 前田
Hitoshi Ashida
仁史 芦田
Yoji Taniguchi
洋司 谷口
Yukiyasu Ito
幸康 伊藤
Yori Takahashi
ヨリ 高橋
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11158820A priority Critical patent/JP2000040000A/ja
Publication of JP2000040000A publication Critical patent/JP2000040000A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 (修正有) 【課題】データベースなどに格納されたデータを分析し
て利用者にとって有用な表現に変換して出力する。 【解決手段】データベースに格納された複数のデータ項
目に基づいてルールを生成する際、入力装置からの指示
に基づいて、IF節に用いる複数のデータ項目を選択し、
さらにIF節に対応するTHEN節に用いる複数のデータ項目
を選択し、データ項目が数値を含んでいれば、前記数値
を記号値に変換し、データ項目の値が欠損値を含んでい
る場合、前記データ項目の記号値として欠損値を示す記
号値を追加し、欠損値を示す記号値を生成すべきルール
で使用するか否かを個々のデータ項目に対して指示し、
さらに複数のデータ項目間の相関を示すルールの候補を
複数個生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベース装置など
の情報記憶装置内に格納された数値または記号で表現さ
れたデータの集まりを分析し、利用者にとって有用な表
現に加工変換するデータ分析方法および装置に関する。
【0002】
【従来の技術】計算機技術の進歩により、計算機内に蓄
積されるデータ量は年々増大している。特に、ネットワ
ーク化が進むにつれて、オンラインシステムを中心にこ
の傾向はますます顕著になっている。現在では、レコー
ド数で100万件、データ量でギガ(=10の9乗)バ
イトを越えるものも珍しくない。
【0003】計算機内に蓄積されたデータは、それだけ
では数値や記号の集まりに過ぎないことが多い。そこ
で、このデータの集まりを利用者にとって有用な情報に
変換し、データの有効活用を図ろうとする技術が提案さ
れている。最も広く知られている手法は、相関分析・重
回帰分析といった統計的手法である。
【0004】また、比較的新しい手法としては、利用者
にとって理解しやすい「もし〜ならば…である」といっ
たルール形式に変換して結果を出力する方法、すなわち
ルールインダクションと呼ばれる知識獲得手法を用いる
方法が、知られている。例えば、日立クリエイティブワ
ークステーション2050(商品名)ES/TOOL/
W−RI解説/操作マニュアルのページ23〜31に
は、データ間に存在する関係をルールの形で表現する手
法が述べられている。
【0005】この方法は、本来は与えられたデータから
エキスパートシステムへ入力可能なルールを生成するこ
とを目的としたものであった。しかし、蓄積されたデー
タに含まれている因果関係や規則性といった特徴を、人
間である利用者が発見するという目的に利用することが
可能である。
【0006】
【発明が解決しようとする課題】上記従来技術は、あく
まで計算機が利用できるルールを生成することを目的と
している。したがって、人間である利用者が、そのルー
ルを解釈することは可能ではあるが、もとより人間に理
解しやすい形式でルールを生成する訳ではないので、人
間が解釈しデータの特徴を理解するのに有効なルールを
生成することはできなかった。例を用いて、上記文献に
述べられている方法を説明する。
【0007】まず、データを個々の事例の集合と考え
る。例えば、半導体製造プロセスにおける品質管理デー
タベースを用いて、半導体の不良要因の分析をするとい
った利用方法では、個々の事例はウェハとよばれる製造
単位で管理され、それぞれの製造工程における処理パラ
メータや、各種検査結果などの情報の組を一つの事例と
して扱うことができる。図1に、このようなデータの例
を示す。
【0008】また、銀行の顧客データベースから顧客の
金融商品の購入動向を調べるといった利用方法では、年
齢・預金残高・職業・年収・金融商品購入履歴といった
顧客ごとの情報の組が1つの事例であり、分析の対象と
するデータはこの事例の集まりと見なすことができる。
この例に関しては、実施例で詳しく説明する。
【0009】上記従来技術によるルール生成の例を説明
する。例として、ある金融商品(商品Aとする)を購入
した顧客に共通の特徴を調べることを考える。この場
合、従来技術では、データの各項目(年齢や預金残高な
ど)の値から、金融商品Aを購入した顧客に対応する事
例と購入していない顧客に対応する事例とをできるだけ
精度よく分類するルールを生成することが目的となる。
【0010】上記従来技術では、項目の値の組(例えば
年齢が40歳以上でかつ預金残高が1000万以上、な
ど)の中で、与えられたデータをもっとも精度よく分類
する組を生成する。この場合の精度とは、特定の値を持
つ事例の部分集合の中で、金融商品Aを購入した顧客に
対応する事例の割合が大きければ大きいほど、購入した
顧客の特徴を精度よく分類するものと考える。この値の
組は、「IF 年齢が40歳以上 AND 預金残高が10
00万以上 THEN 金融商品Aを購入」というルールの
形式で表現することができる。
【0011】次に、生成されたルールで説明される事例
を、全体の事例の集合から除く。上記の例では、年齢が
40歳以上で預金残高が1000万以上という条件を満
たす事例を除くことになる。そして、残された事例の集
合に対して、もっとも精度よく分類する項目の値の組を
求める。以上の処理を繰り返すことにより、金融商品A
を購入した顧客を、購入していない顧客から識別するた
めのルール群を得ることができる。
【0012】以上の説明から分かるように、上記従来技
術で得られるルール群は、 IF 年齢が40歳以上 AND 預金残高が1000万以上 T
HEN 金融商品Aを購入 ELSE IF 職業が自営業 AND 年収が800万以上 THEN
金融商品Aを購入 ELSE IF … というように、IF … ELSE IF … ELSE IF …の
形式となる。
【0013】計算機がこのルール群を利用して分類をす
る場合には、先頭のIFから順に調べていくだけで機械的
に処理を実行できる。しかしながら、ルールの数が増え
れば増えるほど、人間がこのルールから金融商品Aを購
入した顧客の特徴を理解することは困難になっていく。
さらに、1つルールを生成する毎に、残された事例の集
合からルールを探しにいくという処理を繰り返すため、
事例の数が大きくなるにつれ、必要な処理時間が急速に
増大することも問題である。
【0014】さらに重大な問題として、上記の例題のよ
うな実世界のデータの場合、データには一般に非常に大
きな雑音が含まれているものと考えなければならない。
つまり、金融商品Aを購入するかどうかというのは、デ
ータベースに含まれている項目からは本質的には決定で
きないはずであるから、もともと非常に精度のよい分類
ルールを生成することは期待できない。また、上に挙げ
た半導体の不良要因分析の場合では、不良の発生がラン
ダムに変動する要因の影響を受けるため、データには大
きな雑音が含まれる。このような場合にも、確定的なル
ールを生成することを望むことが困難な場合が多い。
【0015】上記のような問題の場合には、データの大
体の特徴を表現するような分析方法が有効である。しか
しながら、上記従来技術のような方法では、多くの項目
の値を組み合わせて少しでも分類精度のよいルールを探
しにいくので、一般にIF部にあらわれる条件の数は増大
するが、そのルールにあてはまる事例の数は減少すると
いう現象が起こる。これではデータの大体の特徴を理解
するという目的を満足することは困難である。
【0016】実際のデータベースには非常に多くの種類
の情報が格納されている。上記の半導体品質管理データ
の例でいえば、ウェハ番号・製造開始年月日など、また
顧客データの例でいえば、氏名・電話番号など、明らか
に分析の目的とは関係ないものも含まれている。一方
で、半導体品質管理データの場合には製品種別コード、
顧客データの場合には住所のように、場合によっては分
析有効な情報もある。
【0017】そこで、そのように多くの種類の情報から
なるデータを用いて上記の例のような分析をする場合に
は、まずどのような項目のデータを使って分類を試みる
かということを、利用者があらかじめ指定しなければな
らない。項目の種類が増えれば増えるほど、この作業は
複雑になる。もしかすると関係があるかもしれないよう
な項目を全て含めて分析しようとすれば、必然的に使用
する項目数は増え、処理時間の増大を招く。したがって
効率よく分析をしようと思えば、注意深く使用項目を選
ばなければならず、利用者のノウハウの程度によって、
分析の結果の質が大きく左右されることになる。
【0018】さらに、項目によってはいろいろな見方で
の分析が必要になる場合がある。例えば、顧客データの
例で、地域別に商品購入の動向が異なるような場合、住
所という項目を県別で考えるべきか、東北地方/関東地
方といったレベルで考えるか、東日本/西日本の2分類
で考えるべきかというのは、基本的には分析して見なけ
れば分からない。このような場合を全て尽くそうと思え
ば、何度も繰り返して従来技術による分析を試みる必要
があり、利用者の負担が増大するという問題点がある。
【0019】これを避けるために、いろいろなレベルで
の見方を全てデータ項目に追加するという方法もある。
住所の例でいえば、県別/地域別/東西別という項目を
分析すべきデータ項目として考えることは可能である。
しかし、従来技術による分析では、項目間の意味的な関
連は一切考慮していないため、処理に大きな無駄が生じ
る。
【0020】例えば、県別というレベルでの分類を試み
ている間は、それより上位のレベルである地域別や東西
別という項目の値は本来考慮する必要がないが、それに
もかかわらず、従来技術では無駄な分析を行ってしま
う。さらに、項目の処理順序によっては、「IF 住所が
関東地方 AND 住所が神奈川県 THEN …」といっ
た、明らかに意味的に冗長なルールが生成される可能性
がある。計算機による分類が目的の場合には、このよう
な冗長性は分類精度には影響しないが、人間がデータの
特徴を理解するという目的には明らかに有害である。
【0021】また、実際のデータベース中には欠損値と
呼ばれる未知のデータ項目が含まれていることが多い。
統計手法などで分析をするときには、欠損値は単に無視
し、データがないものと見なさざるを得ない。上記ルー
ルインダクションの方法でも、欠損値をもつデータ項目
は分類精度には影響しないので、分類ルール中には現れ
ることがない。
【0022】しかし、データの値が欠損していること自
身に意味がある場合がある。例えば住所という項目が欠
損値ということが、匿名で銀行口座を作っていることを
意味する場合、このことが金融商品Aの購入に影響を与
えることが考えられる。このような場合には、「IF 住
所が欠損値 THEN …」というルールが意味を持つこと
になる。従来の方法では、このようなルールは一般的に
は生成できず、また生成するためには欠損値を明示的に
特定の値に変換するような人手による処理が必要になる
という問題点があった。
【0023】さらに、上記従来技術による方法では、あ
くまで分類精度を優先してルールを生成するため、でき
るだけ多くの事例を説明するという意味で一般的なルー
ルが必ずしも先に生成されるとは限らない。一方、今考
えているようなデータ分析方法では、処理時間が長い場
合に途中で利用者が割り込みをかけることもある。この
ようなときに、利用者にとって利用価値の高い一般的か
つ単純なルールから先に生成されていれば、割り込みを
かけた時点までに生成されたルールを利用することが可
能になるが、従来技術による方法ではこのような利用が
できないという問題点もある。
【0024】本発明は、データベースなどに格納された
データを分析して利用者にとって有用な表現に変換して
出力する方法および装置において、雑音を含む膨大なデ
ータであっても多大な処理時間を必要とすることなく、
人間に理解しやすい形式でデータの特徴を提示できるよ
うにすることを目的とする。特に、欠損値を含むデータ
であっても、有効に活用して分析が実行できるようにす
ることを目的とする。また、利用者が処理方法に関する
特別な知識を有しない場合にも、データの特徴を精度よ
く表現する結果を生成できるデータ分析方法および装置
を提供することを目的とする。
【0025】
【課題を解決するための手段】本発明は、処理装置を用
い、データベースに格納された複数のデータ項目に基づ
いてルールを生成するデータ分析方法であって、入力装
置からの指示に基づいて、IF節に用いる複数のデータ項
目を前記データベースから選択し、前記入力装置からの
指示に基づいて、前記IF節に対応するTHEN節に用いる複
数のデータ項目を前記データベースから選択し、前記選
択されたデータ項目が数値を含んでいれば、前記数値を
記号値に変換し、解析すべきレコード内に存在するある
データ項目の値が欠損値を含んでいる場合、前記データ
項目の記号値として欠損値を示す記号値を追加し、前記
欠損値を示す前記記号値を生成すべきルールで使用する
か否かを個々のデータ項目に対して指示し、さらに前記
データベースに格納されたデータを解析することによ
り、前記選択された複数のデータ項目間の相関を示すル
ールの候補を複数個生成することを特徴とする。選択可
能なデータ項目の数は、予め決められた値以下とすると
よい。
【0026】また本発明は、処理装置を用い、データベ
ースに格納された複数のデータ項目に基づいてルールを
生成するデータ分析方法であって、入力装置からの指示
に基づいて、IF節に用いる複数のデータ項目を前記デー
タベースから選択し、前記入力装置からの指示に基づい
て、前記IF節に対応するTHEN節に用いる複数のデータ項
目を前記データベースから選択し、前記選択されたデー
タ項目が数値を含んでいれば、前記数値を記号値に変換
し、解析すべきレコード内に存在するあるデータ項目の
値が欠損値を含んでいる場合、前記データ項目の記号値
として欠損値を示す記号値を追加し、前記データ項目と
前記THEN節のデータ項目との依存関係に基づいて、前記
欠損値を示す前記記号値を使用するか否かを決定し、さ
らに前記データベースに格納されたデータを解析するこ
とにより、前記選択された複数のデータ項目間の相関を
示すルールの候補を複数個生成することを特徴とする。
【0027】さらに本発明は、処理装置を用い、データ
ベースに格納された複数のデータ項目に基づいてルール
を生成するデータ分析方法であって、ルール生成に対し
て選択可能であるか否かを示す特定の表示形態によって
前記データベースのデータ項目を表示装置に表示し、入
力装置からの指示に基づいて、条件および結論節に用い
る選択可能なデータ項目を前記データベースから選択
し、さらに前記データベースに格納されたデータを解析
することにより、前記選択された複数のデータ項目間の
相関を示すルールの候補を複数個生成することを特徴と
する。
【0028】また本発明は、処理装置を用い、データベ
ースに格納された複数のデータ項目に基づいてルールを
生成するデータ分析方法であって、入力装置からの指示
に基づいて、条件および結論節に用いる複数のデータ項
目を前記データベースから選択し、前記選択されたデー
タ項目が数値を含んでいれば、前記数値を記号値に変換
し、解析すべきレコード内に存在するあるデータ項目の
値が欠損値を含んでいる場合、前記データ項目の記号値
として欠損値を示す記号値を追加し、さらに前記データ
ベースに格納されたデータを解析することにより、前記
選択された複数のデータ項目間の相関を示すルールの候
補を複数個生成することを特徴とする。
【0029】また本発明は、データベースに格納された
複数のデータ項目に基づいてルールを生成するデータ分
析装置であって、入力装置からの指示に基づいて、IF節
に用いる複数のデータ項目を前記データベースから選択
する第1の選択手段と、前記入力装置からの指示に基づ
いて、前記IF節に対応するTHEN節に用いる複数のデータ
項目を前記データベースから選択する第2の選択手段
と、前記選択されたデータ項目が数値を含んでいれば、
前記数値を記号値に変換する変換手段と、解析すべきレ
コード内に存在するあるデータ項目の値が欠損値を含ん
でいる場合、前記データ項目の記号値として欠損値を示
す記号値を追加する追加手段、記欠損値を示す前記記号
値を生成すべきルールで使用するか否かを個々のデータ
項目に対して指示する指示手段と、前記データベースに
格納されたデータを解析することにより、前記選択され
た複数のデータ項目間の相関を示すルールの候補を複数
個生成する生成手段とを備えたことを特徴とする。
【0030】
【作用】本発明によれば、入力装置からの指示に基づい
て、IF節に用いる複数のデータ項目がデータベースから
選択される。また、入力装置からの指示に基づいて、前
記IF節に対応するTHEN節に用いる複数のデータ項目が前
記データベースから選択される。前記選択されたデータ
項目が数値を含んでいれば、前記数値が記号値に変換さ
れる。解析すべきレコード内に存在するあるデータ項目
の値が欠損値を含んでいる場合、前記データ項目の記号
値として欠損値を示す記号値が追加される。前記欠損値
を示す前記記号値を生成すべきルールで使用するか否か
が、個々のデータ項目に対して指示されると、前記デー
タベースに格納されたデータを解析することにより、前
記選択された複数のデータ項目間の相関を示すルールの
候補が複数個生成される。あるいは、前記データ項目と
前記THEN節のデータ項目との依存関係に基づいて、前記
欠損値を示す前記記号値を使用するか否かが決定される
と、前記データベースに格納されたデータを解析するこ
とにより、前記選択された複数のデータ項目間の相関を
示すルールの候補が複数個生成される。
【0031】すなわち本発明によれば、欠損値を示す記
号値が追加されてデータの解析が行われる。
【0032】
【実施例】以下、図面を用いて本発明の実施例を説明す
る。本実施例では、前述の金融商品購入顧客の分析の例
を用いる。
【0033】図2は、分析の対象とするデータの例を示
す。ある金融商品の購入動向に関して動向の分析をする
ことを考える。図2のデータには、顧客番号・氏名・年
齢・性別・住所・支店コード・県コード・地域コード・
預金残高・ローン残高・クレジットカード種別などの情
報とともに、ある金融商品の購入実績が格納されてい
る。
【0034】このデータを分析しようとする利用者は、
顧客のどんな属性が金融商品の購入に影響しているかを
分析することにより、ダイレクトメールや訪問販売な
ど、その金融商品拡販のための戦略(どのような顧客に
アプローチをするのが最適か、など)を検討することを
目的としている。
【0035】図3に、分析処理の全体フローを示す。ま
ず処理301では、分析対象データを定義し、図2のよ
うな分析対象データの表を作成する。次に処理302
で、分析対象データの読み込みを行う。
【0036】処理303では、まず「商品購入」という
項目が結論項目であることを指定する。次に、データの
各項目を調べ、項目が記号属性を持つか数値属性を持つ
かを調べる。各項目について、条件項目として選択する
かどうかを判定し、選択された項目が数値属性をもつ項
目である場合には、それを記号値に変換する。最終的
に、ルール生成処理の入力となるデータを生成する。
【0037】処理304では、事例数などの情報に基づ
いて、ルール生成処理のパラメータ(最大条件節数、最
小カバー率、など)を決定する。処理305では、決定
したパラメータを表示装置に表示し、必要ならば利用者
がパラメータを修正する。処理306ではルール生成処
理を実行し、処理307で結果を出力装置に出力する。
【0038】なお、図3ではルールの学習処理は省略し
たが、処理307の後、利用者の指示により随時学習処
理を実行することができる。
【0039】図4に、以上の処理を実行するためのシス
テムのブロック構成図を示す。システムは大きく3つの
処理モジュールからなる。利用者とのインタラクション
を制御するユーザインタフェースモジュール401、分
析対象のデータからルールを生成するルール生成処理モ
ジュール402、およびメンバシップ関数の学習によっ
て生成されたルールの微調整を実行するルール学習処理
実行モジュール403、である。
【0040】モジュール401は、利用者からの指示を
コマンドとして認識し、指示された方法に基づいて分析
対象データベース404からデータを入力し、ルール生
成処理実行モジュール402の入力となるルール生成用
ワークファイル405を生成し、同時にルール生成処理
を制御するためのパラメータ類の情報をルール生成パラ
メータファイル406に出力する。利用者からのルール
生成実行コマンドがモジュール401に入力されると、
モジュール401はモジュール402を起動する。
【0041】モジュール402が起動されると、ファイ
ル405とファイル406の情報を読み込み、ファイル
405のデータに対して、ファイル406で指定された
パラメータでルール生成処理を実行し、結果をルールフ
ァイル407に出力する。ルールファイル407には、
生成されたルールの情報と、生成されたルールに含まれ
る述語を定義するメンバシップ関数の情報が格納されて
いる。
【0042】モジュール402の実行が終了すると、制
御はモジュール401に戻り、生成されたルールをあら
かじめ定められた形式で利用者に表示する。利用者は、
表示結果に基づいて、以上の処理をパラメータを変更し
て再度実行するなどの作業を続行することができる。
【0043】ここで生成されたルールの学習コマンドが
モジュール401に入力された場合、モジュール401
は、モジュール403を起動する。モジュール403が
起動されると、まずデータベース404とルールファイ
ル407の内容を読み込み、ルールファイル407に含
まれるそれぞれのルールに対してメンバシップ関数の学
習を実行する。処理終了後、学習したメンバシップ関数
の情報を再びルールファイル407に格納した後、制御
をモジュール401に戻す。
【0044】図3に示した処理のうち、処理306がモ
ジュール402で実行され、残りの処理はモジュール4
01で実行される。
【0045】以下、各処理の詳細を、図3のフローにし
たがって順に説明する。
【0046】図5および図6は、処理301において実
行される分析対象データ定義処理の内容を説明する図で
ある。分析の対象となるデータは、複数のリレーション
テーブルに格納されており、それぞれ図5(a)の顧客情
報テーブル、図5(b)の支店情報テーブル、図5(c)の商
品購入履歴テーブルからなる。図6は、図5の3つのテ
ーブルの相互の関連を指定し、分析対象となる図2のテ
ーブル構造定義を模式的に示した図である。これらの定
義は、リレーショナルデータベース管理システム(RD
BMS)で提供される機能を用いて行うことができる。
【0047】図3の処理302では、図2で示した分析
対象データをデータベースから読み込み、計算機内のメ
モリに展開する。データ読み込み時には、各項目の値が
数値か記号値かということを判定し、かつ数値の場合に
は最大値/最小値、記号値の場合には異なる記号の数を
各項目毎に求めておく。
【0048】図7に、図3の処理303における条件/
結論項目の指定画面を示す。処理303では、この図7
のように画面表示を行い、ユーザに条件項目と結論項目
の指定をさせる。
【0049】まず、データ読み込み直後にはいずれの項
目も選択されておらず、図2の分析対象データの各項目
の名称が未使用項目名リストボックス701に表示され
ており、条件項目名リストボックス702、および結論
項目名テキストボックス703の内容は空である。
【0050】ここで、リストボックス701の表示の際
には、処理302で求めた記号値をもつ属性のうち、異
なる記号の数があらかじめ定められた数、例えば20個
以上の場合には条件項目/結論項目として選択すること
を不可とし、その項目名が選択不可であることを表示す
るものとする。これは、記号値の数が事例数に比べて大
きな項目を条件または結論項目として指定すると、生成
されるルールが細分化されて利用価値が低下することを
防ぐためである。例えば、図7の顧客番号・氏名・住所
が相当する。図7では、項目名の先頭に「*」を付加し
てその項目が選択不可であることを表現しているが、も
ちろん網掛け表示/淡色表示などを用いても同様の効果
が実現できる。このようにすることにより、ルール生成
に使用しても意味のない項目を使用することを防止する
ことができる。
【0051】リストボックス701中の(選択可能な)
項目をマウス等の入力装置を用いて複数選び、ボタン7
06をクリックすることにより、選択中の項目が条件項
目として選択され、リストボックス701からその項目
名が削除され、リストボックス702にその項目名が追
加されて表示される。同様に、リストボックス701の
項目を1つ選択してボタン709をクリックすることに
より、結論項目が選択される。リストボックス702お
よび703の項目を削除するときも同様に、削除項目を
選択してボタン707、710をクリックする。
【0052】ボタン705をクリックすることにより、
リストボックス701に表示されている項目で選択不可
の項目以外を全て条件項目に追加することができる。ボ
タン708は、逆にリストボックス702中の全ての項
目を条件項目から削除するためのボタンである。
【0053】これらの選択が終了した後、ボタン711
をクリックすると、条件/結論項目選択処理が終了す
る。また、ボタン712をクリックすると、その時点で
の項目選択情報を全て破棄する。
【0054】次に、ボタン704をクリックしたときに
実行される条件項目自動選択処理について説明する。た
だし、この処理は結論項目が指定されているときに実行
できるため、ボタン704は結論項目が指定されている
ときだけ有効であるものとする。
【0055】図8は、条件項目自動選択処理の処理フロ
ーである。図7において、結論項目(テキストボックス
703)の指定の後、ボタン704をクリックすると図
8の処理が実行開始する。
【0056】処理801では、使用不可の項目を除く全
ての項目に関して処理802、803を繰り返す。処理
802では、現在処理している項目が数値属性を持つか
記号値属性を持つかを調べ、数値属性を持つ場合には処
理803を実行する。
【0057】処理803では、処理中の項目の値をあら
かじめ定められた個数、例えば5個の記号値に変換す
る。図2中の「年齢」という項目の例では、項目値のと
りうる値の範囲を例えば「20未満」「20以上30未
満」「30以上40未満」「40以上50未満」「50
以上」の5つの範囲に分割し、5つのカテゴリに分類す
ることになる。この分類の方法には、いろいろな方法が
あるが、例えば、下記の3つの方法などがある。
【0058】1)等範囲分割:とりうる値の範囲を等分割
する。例えば年齢の最小値が0、最大値が75とすれ
ば、0〜14、15〜29、30〜44、45〜59、
60〜75と分類する。
【0059】2)平均/標準偏差分割:年齢の値の分布の
平均と標準偏差を求め、その値を元に分割する。例えば
平均をμ、標準偏差をσとすると、μ−0.84σ、μ−0.
25σ、μ+0.25σ、μ+0.84σという値を分割点とす
る。この値は、分布が正規分布をすると仮定したとき
に、各分類に含まれる確率を等しくする値である。
【0060】3)等数分割:実際の年齢の値の分布を調
べ、各分類に含まれる事例の数が等しくなるように分類
する。
【0061】どの方法を用いて分類するかは、あらかじ
めデフォルトの方法を用意しておき、必要に応じてユー
ザが指定できる手段を用意しておくものとする。
【0062】上記の方法によって分類された数値データ
は、便宜的に「カテゴリ1」「カテゴリ2」〜「カテゴ
リ5」という値を持つ記号値データに変換される。
【0063】処理804では、結論項目として指定され
た項目以外の項目中の任意の2つの項目の組からなるす
べての組み合わせについて、2つの項目間の類似度尺度
をすべて計算する。類似度尺度は、次のように計算す
る。
【0064】まず、2つの項目をそれぞれX、Yとし、
そのとりうる値をxi(i=1,Nx),yj(j=1,Ny)とする。X、
Yは、もともと記号値を持つ項目であっても、上記の方
法により数値を記号値に変換した項目であってもよい。
XとYを確率変数と考えると、その間に相互情報量が定
義される。
【0065】相互情報量に関しては、多くの情報理論の
教科書に解説されている。相互情報量とは、例えばX=
xiという情報が与えられたときに、Yの値の発生する確
率分布が持つ情報量がどう変化するかに関係した量であ
り、いわばXとYの間の関連度を示す量である。相互情
報量I(X;Y)は、次の式で定義される。 I(X;Y)=ΣiΣj P(xi,yj)log[P(xi,yj)/P(xi)P(yj)] (1)
【0066】ここで、Σiは添字iに関する和、P(xi)は
X=xiとなる確率、P(xi,yj)はX=xi、Y=yjとなる
確率を表す。確率はデータ中のレコードの出現頻度から
計算するものとし、例えば、P(xi)=N(xi)/N、Nは
全レコード数、N(xi)はX=xiとなるレコード数とす
る。
【0067】I(X;Y)≧0という性質があり、I
(X;Y)の値が大きければ大きいほどXとYの間には関
連があることを示しているとみなせる。極端な場合、X
とYが全く独立の場合には、P(xi,yj)=P(xi)P(yj)
となり、I(X;Y)=0となる。
【0068】この性質から、項目Xと項目Yの類似度尺
度D(X;Y)を、次の式で定義することができる。 D(X;Y)=1/I(X;Y) (2) ただし、I(X;Y)=0のときは、Dの値は非常に大き
な固定値をとるものと約束しておく。
【0069】処理805では、処理804で結論項目以
外のすべての項目の組み合わせごとに計算した類似度尺
度Dを基準にして、結論項目以外の項目をクラスタリン
グする。すなわち、D(X;Y)を項目Xと項目Yの距離
とみなし、全ての項目間の距離に基づいて、距離の近い
項目をまとめあげ、いくつかのクラスタとして分類す
る。
【0070】クラスタリングの方法には様々なアルゴリ
ズムが知られており、その詳細は一般的な統計学の教科
書・文献に述べられているので、ここでは説明を省略す
る。例えば、k-means法と呼ばれる方法を用いるものす
る。これによって、条件項目の候補となる項目の内、お
互いに類似度(関連度)の高い項目を一つのクラスタに
まとめあげることができる。
【0071】多くのアルゴリズムではクラスタ数をあら
かじめ指定するが、ここではデフォルト値として全デー
タの項目数の1/10をクラスタ数とするものとする。
すなわち、図2の分析対象データの項目数が62項目の
場合には、62÷10=6(切り捨て)個のクラスタを
生成するものとする。もちろん必要に応じてユーザがク
ラスタ数を直接指定する手段も用意しておくものとす
る。
【0072】処理806では、結論項目とそれ以外の項
目の組み合わせに関して、依存度尺度を計算する。依存
度尺度は、例えば処理804で説明した相互情報量I
(X;Y)を用いることができる。
【0073】処理807では、処理805で分類された
クラスタについて、それぞれのクラスタに属する項目の
中で最も結論項目との依存度尺度が大きな項目を選択
し、それらの項目を条件項目として採用する。
【0074】以上、図8の処理により、数値・記号値を
もつ項目が混在したデータから、結論項目との関連度が
最も高く(依存度が大きい)、かつ条件項目間の関連度
をできるだけ低く(独立性を大きく)した条件項目を自
動的に選択することが可能になる。これによって、以下
の処理で生成されるルールの高精度化が図れ、かつ類似
の条件項目を使用しないので、ルール間の独立性を高め
ることができるので、生成ルールの可読性/有用性を高
めることができるという効果がある。
【0075】処理303においては、上述の処理で条件
項目に選択された項目に対して、欠損値対策処理を実行
する。欠損値対策処理は、次のステップを条件項目に選
択された各項目に対して行う。
【0076】ステップ1:選択中の項目に対し、欠損値
データが含まれるかどうかを調べる。欠損値データは、
特別な数値(例えば負の最大値)または記号値(例えば
空の文字列)で表現されているものとする。欠損値が含
まれていなければ、処理を終了する。
【0077】ステップ2:選択中の項目の値が欠損値か
欠損値以外かという分類をしたときの、結論項目Zとの
相互情報量I(X;Z)を求める。Xは、選択中の項目の
値が欠損値か欠損値以外かという値を持つ確率変数であ
る。
【0078】ステップ3:ステップ2で求めた相互情報
量I(X;Z)があらかじめ定められたしきい値Ithより
も大きな場合には、欠損値であるかないかということと
結論項目とが所定の程度以上に関連しているということ
だから、選択中の項目の欠損値を新しい記号値として追
加する。
【0079】以上の処理により、欠損値であること自身
に意味があるとステップ3で判断された場合には、「欠
損値」という特別の記号値がその項目に追加され、後述
のルール生成にその記号値を使用することができるよう
になる。それ以外の場合には、その項目の欠損値は、後
述するルール生成処理では一切無視される(どの記号値
にも属さず、生成ルールにも決して現れることがない)
特別な値として扱われる。
【0080】図3の処理303における数値→記号値変
換処理は以下のように行う。
【0081】図9は、数値→記号値変換方法の一覧表示
である。ユーザは、表示装置上の図9のような表示を参
照して、マウスなどを用いて各項目について変換方法を
指定する。
【0082】図9において、項目名表示欄901には、
本来数値属性をもち、記号値に変換される項目の名称が
表示される。記号数表示欄902には、記号値に変換し
た後の異なる記号の数が表示される。記号名称表示欄9
03には、記号値の名称が表示される。
【0083】図9の例では、年齢は20未満、20代、
…、預金残高は少ない、ふつう、多い、ローン残高は小
さい、中くらい、…、とそれぞれ異なる記号値が割り当
てられている。変換方法表示欄904には、図8の処理
803で説明した数値→記号値変換方法が表示される。
図9の例で、年齢に対応する変換方法がユーザ指定とな
っているが、このユーザ指定とは、ユーザが分割方法を
直接指定したことを示している。
【0084】各項目に対する記号値変換方法の指定が終
了した後、ボタン906をクリックすることで変換方法
指定処理が終了し、ボタン907をクリックすることで
それまでの指定内容が破棄される。ボタン905をクリ
ックすると、図8の処理803でも説明したようにデフ
ォルトの記号値変換方法で全ての項目の変換方法をリセ
ットする。
【0085】各項目毎に変換方法を指定するには、欄9
01の項目名の部分をダブルクリックする。これによ
り、図10の変換方法指定画面が表示され、当該項目の
変換方法を指定することができるようになる。
【0086】図10において、オプションボタン100
1は、選択中の項目の記号値変換方法として、等数分割
・等範囲分割・平均/標準偏差分割・ユーザ指定分割の
どの方法を用いるか、およびそれぞれの分割方法をクリ
スプ的に行うかファジィ的に行うかを指定する。
【0087】テキストボックス1002には、記号値に
変換する際の記号数を入力する。
【0088】記号名称表示欄1003には、現在の記号
名称が表示されている。ユーザが、この記号名称を変更
したい場合には、直接、欄1003の該当領域をクリッ
クすることにより記号名称を入力することができる。こ
れは、各記号値の最小値表示欄1004および最大値表
示欄1005に関しても同様である。ただし、最小値ま
たは最大値を直接ユーザが変更した場合には、オプショ
ンボタン1001は自動的にユーザ指定分割方法を指定
した状態に変化するものとする。
【0089】欄1004または欄1005の値が変更さ
れると、レコード数表示欄1006の内容もそれに応じ
て自動的に変更される。これは、メモリ中に記憶されて
いるデータを用い、それぞれの記号値に対応するレコー
ドが何件あるかをカウントすることによって行う。
【0090】オプションボタン1001のうちクリスプ
分割またはファジィ分割のいずれかを指定することによ
って、欄1004および欄1005で表示される最小値
/最大値の範囲で記号値変換処理をクリスプ的に行うか
ファジィ的に行うかを指定できる。ファジィ的に行うこ
とにより、記号値変換によって失われる情報量を最小限
にし、生成されるルールの精度を向上することができ
る。以下、この処理について説明する。
【0091】ファジィ的な分割をする際にも、各記号値
の値の範囲は図10の欄1004および欄1005には
最小値/最大値として表示されるが、それをファジィと
して解釈する。図11は、このようなファジィ的分割を
図10のローン残高の記号値変換の例で説明する図であ
る。
【0092】図11の横軸はローン残高の数値を万円単
位で表示し、縦軸は「小さい」「中くらい」「大きい」
という(ファジィ)記号値の適合度を表す。「小さい」
という記号値にはメンバシップ関数1101が、「中く
らい」にはメンバシップ関数1102、「大きい」には
メンバシップ関数1103が対応する。メンバシップ関
数の形状は、傾きの絶対値が一定、各記号値の分割点
(図では、「小さい」「中くらい」の分割点である50
0、「中くらい」「大きい」の分割点である1000の
2カ所)でそれぞれのメンバシップ関数値が0.5にな
り、かつどのような値に対しても0以外の値をもつメン
バシップ関数は高々2個であり、かつメンバシップ関数
値の和が1.0になるように設定することができる。
【0093】例えば図11で、「ローン残高=600
(万円)」という数値は、「中くらい」という記号値に
対してが0.8、「大きい」という記号値に対して0.2とい
うメンバシップ値を持つことになる。すなわち、「ロー
ン残高=600」という値をもつレコードは、「ローン
残高」が「中くらい」というレコードが0.8個分、「大
きい」というレコードが0.2個分の2つに分割されたよ
うに振る舞うものとみなすことができる。
【0094】このようなファジィ分割の場合には、図1
0の欄1006に表示されるレコード数も、それぞれの
メンバシップ値の合計と考えることができ、一般に実数
の値をとることになる。
【0095】次に、図3の処理304におけるルール生
成パラメータ算出処理を説明する。ルール生成処理を制
御するパラメータとしては、次の5種類のパラメータを
考える。 ・生成ルール数 ・全体カバー率 ・最大条件節数 ・最小カバー率 ・カバー率優先係数
【0096】生成ルール数は、ルール生成処理で生成す
べきルール数を指定するパラメータである。デフォルト
値は、使用する条件項目数Nから次の関係式にしたがっ
て定める。
【0097】(生成ルール数のデフォルト値)=N *
(最大条件節数) これは、一般的に条件項目数が多くなればデータの特徴
を説明するために生成すべきルール数も増えることを反
映させたものである。
【0098】カバー率とは、あるルールの条件部を満た
す事例の数の、全体の事例数に対する割合と定義する。
全体カバー率は、生成したルールに対して、少なくとも
1つのルールの条件部を満たす事例の数の、全体の事例
数に対する割合を指定するパラメータである。生成する
ルール数を大きくすれば全体カバー率は大きくなるとい
う関係がある。全体カバー率に対してはデフォルト値は
用意しない(すなわちユーザの明示的な指定によっての
み値を設定できる)。
【0099】最大条件節数は、ルールの条件部に含まれ
る述語数の最大値を指定するパラメータである。例え
ば、最大条件節数3に指定した場合、 もし、X1がA1 かつ X2がA2 かつ X3がA3 ならば
ZはB というルールは生成されうるが、さらに「〜 かつ X4
がA4 ならば 〜」というルールは(条件節数が4とな
るので)生成されないことになる。デフォルト値は3と
する。
【0100】最小カバー率は、生成されるルールのカバ
ー率の最小値を指定するパラメータで、ここで指定され
た値以下のカバー率をもつルールは、特殊なルールとし
て生成されない。最小カバー率のデフォルト値は、10
0/(生成ルール数)(単位パーセント)とする。これ
は、一般的に生成ルール数が多いほど細かなルールでも
必要とされることを考慮したものである。
【0101】カバー率優先係数は、ルールに対する評価
尺度におけるカバー率と精度の関係を指定するもので、
詳細は後述のルール生成処理において説明する。デフォ
ルト値は1.0(カバー率を最大限に優先)とする。
【0102】図3の処理305では、処理304で算出
したルール生成パラメータを表示装置に表示し、必要に
応じてユーザが修正できるようにする。図12に、表示
画面例を示す。
【0103】テキストボックス1201〜1205に
は、図3の処理304で算出されたルール生成パラメー
タの値が表示される。図の例では、生成ルール数=2
4、全体カバー率=指定なし、最大条件節数=3、最小
カバー率=4%、カバー率優先係数=1.0である。
【0104】ユーザは、テキストボックスを直接クリッ
クすることで表示されたパラメータの値を入力すること
ができる。図12の表示画面には、分析対象となるデー
タの他の情報(データファイル名、レコード数、条件項
目数、結論項目とその記号値)が表示領域1206に表
示されているので、ユーザはこれらの情報を参考にしな
がらルール生成パラメータの値を修正することが可能で
ある。
【0105】パラメータの修正後、ボタン1207をク
リックすることにより修正した値が有効になり、ボタン
1208がクリックされると修正した値は破棄される。
【0106】図3の処理306では、処理304および
処理305で指定されたルール生成パラメータにしたが
ってルール生成処理を実行する。
【0107】ルール生成処理では次の形式のルールを生
成する。 ・もし X1 が A1 かつ X2 が A2 かつ …
かつ Xn が Anならば Y が B ここで、Xiはそれぞれ条件項目名称、Aiは項目Xiの
記号値の名称である。同様に、Yは結論項目名称、Bは
項目Yの記号値の名称である。
【0108】「XiがAi」という組を条件節と呼ぶ。上
記のルールは、条件節をn個もつルールの例である。条
件節全体を条件部とよぶ。また「YがB」を結論節と呼
ぶ。本実施例では結論部は1つの結論節からなるものと
しておく。
【0109】ルールには、評価尺度と呼ばれる実数値を
割り当てる。評価尺度の大きなルールほど、ルールとし
ての価値が高いものとみなす。
【0110】図3の処理306では、条件節と結論節の
組み合わせの中から、ルール評価尺度の大きなルールを
選び出すという処理を実行する。これにより、価値が高
いルールを選ぶことができる。
【0111】本実施例において、「もし A ならば
B」というルールの評価尺度μ(A→B)は次式のよう
に定義される。 μ(A→B)=P(A)^β * log[P(B|A)/P(B)] (3)
【0112】ここで a^b はaのb乗を意味する。P
(A)は分析対象とするデータの中で条件部Aが満足さ
れる確率、すなわち事例全体の中でAという条件を満た
す事例の割合、を表す。同様に、P(B)は結論部Bが
満足される確率、P(B|A)はAという条件を満たす
という前提で結論部Bが満足される確率を表す。βは図
3の処理304で説明したカバー率優先係数である。式
(3)を事例の数で書き直すと、P(B|A)=P(A
&B)/P(A)であることから、 μ(A→B)=[N(A)/N]^β * log[N・N(A&B)/N(A)N(B)] (4) となる。
【0113】ただし、 N: 全体の事例数 N(A): 条件部Aを満たす事例の数 N(B): 結論部Bを満たす事例の数 N(A&B): 条件部Aと結論部Bを同時に満たす事例の数 である。
【0114】式(4) の定義の第一因子はルールのカバー
率のβ乗であり、第二因子は精度に対応する。すなわ
ち、カバー率が大きく(できるだけ広い範囲の事例を説
明し)、かつ精度がよい(ルール全体が成立する確率が
大きい)ほど、高い評価尺度をもつことになる。一般に
は広い範囲をカバーするほど精度は低下する傾向にある
ので、これら2つの因子は互いに背反する傾向にある。
ルール生成パラメータの一つであるカバー率優先係数β
は、評価尺度のなかでどの程度カバー率を重視するかを
決めるもので、β=1.0 の時にはカバー率を最も優先し
て考慮し、β=0.0 の時にはカバー率は考慮せず精度だ
けを考慮してルールを評価することになる。
【0115】もちろんここで定義したルール評価尺度
は、あくまでも1つの候補であり、いくつかの評価尺度
の定義を追加すること、またそれらの定義をユーザオプ
ションとして切り替えて使用すること、などが可能であ
る。
【0116】ルール生成処理では、式(4)で定義したル
ール評価尺度の大きなルールから指定された個数のルー
ルを生成する。探索すべき空間は、すべての可能な条件
節の組み合わせになる。
【0117】条件項目10個、それぞれの記号数3程度
の問題でも、この探索空間は膨大な広さになる(およそ
30の10乗のオーダ)ため、全数探索を現実的な時間
で実行することは不可能である。したがって、以下に説
明する方法を用いて、探索範囲の制限と枝刈りにより探
索を効率化する。
【0118】まず、最大条件節数と最小カバー率を用い
てルール探索範囲が制限できる。
【0119】これらの制限後の空間での探索方法とし
て、本実施例では深さ優先探索法を用いる。
【0120】図13に、探索空間のイメージを示す。基
本的には条件節述語の組み合わせであるから、木構造の
探索手法が使える。
【0121】図13において、例えば、ノード1301
に対応するルールは、if X1 isA then …であり、
ノード1302に対応するルールは、if X1 is A a
ndX2 is B then …である。すなわち、子ノードに
対応するルールの条件節は、親ノードに対応するルール
の条件節に1つ述語を追加したものになる。各ノードの
近傍に付された数値は、当該ノードに対応するルールの
条件節の述語を示すものとする。例えば、ノード130
1の近傍には{1} と記載されているが、これは対応する
ルール中の述語「X1 is A」を示している。また、ノ
ード1302の近傍には{12}と記載されているが、これ
は対応するルール中の述語「X1 isA and X2 is
B」を示している。
【0122】図13では、最大条件節述語数3の場合を
示した。木の高さ(ルートから終端ノードまでの最大リ
ンク数)は最大条件節述語数になる。
【0123】条件節に現れる述語の順序には意味がない
ので、例えばノード1303の子ノードは{21}でなく、
{23}から始まっていることに注意しておく。また1つの
条件節に、同じ条件項目で異なる記号値をもつ2つの述
語は含まれない。親ノードの条件節に1つ述語を追加し
て子ノードを生成する時には、この条件を考慮しておく
必要がある。
【0124】深さ優先探索では、図13に示すすべての
ノードを次の順序で生成し、評価する。 1→12→123→124→…→12n→13→134→135→……→(n-
2)(n-1)n→(n-1)→(n-1)n→n
【0125】深さ優先探索の場合は、常にそれまでで評
価尺度の最も大きなルールN個(Nは生成ルール数)を
保持しながら上記の順序で候補ルールを調べていけばよ
い。
【0126】次に、上述したルールの探索を高速化する
ための枝刈り方法について説明する。図13のノード数
は前述の例で30の3乗程度であるから、直接全数探索
することも不可能ではないが、数10〜数100万件のデー
タを対象にすること、項目数も100程度になる場合も
少なくないことから、できるだけ効率のよい探索方法を
採用する必要がある。
【0127】効率向上の基本的な考え方は「枝刈り」で
ある。すなわち、ある中間ノードでの状態を評価するこ
とによって、その子ノードの評価をせずにすませること
である。本実施例におけるルール生成処理の場合、カバ
ー率による枝刈りとルール評価尺度による枝刈りを行
う。
【0128】カバー率による枝刈り方法の基本的な考え
方は、あるノードに対応するルールを生成した時、その
ルールのカバー率がユーザ指定のカバー率下限を下回っ
た場合には、そのノードおよびすべての子ノードを探索
する必要がない、ということである。子ノードに対応す
るルールの条件節は親ノードに対応するルールの条件節
に1つ述語を追加したものになるから、親ノードのルー
ルのカバー率が下限を下回ったときは、子ノードのルー
ルのカバー率も必ずその下限を下回ることになる。
【0129】ルール評価尺度による枝刈りについて説明
する。探索においてN個のルールを生成する場合、探索
のある時点でのN番目の候補ルールの評価尺度をμthと
する。枝刈りの基本的な考え方は、あるノードをルート
とする部分木におけるルール評価尺度の最大値を求め、
その値がμthよりも小さな場合には部分木のノードは生
成しない、ということである。ここで、いかに部分木に
含まれるノードの評価尺度の最大値を推定するかが、枝
刈りの効率を決める重要な因子になる。
【0130】以下、この評価方法について説明する。簡
単のため、カバー率優先係数β=1.0の場合で説明する。
一般の値の場合での拡張は容易にできるので、ここでは
省略する。
【0131】あるノードにおけるルールを「もしAなら
ばB」とすると、その評価尺度は次式で定義される。 μ(A→B)=[N(A)/N] * log[N・N(A&B)/N(A)N(B)] (5)
【0132】条件節Aにいくつかの述語を追加した条件
節をA'とすると、μ(A'→B)の最大値は N(A')=N
(A&Bi) のときに限られる。なぜなら、上式でN、N(B)
は定数とみなしてよく、また上式はN(A&B)に関して単調
増加であるから、N(A&B)も定数とみなしてよい(すなわ
ち、精度をあえて下げるようなルールは決して評価尺度
を最大にしない)。したがって、式(5)は下記のように
書くことができ、この式について、N(A&B)≦N(A')≦N
(A)の範囲で、 μ(A'→B)=[N(A')/N] * log[N・N(A'&B)/N(A')N(B)] (5) の最大値を求めればよい。これは、上式をN(A')で微分
すると必ず<0になることから、N(A')=N(A&Bi)のとき
に最大値 μmax=[N(A&B)/N]*log[N/N(B)] となる。
この値がμthよりも小さければ、そのノードの子孫ノー
ドを探索する必要がない。
【0133】実際の探索においては、早い段階で評価尺
度の高いルールを見つけておくことが、効率向上の点で
有効である。早く見つければ、それだけμthの値が大き
くなり、枝刈りが実行される可能性を増やすことができ
る。
【0134】そのための探索戦略の一方法として、図1
3の木構造をまともに深さ優先で探索するのではなく、
まず条件節述語数1の場合をすべて調べ、条件節述語数
≧2の場合を深さ優先探索にすることが可能である。す
なわち、β>0ならばカバー率の大きなルールほど大き
な評価尺度をもつから、条件節述語数1の場合を先に調
べることで、μthの値を早く大きくすることができる。
【0135】このような探索を行うことによって、ルー
ル生成処理を高速化できるだけでなく、ルール生成処理
の途中でユーザが処理の中断を指示したときに、中間結
果として得られるルールがデータの特徴を全体として表
現したルールになる、という効果もある。
【0136】また、生成されたルールはユーザにとって
できるだけ理解容易なものであることが望ましい。言い
換えると、ルール評価尺度に差がなければ、条件節の述
語数は少ないほうがよい。これをルール生成に反映させ
る方法としては、「条件節述語を追加したルールの精度
は、追加する前のルールの精度よりも大きくなければな
らない」という制約を課すことにする。すなわち、条件
節述語を追加してルールを複雑にしたのだから、その分
ルールの精度は上がらなくてはならない、ということで
ある。この制約をつけ加えてルール生成を行うことによ
り、よりわかりやすく利用価値の高いルールを生成する
ことができる。
【0137】さらに、本実施例のルール生成処理では、
もともと記号値属性をもつ条件項目間の1対多の依存関
係を考慮してルールを生成する。例えば、図2の県コー
ドと支店コードを考える。支店コードは各支店に固有の
コードであるから、支店コードを決めれば県コードが唯
一に決まる。一つの県に複数の営業店が存在する場合に
は、逆は成立しない。このとき、県コードと支店コード
の間には1対多の関係が存在するという。
【0138】この2つの条件項目を含むデータに対して
ルール生成を行うと、支店コードと県コードを同時に条
件節述語に含むルールが生成される可能性がある。少な
くとも、木構造の探索では候補ルールとして評価尺度が
計算される。しかし、これは全くの無駄である。支店コ
ードが条件節述語に含まれていれば、そのコードから県
コードは唯一に決まるのだから、県コードに関する条件
節述語を追加する必要はない。
【0139】カテゴリカルデータ間の1対多の関係は、
分類概念の上下関係と見なすこともできる。すなわち、
県コードが上位の分類概念、支店コードが下位の分類概
念になる。
【0140】この上下関係は木構造では表現できない。
支店コードの例で、さらに地方コードと支店規模コード
(大規模・中規模・小規模など)を考える。地方コード
は県コードのさらに上位の概念であるから、営業店コー
ドと地方コードの間にも上下関係が存在する。さらに、
営業店コードを指定すれば支店規模コードも決まるか
ら、ここにも上下関係が存在する。すなわち、県コード
と支店規模コードはどちらも支店コードの上位概念であ
る。逆に、1つのカテゴリカルデータが複数の下位概念
を含むこともある(例えば、県コードに対する支店コー
ドと取引先コード、など)。
【0141】本実施例では各条件項目に対して、その上
位概念に相当する項目のリストを作成しておく。このリ
ストは、例えば図6に示した分析対象データの定義から
自動的に作成することができる。すなわち、リレーショ
ナルデータベースにおいては各テーブルの主キーはテー
ブル内のレコードを一意的に指定できるものでなければ
ならないから、テーブル内の主キーの項目とそれ以外の
項目の間には1対多の関係が常に存在する。図6の例で
は、支店コードと県コード、支店コードと地域コードの
間に1対多の関係がある。もちろんこれらの関係は、図
3の処理303で説明した条件項目の選択時に、条件項
目間の相互情報量を算出したときに、容易に自動的に発
見することもできる。
【0142】これらの上位概念リストを用いてルールの
生成時の木構造の探索を行うときには、追加すべき述語
に対応する項目の上位概念または下位概念の項目がすで
に条件節に含まれているかどうかをチェックする(直接
の上位/下位概念だけでなく、上位の上位/下位の下位
にあたる項目などもチェックする)。もし含まれていれ
ば、その項目の述語は追加の対象とはしない。
【0143】次に、数値→記号値変換でファジィ分割を
用いる場合の処理内容を説明する。
【0144】本実施例のルール生成処理では、図11の
ファジィ分割方法がもつ特徴を利用する。図11のファ
ジィ分割では、1つの数値は高々2つの記号値に分配さ
れ、それらの和は必ず 1.0 になる(例えば、「小さ
い」0.3、「中くらい」0.7、「大きい」0.0のよう
に)。また、図4のルール生成用ワークファイル405
中の表現では、「小」を0に、「中」を1に、「大」を
2に割りあてる。このとき、数値 x は次の規則によ
り1つの実数値 y に変換される。
【0145】ファジィ記号値変換規則: もし「小さい」の割合が z、「中くらい」の割合が
(1-z) ならば、 y = 1-z もし「中くらい」の割合が z、「大きい」の割合が
(1-z) ならば、 y = 2-z ただし、0≦z≦1 とする。
【0146】すなわち、0と1の間の実数値 y は、
「小」と「中」という記号の配分比を表すものと約束す
る。図11のファジィ分割の特徴から、1つの数値が3
つ以上の記号値に分配されることはなく、また和が1.0
になることから、この定義で矛盾は生じない。
【0147】上記の方法でファジィ的に記号化された事
例を (y1, y2, …, yn) とする。ルール生成処理
において事例の数を計算するのは、ルールの評価尺度を
計算するときである。クリスプな分割のときは、ある条
件節を満たす事例がいくつあるかをカウントする処理に
なる。ファジィ記号化では次のようになる。
【0148】x1 が「小さい」に該当する事例は、0≦y
1≦1 の値をもつ事例で、その重みは 1-y1 になる。
【0149】x1 が「中くらい」に該当する事例は、0
≦y1≦2 の値をもつ事例で、その重みは 1-|1-y1|
になる。
【0150】x1 が「大きい」に該当する事例は、1≦y
1≦2 の値をもつ事例で、その重みは y1-1 になる。
【0151】もちろん、条件節述語が複数ある場合に
は、上記の重みをそれぞれの述語に関して掛け合わせた
ものが全体の事例の重みになる。ルール評価尺度の定義
に現れる N(A) や N(A&Bi) などは、これらの事例
重みの和として考え、実数値として取り扱うものとす
る。
【0152】上記の処理でファジィ分割により記号値に
変換した項目をルール生成処理で使用すれば、分割にお
ける境界付近のデータを正しく扱うことができるので、
生成されたルールを高精度化することができる。
【0153】図4のワークファイル405中のデータで
は、値−1は欠損値を表すものとする。ルール生成処理
には数値属性そのものは使用せず、また記号値は0から
順番に割り当てて行くので、この値が混乱を起こすこと
はない。
【0154】欠損値自身をルール生成に使用するかどう
かは、図3の処理303における欠損値対応処理か、ま
たはユーザが指定した内容で決まるものとする。ルール
生成に使用する場合には、「もし x が欠損値で、
…」というルールが許される。欠損値をルール生成に使
用しない場合には、単に欠損値は無視される(すなわち
どの記号にも一致しない記号として扱われる)。欠損値
は特別な値なので、前項のファジィ記号化の規則は適用
されない。
【0155】本実施例では、ルール生成処理がどこまで
進んだかを示す進行状況を表示する。ルール生成処理で
は、本来調べるべきルールの個数はあらかじめ算出でき
るから、その内の何パーセントを調べたかという数字
を、適当なタイミングで表示するものとする。枝刈りな
どで処理をスキップされたルールも当然カウントする。
【0156】ルール生成処理では、ユーザ割り込みを受
け付けるものとする。上述のルール生成進行状況表示
に、中断コマンドを受け付けるボタン1401を用意し
ておく。図14に、ルール生成処理進行状況および中断
ボタン1401の表示例を示す。
【0157】ボタン1401がクリックされ処理の中断
が指定された場合、次の動作は「続行」か「終了」かの
どちらかになる。続行の場合にはそのまま処理を続け、
終了の場合にはルール生成処理を終了し、現時点までに
生成されたルールを表示するものとする。
【0158】図15に、以上説明したルール生成処理の
処理フロー図を示す。候補ルール集合のクリアおよびμ
thのゼロクリアなどの初期化(1501)の後、すべて
の候補についてステップ1503〜1512を繰り返
す。まず、評価尺度μを計算し、μとμthとを比較する
(1504)。μ>μthなら、候補ルール集合に当該候
補ルールを追加し(1505)、μthに候補ルール集合
中で最小の評価尺度をセットする(1506)。μ≦μ
thなら、サブノードに関する評価尺度の最大値μmaxを
計算し(1507)、μmaxとμthとを比較する。μmax
<μthなら、サブノードをすべて評価済みとする(15
09)。
【0159】次に、ルール生成処理進行状況を表示し
(1510)、処理中断が指示されたかどうか判定する
(1511)。中断が指示されていたら、ループから脱
出する(1512)。すべての候補についてループ処理
が終了するか、ステップ1512でループから脱出した
ときは、候補ルール集合を出力して(1513)、処理
を終了する。
【0160】次に、図4のルール学習処理実行モジュー
ル403で実行される処理について説明する。
【0161】図16は、学習すべきメンバシップ関数の
形状パラメータを示す。本実施例では、学習によって調
節されるパラメータは分割点α1とα2とする。すなわ
ち、ルール生成処理で生成されたルールに対して、最も
ルール評価尺度が大きくなる分割点α1とα2を求める。
ただし、ファジィ分割を用いたルール生成処理におい
て、1つの数値は高々2つの記号値に分配され、それら
の和は必ず 1.0 になるという性質を仮定しているた
め、その仮定を満足する範囲でのみα1とα2の値を変化
させるものとする。図16には、学習後のメンバシップ
関数形状の例を示した。
【0162】具体的な学習は次のようなステップで行
う。 ステップ1:学習すべきルールを指定する。どのルール
を学習するかをユーザが指定する。 ステップ2:ステップ3〜ステップ8を学習終了条件が
成立するまで繰り返す。 ステップ3:各パラメータの変更量Δαi=0(i=1,2,
…,m)とする。mは調節すべき分割点パラメータの総数
である。 ステップ4:指定されたルールのそれぞれに対してステ
ップ5〜ステップ7を繰り返す。
【0163】ステップ5:処理中のルールの評価尺度μ
を算出すると同時に、∂N(A)/∂αi、∂N(B)/∂αi、
∂N(A&B)/∂αiを算出する。N(A)は条件部Aを満足す
る(ファジィ分割を考慮した)事例の数であり、αiを
微小量Δαi変化させたときのN(A)の変化量ΔN(A)は、
図16のメンバシップ関数形状から容易に求めることが
できる。∂N(B)/∂αi、∂N(A&B)/∂αiの値も同様に
求める。 ステップ6:μの定義式(4)とステップ5で求めた値か
ら、∂μ/∂αi=∂N(A)/∂αi・∂μ/∂N(A)+∂N
(B)/∂αi・∂μ/∂N(B)+∂N(A&B)/∂αi・∂μ/
∂N(A&B)なる関係式を用いて、∂μ/∂αi(i=1,…,
m)を求める。
【0164】ステップ7:全てのiに対して、Δαi←Δ
αi+∂μ/∂αiとする。 ステップ8:全てのiに対して、αi←αi+λ・Δαiと
する。λはあらかじめ定められた学習係数である。 ステップ9:学習済みのαiの値を図4のルールファイ
ル407に出力する。
【0165】ステップ2における終了条件としては、例
えば ・指定された回数ステップ3〜ステップ8を繰り返した ・全てのiに対して|Δαi|<εが成立した(εはあ
らかじめ定められた正の定数) ・ルール評価尺度μの変化|Δμ|<εが成立した などの条件、または上記条件の組み合わせ、などを用い
ることができる。
【0166】以上の処理により、1つまたは複数のルー
ルの評価尺度を最大化するようなメンバシップ関数パラ
メータを学習により自動的に求めることができる。これ
により、データ間に存在する規則性・因果関係をより精
度よく抽出することが可能になるとともに、規則性を説
明するために最適な項目値の分割点自身を最適に決定す
ることができるようになるという効果がある。また、こ
の学習によれば、生成ルール全体またはその部分集合の
評価尺度の和を最適化することが可能なため、ユーザに
とって意味のあるルールだけを学習によって最適化する
ことができ、より利用価値の高いルールを生成すること
ができるという効果もある。
【0167】
【発明の効果】以上説明したように、本発明によれば、
データ間に存在する規則性・因果関係をユーザにとって
理解しやすいルールという形で抽出できるため、従来の
方法では困難であった大量データの有効活用が可能にな
るという効果がある。特に、製造プロセスにおける検査
データの分析による不良発生要因の解析や、顧客データ
ベースの分析による新商品のマーケティング戦略の立案
などにおいて、有効な情報をデータベースから抽出する
ことができるようになるという効果がある。また、デー
タ中に欠損値が含まれる場合でも、その欠損値に意味が
あるとしてルールに使用することも、また、単に未知の
データとして扱うこともできるため、欠損値の含まれる
データでも有効に活用できデータの特徴を精度よく表現
できるという効果がある。また、これらの判断を自動的
に実行することもできるため、より容易に分析処理が実
行できるといういう効果もある。さらに、データベース
に含まれる数値データは、記号値に変換されてルールに
使用されるため、雑音の大きなデータに対してもマクロ
な構造に対応した規則性を発見でき、それだけユーザに
とって利用価値の高い結果を生成できるという効果があ
る。
【図面の簡単な説明】
【図1】半導体不良分析における分析対象データの例を
示す図
【図2】顧客分析における分析対象データの例を示す図
【図3】本実施例によるデータ分析方法の処理フロー図
【図4】データ分析システムの全体構成図
【図5】データテーブルの例を示す図
【図6】複数のデータテーブル間の関係定義の例を示す
【図7】ルール生成処理仕様項目指定画面を示す図
【図8】項目自動選択処理フロー図
【図9】記号値変換方法一覧表示画面を示す図
【図10】記号値変換方法指定画面を示す図
【図11】メンバシップ関数の形状例を示す図
【図12】ルール生成パラメータ指定画面を示す図
【図13】ルール探索方法を説明する図
【図14】ルール生成処理進行状況表示画面を示す図
【図15】ルール生成処理フロー図
【図16】学習によるメンバシップ関数形状変化の例を
示す図
【符号の説明】
401…ユーザインタフェースモジュール、402…ル
ール生成処理実行モジュール、403…ルール学習処理
実行モジュール、404…分析対象データベース、40
5…ルール生成用ワークファイル、406…ルール生成
パラメータファイル、407…ルールファイル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 谷口 洋司 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 伊藤 幸康 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 (72)発明者 高橋 ヨリ 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】処理装置を用い、データベースに格納され
    た複数のデータ項目に基づいてルールを生成するデータ
    分析方法であって、 入力装置からの指示に基づいて、IF節に用いる複数のデ
    ータ項目を前記データベースから選択し、 前記入力装置からの指示に基づいて、前記IF節に対応す
    るTHEN節に用いる複数のデータ項目を前記データベース
    から選択し、 前記選択されたデータ項目が数値を含んでいれば、前記
    数値を記号値に変換し、 解析すべきレコード内に存在するあるデータ項目の値が
    欠損値を含んでいる場合、前記データ項目の記号値とし
    て欠損値を示す記号値を追加し、 前記欠損値を示す前記記号値を生成すべきルールで使用
    するか否かを個々のデータ項目に対して指示し、さらに
    前記データベースに格納されたデータを解析することに
    より、前記選択された複数のデータ項目間の相関を示す
    ルールの候補を複数個生成することを特徴とするデータ
    分析方法。
  2. 【請求項2】処理装置を用い、データベースに格納され
    た複数のデータ項目に基づいてルールを生成するデータ
    分析方法であって、 入力装置からの指示に基づいて、IF節に用いる複数のデ
    ータ項目を前記データベースから選択し、 前記入力装置からの指示に基づいて、前記IF節に対応す
    るTHEN節に用いる複数のデータ項目を前記データベース
    から選択し、 前記選択されたデータ項目が数値を含んでいれば、前記
    数値を記号値に変換し、 解析すべきレコード内に存在するあるデータ項目の値が
    欠損値を含んでいる場合、前記データ項目の記号値とし
    て欠損値を示す記号値を追加し、 前記データ項目と前記THEN節のデータ項目との依存関係
    に基づいて、前記欠損値を示す前記記号値を使用するか
    否かを決定し、さらに前記データベースに格納されたデ
    ータを解析することにより、前記選択された複数のデー
    タ項目間の相関を示すルールの候補を複数個生成するこ
    とを特徴とするデータ分析方法。
  3. 【請求項3】処理装置を用い、データベースに格納され
    た複数のデータ項目に基づいてルールを生成するデータ
    分析方法であって、 ルール生成に対して選択可能であるか否かを示す特定の
    表示形態によって前記データベースのデータ項目を表示
    装置に表示し、 入力装置からの指示に基づいて、条件および結論節に用
    いる選択可能なデータ項目を前記データベースから選択
    し、さらに前記データベースに格納されたデータを解析
    することにより、前記選択された複数のデータ項目間の
    相関を示すルールの候補を複数個生成することを特徴と
    するデータ分析方法。
  4. 【請求項4】請求項1記載のデータ分析方法において、
    選択可能なデータ項目の数は、予め決められた値以下で
    あることを特徴とするデータ分析方法。
  5. 【請求項5】処理装置を用い、データベースに格納され
    た複数のデータ項目に基づいてルールを生成するデータ
    分析方法であって、 入力装置からの指示に基づいて、条件および結論節に用
    いる複数のデータ項目を前記データベースから選択し、 前記選択されたデータ項目が数値を含んでいれば、前記
    数値を記号値に変換し、 解析すべきレコード内に存在するあるデータ項目の値が
    欠損値を含んでいる場合、前記データ項目の記号値とし
    て欠損値を示す記号値を追加し、さらに前記データベー
    スに格納されたデータを解析することにより、前記選択
    された複数のデータ項目間の相関を示すルールの候補を
    複数個生成することを特徴とするデータ分析方法。
  6. 【請求項6】データベースに格納された複数のデータ項
    目に基づいてルールを生成するデータ分析装置であっ
    て、 入力装置からの指示に基づいて、IF節に用いる複数のデ
    ータ項目を前記データベースから選択する第1の選択手
    段と、 前記入力装置からの指示に基づいて、前記IF節に対応す
    るTHEN節に用いる複数のデータ項目を前記データベース
    から選択する第2の選択手段と、 前記選択されたデータ項目が数値を含んでいれば、前記
    数値を記号値に変換する変換手段と、 解析すべきレコード内に存在するあるデータ項目の値が
    欠損値を含んでいる場合、前記データ項目の記号値とし
    て欠損値を示す記号値を追加する追加手段、 前記欠損値を示す前記記号値を生成すべきルールで使用
    するか否かを個々のデータ項目に対して指示する指示手
    段と、 前記データベースに格納されたデータを解析することに
    より、前記選択された複数のデータ項目間の相関を示す
    ルールの候補を複数個生成する生成手段とを備えたこと
    を特徴とするデータ分析装置。
JP11158820A 1999-06-04 1999-06-04 デ―タ分析方法および装置 Pending JP2000040000A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11158820A JP2000040000A (ja) 1999-06-04 1999-06-04 デ―タ分析方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11158820A JP2000040000A (ja) 1999-06-04 1999-06-04 デ―タ分析方法および装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP23943794A Division JPH0877010A (ja) 1994-09-07 1994-09-07 データ分析方法および装置

Publications (1)

Publication Number Publication Date
JP2000040000A true JP2000040000A (ja) 2000-02-08

Family

ID=15680098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11158820A Pending JP2000040000A (ja) 1999-06-04 1999-06-04 デ―タ分析方法および装置

Country Status (1)

Country Link
JP (1) JP2000040000A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248647A (ja) * 2001-12-12 2003-09-05 Microsoft Corp 適応型通信優先度決定およびルーティングシステムの選好の獲得と挙動の点検と学習および決定ポリシーのガイドを行うための制御および表示
JP2006227942A (ja) * 2005-02-17 2006-08-31 Rumiko Matsuoka 臨床検査データの組合わせ集合の抽出システムとこれを用いた腫瘍進行度の判定システム並びに臨床診断支援システム
US10146502B2 (en) 2014-09-29 2018-12-04 International Business Machines Corporation Stream-processing data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248647A (ja) * 2001-12-12 2003-09-05 Microsoft Corp 適応型通信優先度決定およびルーティングシステムの選好の獲得と挙動の点検と学習および決定ポリシーのガイドを行うための制御および表示
JP2006227942A (ja) * 2005-02-17 2006-08-31 Rumiko Matsuoka 臨床検査データの組合わせ集合の抽出システムとこれを用いた腫瘍進行度の判定システム並びに臨床診断支援システム
US10146502B2 (en) 2014-09-29 2018-12-04 International Business Machines Corporation Stream-processing data
US10579453B2 (en) 2014-09-29 2020-03-03 International Business Machines Corporation Stream-processing data

Similar Documents

Publication Publication Date Title
JPH0877010A (ja) データ分析方法および装置
Bukhsh et al. A systematic literature review on requirement prioritization techniques and their empirical evaluation
AU2019236757B2 (en) Self-Service Classification System
US20060179051A1 (en) Methods and apparatus for steering the analyses of collections of documents
US20110137705A1 (en) Method and system for automated content analysis for a business organization
Özdağoğlu et al. Topic modelling-based decision framework for analysing digital voice of the customer
JP5160312B2 (ja) 文書分類装置
US20190392032A1 (en) Display system, program, and storage medium
CN113312480A (zh) 基于图卷积网络的科技论文层级多标签分类方法及设备
CN103544299B (zh) 一种商业智能云计算系统的构建方法
KR101625124B1 (ko) 특허 정량분석을 이용한 기술평가 방법
Win et al. Predicting customer class using customer lifetime value with random forest algorithm
CN114254615A (zh) 组卷方法、装置、电子设备和存储介质
CN112084376A (zh) 基于图谱知识的推荐方法、推荐系统及电子装置
US11922326B2 (en) Data management suggestions from knowledge graph actions
JP3452308B2 (ja) データ分析装置
JP2000040000A (ja) デ―タ分析方法および装置
Roelands et al. Classifying businesses by economic activity using web-based text mining
Kühl et al. Automatically quantifying customer need tweets: Towards a supervised machine learning approach
JP2000029708A (ja) デ―タ分析方法、該デ―タ分析方法のプログラムを格納した記憶媒体、およびデ―タ分析装置
Dziczkowski et al. An autonomous system designed for automatic detection and rating of film reviews
CN113326348A (zh) 一种博客质量评估方法及工具
Chebil et al. Clustering social media data for marketing strategies: Literature review using topic modelling techniques
CN117556118B (zh) 基于科研大数据预测的可视化推荐系统及方法
US20230342555A1 (en) Systems and methods for generating codes and code books using cosine proximity