(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-10
(45)【発行日】2023-01-18
(54)【発明の名称】ルール提示方法、ルール提示プログラムおよびルール提示装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20230111BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2019089288
(22)【出願日】2019-05-09
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小林 健
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】浦 晃
【審査官】北川 純次
(56)【参考文献】
【文献】特開2003-44280(JP,A)
【文献】特開2003-281156(JP,A)
【文献】米国特許出願公開第2014/0337272(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 5/00
(57)【特許請求の範囲】
【請求項1】
属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得し、
前記学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定し、
前記学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得し、
特定した前記複数のルールのうち、前記データに含まれる属性の組み合わせに関連するルールを選択し、選択したルールが導く正例または負例と異なるラベルを前記データに設定して、選択したルールが導く正例または負例が変化する前記データのサンプル数を特定し、
前記サンプル数を基にして、提示するルールの順番を決定する
処理をコンピュータが実行することを特徴とするルール提示方法。
【請求項2】
前記複数のルールを特定する処理は、ルールに含まれる1以上の属性の組み合わせに対するラベルについて、正例の割合または負例の割合のうち大きい方の割合をルールの正答率として算出し、前記正答率が閾値以上となる複数のルールを特定することを特徴とする請求項1に記載のルール提示方法。
【請求項3】
前記データの数を特定する処理は、前記データに含まれる属性の組み合わせに関連するルールが正例を導く場合に、前記データのラベルとして負例を設定し、前記ルールに含まれる正例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする請求項1または2に記載のルール提示方法。
【請求項4】
前記データの数を特定する処理は、前記データに含まれる属性の組み合わせに関連するルールに導かれるラベルが負例の場合に、前記データのラベルとして正例を設定し、前記ルールに含まれる負例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする請求項1、2または3に記載のルール提示方法。
【請求項5】
前記決定する処理により決定されたルールの順番を基にして前記ルールを提示する処理を更に実行することを特徴とする請求項1~4のいずれか一つに記載のルール提示方法。
【請求項6】
属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得し、
前記学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定し、
前記学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得し、
特定した前記複数のルールのうち、前記データに含まれる属性の組み合わせに関連するルールを選択し、選択したルールが導く正例または負例と異なるラベルを前記データに設定して、選択したルールが導く正例または負例が変化する前記データのサンプル数を特定し、
前記サンプル数を基にして、提示するルールの順番を決定する
処理をコンピュータに実行させることを特徴とするルール提示プログラム。
【請求項7】
属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得し、前記学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定する特定部と、
前記学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得し、
特定した前記複数のルールのうち、前記データに含まれる属性の組み合わせに関連するルールを選択し、選択したルールが導く正例または負例と異なるラベルを前記データに設定して、選択したルールが導く正例または負例が変化する前記データのサンプル数を特定し、前記サンプル数を基にして、提示するルールの順番を決定する決定部と
を有することを特徴とするルール提示装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ルール提示方法等に関する。
【背景技術】
【0002】
ユーザの判断支援に機械学習等を用いる場合、ユーザが直接理解できる形のルールおよび仮説を出力することが求められる。たとえば、医師の診療支援を行う場合、ある一つの入力(診療の対象者の属性)に対して、単一の予測結果だけでなく、当該予測および代替予測や、代替予測を導くルールを考慮したうえで、最終的な診療の判断を下すことが望ましい。以下の説明では、診療の対象者を、単に「対象者」と表記する。
【0003】
図19は、従来技術で用いられる学習データの一例を示す図である。
図19に示すように、この学習データ4は、複数の属性と、ラベルとを対応付ける。属性は、対象者の属性に対応するものであり、たとえば、属性A、属性B、属性C、属性Dを含む。
【0004】
属性Aは「年齢が50(歳)以上であるか否かを示すもの」であり、対象者の年齢が50以上の場合には値が「1」となり、50未満の場合には値が「0」となる。
【0005】
属性Bは「身長が160cm以上であるか否かを示すもの」であり、対象者の身長が160cm以上の場合には値が「1」となり、160cm未満の場合には値が「0」となる。
【0006】
属性Cは「体重が80kg以上であるか否かを示すもの」であり、対象者の体重が80kg以上の場合には値が「1」となり、80kg未満の場合には値が「0」となる。
【0007】
属性Dは、「男性か女性かを示すもの」であり、対象者の性別が男性の場合には値が「1」となり、女性の場合には値が「0」となる。
【0008】
ラベルは、レコードの各属性に対応する値が「健康であるか否かを示すもの」であり、健康である場合には「+(正例)」となり、健康でない場合には「-(負例)」となる。たとえば、1行目のレコードにおいて、属性A「0」、属性B「1」、属性C「0」、属性D「0」となる場合、ラベルは「+」となる。7行目のレコードにおいて、属性A「0」、属性B「0」、属性C「1」、属性D「0」となる場合、ラベルは「-」となる。
【0009】
従来技術では、
図19に示した学習データ4を用いてルールの集合を生成し、ルールの集合を用いて、所与の条件を満たすルールを全て列挙する。たとえば、条件「体重が80kg未満」が入力されると、属性Cが「0」となる「正例を導くルール」を出力する。条件「体重が80kg以上の女性」が入力されると、属性Cが「1」となる「負例を導くルール」を出力する。条件「身長が160cm未満で体重が80kg以上」が入力されると、属性Bが「0」、属性Cが「1」となる「負例を導くルール」を出力する。
【0010】
なお、従来技術では、入力された条件が、複数のルールに該当する場合には、該当した複数のルールを全て列挙している。
【先行技術文献】
【特許文献】
【0011】
【文献】国際公開第2017/081715号
【文献】国際公開第2013/172310号
【文献】特開平6-102907号公報
【文献】特開2016-212825号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、上述した従来技術では、入力された条件が、複数のルールに該当する場合、該当した複数のルールを列挙しているため、ユーザは、列挙された複数のルールから、所望のルールを選び出すことが難しい。
【0013】
図20は、従来技術の問題を説明するための図である。たとえば、対象者の条件を「年齢が50以上、身長160cm未満、体重80kg以上、男性」とする。従来技術では、対象者の条件5と学習データに基づくルールの集合との比較により、条件5に該当する複数のルールA1~A13を列挙する。ユーザは、一度にこれらのルールA1~A13を提示されても、所望のルールを選び出すことが難しい。
【0014】
たとえば、ルールA1は「体重が80kg以上である場合に、健康でない(不健康である)」ことを示すルールであり、条件5に該当するルールとなる。ルールA2~A13に関する説明は省略するが、いずれも、条件5に該当するルールとなる。
【0015】
なお、考えられるルール集合の中でルールに含まれるサンプル数に対して、該当ルールを支持するサンプル数の比率を該当ルールの正答率として算出し、条件に該当するルールのうち、正答率が閾値を超えるルールのみを提示することも考えられる。しかし、適切な閾値を設定することは難しく、比較的多くのルールが含まれるような低めの閾値を設定することになり、ルールを絞り込むことも難しい。
【0016】
1つの側面では、本発明は、条件に該当する複数のルールから、ユーザが所望するルールを選択することができるルール提示方法、ルール提示プログラムおよびルール提示装置を提供することを目的とする。
【課題を解決するための手段】
【0017】
第1の案では、コンピュータは次の処理を実行する。コンピュータは、属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得する。コンピュータは、学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定する。コンピュータは、学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得する。コンピュータは、特定した複数のルールのうち、データに含まれる属性の組み合わせに関連するルールを選択する。コンピュータは、選択したルールが導く正例または負例と異なるラベルをデータに設定して、選択したルールが導く正例または負例が変化するデータのサンプル数を特定し、サンプル数を基にして、提示するルールの順番を決定する。
【発明の効果】
【0018】
条件に該当する複数の条件から、ユーザが所望のルールを選択することができる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、カルノー図を説明するための図(1)である。
【
図2】
図2は、カルノー図を説明するための図(2)である。
【
図3】
図3は、カルノー図を説明するための図(3)である。
【
図4】
図4は、本実施例にかかるルール提示装置の処理を説明するための図である。
【
図5】
図5は、正答率とサンプル数との関係を示す図である。
【
図6】
図6は、指定される属性に該当するルールの正答率とサンプル数との関係を示す図である。
【
図7】
図7は、本実施例にかかるルール提示装置の構成を示す機能ブロック図である。
【
図8】
図8は、学習データのデータ構造の一例を示す図である。
【
図9】
図9は、指定条件データの一例を示す図である。
【
図11】
図11は、提示候補集合データの一例を示す図である。
【
図13】
図13は、決定部の処理を説明するための図(1)である。
【
図14】
図14は、決定部の処理を説明するための図(2)である。
【
図15】
図15は、決定部の処理を説明するための図(3)である。
【
図16】
図16は、決定部が生成する画面情報の一例を示す図である。
【
図17】
図17は、本実施例にかかるルール提示装置の処理手順を示すフローチャートである。
【
図18】
図18は、本実施例に係るルール提示装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図19】
図19は、従来技術の機械学習に用いられる学習データの一例を示す図である。
【
図20】
図20は、従来技術の問題を説明するための図である。
【発明を実施するための形態】
【0020】
以下に、本願の開示するルール提示方法、ルール提示プログラムおよびルール提示装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0021】
本実施例で用いるカルノー図について説明する。
図1、
図2、
図3は、カルノー図を説明するための図である。カルノー図は、論理式を図示したものである。一例として、
図1~
図3に示すカルノー図を、属性A,B,C,Dを論理変数とする論理式のカルノー図とする。
【0022】
図1について説明する。カルノー図の1行目は「notAかつnotB」に対応する行である。2行目は「notAかつB」に対応する行である。3行目は「AかつB」に対応する行である。4行目は「AかつnotB」に対応する行である。
【0023】
カルノー図の1列目は「notCかつnotD」に対応する行である。2列目は「notCかつD」に対応する行である。3列目は「CかつD」に対応する行である。4列目は「CかつnotD」に対応する行である。
【0024】
本実施例では、カルノー図において、n行目、m列目のセルを示す場合にs(n,m)と表記する。たとえば、1行目、4列目のセルはs(1,4)となる。s(1,4)は、属性が「notAかつnotBかつCかつD」であることを示す。
【0025】
図2の説明に移行する。本実施例のルール提示装置は、学習データの各サンプル(レコード)を基にして、カルノー図の各セルに、P
n(Positive)、N
n(Negative)を設定する。添え字nは、便宜的に、各P、各Nを区別するためのものである。
【0026】
たとえば、本実施例に係るルール提示装置は、s(1,4)のセルに対応するサンプルが負例である場合には、s(1,4)のセルに「N1」を設定する。すなわち、「notAかつnotBかつCかつnotD」の属性をもつサンプルが負例であることを示す。
【0027】
ルール提示装置は、s(2,1)のセルに対応するサンプルが正例である場合には、s(2,1)のセルに「P1」を設定する。すなわち、「notAかつBかつnotCかつnotD」の属性をもつサンプルが正例であることを示す。
【0028】
ここでは説明を省略するが、カルノー図に含まれる他のセルも同様にして、サンプルが負例の場合には「N」を設定し、サンプルが正例の場合には「P」を設定する。該当するサンプルが学習データに存在しない場合には、セルには何も設定しない。
【0029】
図3の説明に移行する。カルノー図は、属性の組み合わせに応じて、該当するセルが決定される。
図3に示すように、属性「C」に対応するセルは、カルノー図の3行目4行目に含まれる各セルとなる。ルール提示装置は、属性「C」に含まれる正例、負例の数に応じて、属性「C」に対応するルールおよび正答率を特定する。
【0030】
たとえば、属性Cに含まれるセルの内、正例が割り当てられたセルの数が、負例が割り当てられたセルの数よりも多い場合、属性Cに対応するルールは「正例」を導くルールとなる。また、かかるルールの正答率は、属性Cに含まれるセルの正例の数および負例の数に対する、正例の数の割合となる。
【0031】
これに対して、属性「C」に含まれるセルの内、正例が割り当てられたセルの数が、負例が割り当てられたセルの数よりも少ない場合、属性Cに対応するルールは、「負例」を導くルールとなる。また、かかるルールの正答率は、属性Cに含まれるセルの正例の数および負例の数に対する、負例の数の割合となる。
【0032】
次に、本実施例にかかるルール提示装置の処理の一例について説明する。
図4は、本実施例にかかるルール提示装置の処理を説明するための図である。ルール提示装置は、属性の組み合わせと正例または負例を導くルールの集合となる学習データを基にして、カルノー図の各セルに、PまたはNを設定する。
【0033】
図4に示す例では、ルール提示装置は、カルノー図のセルs(1,4)、s(4,4)、s(3,3)、s(1,2)、s(3,4)に、N
1、N
2、N
3、N
4、N
5をそれぞれ設定する。また、ルール提示装置は、カルノー図のセルs(2,1)、s(2,3)、s(4,2)、s(3,2)、s(2,2)、s(1,3)に、P
1、P
2、P
3、P
4、P
5をそれぞれ設定する。
【0034】
たとえば、ユーザは、属性の条件として、「AかつnotBかつCかつD」のルール提示の要求を、ルール提示装置に指定した場合について説明する。カルノー図において、属性の条件「AかつnotBかつCかつD」に対応するセルは、s(4,3)となる。
【0035】
ルール提示装置は、属性の条件「AかつnotBかつCかつD」の指定を受け付けると、まず、1属性以上の正例または負例を導くルールのうち、正答率が閾値以上となる複数のルールを、学習データの各サンプルから特定する。本実施例では、一例として、正答率の閾値を「0.6(60%)」とする。また、ルール提示装置は、正答率が閾値以上となるルールのうち、属性の条件「AかつnotBかつCかつD」に関連するルールを特定する。
【0036】
たとえば、正答率が閾値以上となり、属性の条件「AかつnotBかつCかつD」に関連するルールは、次のルールとなる。すなわち、指定された属性に該当するルールは、属性「A」のルール(正答率:0.6)、属性「notB」のルール(正答率:0.6)、属性「C」のルール(正答率:0.67)、属性「D」のルール(正答率:0.71)を含む。また、指定された属性に該当するルールは、属性「CD」のルール(正答率:0.67)、属性「notBかつC」のルール(正答率:0.67)、属性「notBかつD」のルール(正答率:0.67)、属性「AかつCかつD」のルール(正答率:1)、属性「AかつnotBかつC」のルール(正答率:1)、属性「AかつnotBかつD」のルール(正答率:1)、属性「notBかつCかつD」のルール(正答率:1)となる。
【0037】
指定された属性に該当するルールのうち、負例を導くルールは、属性「C」、「AC」、「notBかつC」、「AかつnotBかつC」、「notB」、「A」、「ACD」のルールとなる。
【0038】
指定された属性に該当するルールのうち、正例を導くルールは、属性「AかつnotBかつD」、「notBかつCかつD」、「D」、「CかつD」、「AかつD」、「notBかつD」のルールとなる。
【0039】
続いて、ルール提示装置は、指定された属性に該当する複数のルールについて「最小サンプル数」をそれぞれ算出する。ルール提示装置は、指定された属性のサンプルのラベルに対して、ルールが導くラベルとは相反するラベルを設定し、サンプルの数を増やしていき、はじめにルールの正答率が閾値未満となるサンプルの数を、最小サンプル数として算出する。最小サンプル数が大きいルールほど、ルールにより導かれる結果は変動しづらく、信頼性の高いルールといえる。
【0040】
たとえば、属性「C」の「負例」を導くルールを用いて、最小サンプル数を説明する。ルール提示装置は、セルs(3,3)のサンプルのラベルを「正例」とし、かかるサンプルの数がいくつになった場合にはじめて、該当ルールの正答率が閾値未満となるのかを算出する。たとえば、セルs(3,3)に「正例」を導くサンプルを1つ追加するとはじめて、属性「C」の正答率が閾値未満となるため、属性「C」の最小サンプル数は、「1」となる。
【0041】
属性「D」の「正例」を導くルールを用いて、最小サンプル数を説明する。ルール提示装置は、セルs(3,3)のサンプルのラベルを「負例」とし、かかるサンプルの数がいくつになった場合にはじめて、該当ルールの正答率が閾値未満となるのかを算出する。たとえば、セルs(3,3)に「負例」を導くサンプルを2つ追加するとはじめて、属性「D」の正答率が閾値未満となるため、属性「D」の最小サンプル数は、「2」となる。
【0042】
ルール提示装置は、指定される属性に該当するルールのうち、最小サンプル数の大きい順にルールを並び変え、並び変えた順序によって、各ルールをユーザに提示する。
図4に示す例では、1番目に、属性「AC」のルールがユーザに提示され、2番目に、属性「D」のルールがユーザに提示される。
【0043】
上記のように、本実施例にかかるルール提示装置は、指定の属性に関連する複数のルールのうち、指定の属性に対応するラベルが該当ルールと相反しても、ラベルが変化しにくいルール(最小サンプル数の大きいルール)を優先する順番で、ルール提示を行う。これによって、条件に該当する複数のルールから、ユーザが所望するルールを選択することができる。
【0044】
最小サンプル数の大きいルールは、信頼性を表すスコアといえる。ルール提示装置は、最小サンプル数に基づいて、ルールを順序づけることで、ユーザ側でルールの正答率の高さとルールが含むサンプル数のバランスを明示的に指定しなくても、正答率とサンプル数とのトレードオフ関係を考慮したルールを順番に提示できる。
【0045】
図5は、正答率とサンプル数との関係を示す図である。
図5のグラフの縦軸は、ルールの正答率に対応する軸である。グラフの横軸は、ルールに含まれるサンプル数に対応する軸である。ここで、データの変化に対して頑健なルールは、サンプル数が多いルールという仮説が成り立つ。これにより、ユーザは、ルールの正答率が同程度なら、サンプル数の多いルールを選びたい。また、ユーザは、ルールを指示するサンプル数が同程度ならば、正答率の高いルールを選びたい。一般的に、ルールの正解率とルールが含むサンプル数には、トレードオフ関係にあるが、ルール提示装置は、正答率とサンプル数との関係がニーポイントK3に近いルールを優先的に提示している。
【0046】
図6は、指定される属性に該当するルールの正答率とサンプル数との関係を示す図である。
図6のグラフの縦軸は、ルールの正答率に対応する軸である。グラフの横軸は、ルールに含まれるサンプル数に対応する軸である。
図6において、ポイント10
ACは、
図4に示した属性「AC」のルールのサンプル数と、正答率との関係を示す。ポイント10
Dは、
図4に示した属性「D」のルールのサンプル数と、正答率との関係を示す。ポイント10
AC、ポイント10
Dは、ニーポイントK3に近いため、ユーザの所望する属性「AC」のルールおよび、属性「D」のルールをユーザに提示できることが分かる。
【0047】
次に、本実施例にかかるルール提示装置の構成の一例について説明する。
図7は、本実施例にかかるルール提示装置の構成を示す機能ブロック図である。
図7に示すように、このルール提示装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0048】
通信部110は、ネットワークを介して図示しない外部装置とデータ通信を実行する処理部である。通信部110は、通信装置の一例である。後述する制御部150は、通信部110を介して、外部装置とデータをやり取りする。
【0049】
入力部120は、ルール提示装置100に対して各種の情報を入力するための入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。たとえば、ユーザは、入力部120を操作して、指定条件データ142を入力してもよい。指定条件データ142は、ユーザが指定する属性の条件の情報である。
【0050】
表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、制御部150から出力されるルールの情報を表示する。
【0051】
記憶部140は、学習データ141、指定条件データ142、ルール集合データ143、提示候補集合データ144を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0052】
学習データ141は、属性の組み合わせと、正例または負例とを対応付けたルールの集合を有する。
図8は、学習データのデータ構造の一例を示す図である。
図8に示すように、学習データ141は、サンプル番号と、各属性A,B,C,Dと、ラベルとを対応付ける。
図8では、属性A~Dを示すが、学習データ141は他の属性を有していてもよい。
【0053】
サンプル番号は、各サンプル(レコード)を識別する情報である。属性Aは「年齢が50(歳)以上であるか否かを示すもの」であり、対象者の年齢が50以上の場合には値が「1」となり、50未満の場合には値が「0」となる。属性Bは「身長が160cm以上であるか否かを示すもの」であり、対象者の身長が160cm以上の場合には値が「1」となり、160cm未満の場合には値が「0」となる。
【0054】
属性Cは「体重が80kg以上であるか否かを示すもの」であり、対象者の体重が80kg以上の場合には値が「1」となり、80kg未満の場合には値が「0」となる。属性Dは「男性か女性かを示すもの」であり、対象者の性別が男性の場合には値が「1」となり、女性の場合には値が「0」となる。
【0055】
ラベルは、サンプルの各属性に対応する値が「健康であるか否かを示すもの」であり、健康である場合には「+(正例)」となり、健康でない場合には「-(負例)」となる。たとえば、サンプル番号「R0001」のサンプルにおいて、属性A「0」、属性B「1」、属性C「0」、属性D「0」となる場合、ラベルは「+」となる。サンプル番号「R0007」のサンプルにおいて、属性A「0」、属性B「0」、属性C「1」、属性D「0」となる場合、ラベルは「-」となる。
【0056】
指定条件データ142は、ユーザに指定される属性の条件を示すものである。
図9は、指定条件データの一例を示す図である。
図9に示す例では、属性A「1」、属性B「0」、属性C「1」、属性D「1」となっている。このため、指定条件データ142が示す条件は「AかつnotBかつCかつD」を示す。
【0057】
ルール集合データ143は、学習データ141から特定される複数のルールのデータを保持するものである。ルール集合データ143に含まれるルールの正答率を閾値以上とする。一例として、正答率の閾値を「0.6(60%)」とする。
【0058】
図10は、ルール集合データの一例を示す図である。たとえば、学習データ141の各サンプルに基づいて、PおよびNを設定したカルノー図を、
図10に示すものとする。たとえば、属性A~Dについて、1つ以上の属性からなるルールのうち、正答率が閾値以上となるルールは、属性「A」のルール(正答率:0.6)、属性「notB」のルール(正答率:0.6)、属性「C」のルール(正答率:0.67)、属性「D」のルール(正答率:0.71)を含む。
【0059】
また、正答率が閾値以上となるルールは、属性「CD」のルール(正答率:0.67)、属性「notBかつC」のルール(正答率:0.67)、属性「notBかつD」のルール(正答率:0.67)、属性「AかつCかつD」のルール(正答率:1)、属性「AかつnotBかつC」のルール(正答率:1)、属性「AかつnotBかつD」のルール(正答率:1)、属性「notBかつCかつD」のルール(正答率:1)となる。
【0060】
提示候補集合データ144は、ルール集合データ143に含まれる各ルールのうち、指定条件データ142に該当するルールのデータを保持するものである。
【0061】
図11は、提示候補集合データの一例を示す図である。たとえば、指定条件データ142に対応するカルノー図のセルを、セルs(4,3)とする。そうすると、ルール集合データ143のルールのうち、全てのルールが、指定条件データ142に該当するルールとなる。
【0062】
図11では、正答率が閾値未満であるため、ルール集合データ143には含めなかったが、仮に、属性「notA」のルールの正答率が閾値以上であり、属性「notA」のルールが、ルール集合データ143に含まれているものとして説明する。この場合、かかる属性「notA」のルールは、指定条件データ142に該当するルールとならない(セルs(4,3)を含まない)ため、提示候補集合データ144から、属性「notA」のルールが除外される。
【0063】
図7の説明に戻る。制御部150は、取得部151と、特定部152と、決定部153とを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0064】
取得部151は、ネットワークを介して外部装置等から学習データ141を取得する処理部である。取得部151は、学習データ141を取得した場合に、学習データ141を記憶部140に登録する。また、取得部151は、ユーザによる入力部120の操作により、指定条件データ142の入力を受け付けた場合に、指定条件データ142を、記憶部140に登録する。
【0065】
特定部152は、学習データ141を基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方のラベルを導く複数のルールを特定し、特定したルールの情報を、ルール集合データ143に登録する処理部である。
【0066】
図12は、特定部の処理を説明するための図である。特定部152は、学習データ141に含まれる各サンプルを参照し、サンプルの属性の組み合わせに対応するカルノー図の各セルに、PまたはNを設定する。
【0067】
図12に示す例では、特定部152は、カルノー図のセルs(1,4)、s(4,4)、s(3,3)、s(1,2)、s(3,4)に、N
1、N
2、N
3、N
4、N
5をそれぞれ設定する。また、ルール提示装置は、カルノー図のセルs(2,1)、s(2,3)、s(4,2)、s(3,2)、s(2,2)、s(1,3)に、P
1、P
2、P
3、P
4、P
5をそれぞれ設定する。
【0068】
特定部152は、一つ以上の属性の組み合わせに対応する全てのルールを特定し、特定した各ルールについて、正答率を算出し、正答率が閾値以上となるルールを、ルール集合データ143に登録するルールとして特定する。
【0069】
属性「A」のルールは、「負例」を導くルールである。属性「A」のルールは、正例を導くサンプル数が2、負例を導くサンプル数が3であるため、正答率は「0.6」となり、閾値以上となる。このため、特定部152は、属性「A」のルールの情報を、ルール集合データ143に登録する。
【0070】
属性「notAかつnotBかつD」のルールは、「正例」または「負例」を導くルールである。属性「notAかつnotBかつD」のルールは、正例を導くサンプル数が1、負例を導くサンプル数が1であるため、正答率は「0.5」となり、閾値未満となる。このため、特定部152は、属性「notAかつnotBかつD」のルールの情報を、ルール集合データ143に登録しない。
【0071】
特定部152は、1以上の属性の組み合わせに対する各ルールについて、上記処理を繰り返し実行することで、正答率が閾値以上となるルールの情報を、ルール集合データ143に登録する。
【0072】
決定部153は、ルール集合データ143に含まれる複数のルールのうち、指定条件データ142に関連するルールを特定し、特定したルールの情報を、提示候補集合データ144に登録する。決定部153は、提示候補集合データ144に含まれる各ルールについて、最小サンプル数を算出し、最小サンプル数を基にして、ルールを提示する順番を決定する。また、決定部153は、決定した順番に従って、ルールを表示部130に出力して表示させる。
【0073】
決定部153が、指定条件データ142に関連するルールの情報を、提示候補集合データ144に登録する処理の一例について説明する。
図13は、決定部の処理を説明するための図(1)である。決定部153は、提示候補集合データ144に登録された各ルールの属性と、指定条件データ142に対応する属性とを比較し、指定条件データ142の属性の組み合わせに関連するルールを特定する。指定条件データ142の属性の条件を「AかつnotBかつCかつD」とする。
【0074】
図13に示す例では、指定条件データ142の属性に対応するセルはs(4,3)となる。このため、指定条件データ142の属性に関連するルールは、属性「C」、「AかつC」、「notBかつC」、「AかつnotBかつC」、「notB」、「A」、「AかつCかつD」のルールとなる。また、指定条件データ142の属性に関連するルールは、属性「AかつnotBかつD」、「notBかつCかつD」、「D」、「CかつD」、「AかつD」、「notBかつD」のルールとなる。
【0075】
上記処理を行うことで、決定部153は、ルール集合データ143に登録された各ルールのうち、指定条件データ142に関連するルールを特定する。決定部153は、指定条件データ142に関連するルールの情報を、提示候補集合データ144に登録する。
【0076】
続いて、決定部153が、提示候補集合データ144の各ルールの最小サンプル数を算出する処理の一例について説明する。決定部153は、指定条件データ142に対応するサンプルのラベルを、ルールが導くラベルとは相反するラベルを設定し、サンプルの数を増やしていき、初めにルールの正答率が閾値未満となるサンプルの数を、最小サンプル数として算出する。
【0077】
図14は、決定部の処理を説明するための図(2)である。たとえば、属性「AかつC」の「負例」を導くルールを用いて、最小サンプル数を算出する例について説明する。決定部153は、指定条件データ142に対応するセルs(4,3)に対して、属性「正例」のサンプルを1つ設定すると、正解率は、0.75となる。決定部153は、指定条件データ142に対応するセルs(4,3)に対して、属性「正例」のサンプルを2つ設定すると、正解率は、0.6となる。決定部153は、指定条件データ142に対応するセルs(4,3)に対して、属性「正例」のサンプルを3つ設定すると、正解率は、0.5となる。このため、決定部153は、属性「AかつC」の「負例」を導くルールの最小サンプル数を「3」として算出する。
【0078】
属性「D」の「正例」を導くルールを用いて、最小サンプル数を算出する例について説明する。決定部153は、指定条件データ142に対応するセルs(4,3)に対して、属性「負例」のサンプルを1つ設定すると、正解率は、0.63となる。決定部153は、指定条件データ142に対応するセルs(4,3)に対して、属性「正例」のサンプルを2つ設定すると、正解率は、0.5となる。このため、決定部153は、属性「D」の「正例」を導くルールの最小サンプル数を「2」として算出する。
【0079】
決定部153は、提示候補集合データ144の他のルールに対しても、上記処理を繰り返し実行することで、各ルールの最小サンプル数を算出する。
【0080】
決定部153は、提示候補集合データ144に登録した各ルールに対応する最小サンプル数を基にして、最小サンプル数の降順に、ルールをソートする。決定部153は、ソートしたルールの情報を、先頭から(最小サンプル数の大きい順に)、表示部130に表示させる。
【0081】
図15は、決定部の処理を説明するための図(3)である。たとえば、決定部153が、最小サンプル数の降順でソートした結果、1番目のルールが、属性「AC」のルール、2番目のルールが、属性「D」のルールとする。この場合には、
図15に示すように、決定部153は、属性「AC」の「負例」を導くルールを1番目に表示する。決定部153は、属性「D」の「正例」を導くルールを2番目に表示する。
【0082】
たとえば、決定部153は、ルールを表示するための画面情報を生成し、生成した画面情報を表示部130に出力して、表示させてもよい。
図16は、決定部が生成する画面情報の一例を示す図である。
図16に示すように、画面情報51には、領域51Aと、領域51Bが含まれる。
【0083】
領域51Aは、指定条件データ142を表示する領域である。領域51Bは、最小サンプル数の降順に、ルールを表示する領域である。決定部153は、領域51Bにおいて、所定時間毎に、続くルールを自動的に表示させてもよいし、ユーザの操作に応じて、ルールを順に表示してもよい。
【0084】
次に、本実施例にかかるルール提示装置100の処理手順の一例について説明する。
図17は、本実施例にかかるルール提示装置の処理手順を示すフローチャートである。
図17に示すように、ルール提示装置100の取得部151は、学習データ141を取得し、記憶部140に登録する(ステップS101)。ルール提示装置100の特定部152は、所与の条件(正答率が閾値以上)を満たすルールの集合を全て列挙し、ルール集合データ43に登録する(ステップS102)。
【0085】
ルール提示装置100の決定部153は、指定条件データ142を取得し、記憶部140に登録する(ステップS103)。決定部153は、指定条件データ142に関連する提示候補集合データ144を、ルール集合データ143から抽出し、記憶部140に登録する(ステップS104)。
【0086】
決定部153は、iに「1」を設定する(ステップS105)。決定部153は、提示候補集合データ144から、i番目のルールを選択する(ステップS106)。決定部153は、指定条件データ142に対応するセルのサンプルを、i番目のルールが導くラベルと相反するラベルをもつサンプルとし、i番目のルールの正答率を算出する(ステップS107)。
【0087】
決定部153は、正答率が閾値以上の場合には(ステップS108,Yes)、相反するラベルのサンプル数を1つ増やし(ステップS109)、ステップS107に移行する。一方、決定部153は、正答率が閾値未満の場合には(ステップS108,No)、ステップS110に移行する。
【0088】
決定部153は、最小サンプル数を記録する(ステップS110)。決定部153は、iに1を加算することで、iを更新する(ステップS111)。決定部153は、iがrange(提示候補集合データのルールの総数)よりも大きいか否かを判定する(ステップS112)。決定部153は、iがrangeのよりも大きくない場合には(ステップS112,No)、ステップS106に移行する。
【0089】
一方、決定部153は、iがrangeのよりも大きい場合には(ステップS112,Yes)、ステップS113に移行する。決定部153は、提示候補集合データ144の各ルールについて、最小サンプル数に基づき、ルールを順序付けて出力する(ステップS113)。
【0090】
次に、本実施例にかかるルール提示装置100の効果について説明する。ルール提示装置100は、指定条件データ142に関連する複数のルールのうち、指定条件データ142に対応するラベルが該当ルールと相反しても、ラベルが変化しにくいルール(最小サンプル数の大きいルール)を優先する順番で、ルール提示を行う。これによって、指定条件データ142に対応する複数のルールから、ユーザが所望するルールを選択することができる。
【0091】
最小サンプル数の大きいルールは、信頼性を表すスコアといえる。ルール提示装置は、最小サンプル数に基づいて、ルールを順序づけることで、ユーザ側でルールの正答率の高さとルールが含むサンプル数のバランスを明示的に指定しなくても、正答率とサンプル数とのトレードオフ関係を考慮したルールを順番に提示できる。
【0092】
たとえば、指定条件データ142に関連する複数のルールを絞り込む素朴な方法としては、正答率に着目し、正答率の高いルールを表示することが考えられる。しかし、正答率の高いルールは、少数サンプルのルールが提示される傾向があり、このようなルールは、データの変化を受けやすく、信頼性の低いルールとなる。
【0093】
たとえば、
図11で説明したルールのうち、属性「AかつnotBかつC」のルールの正答率は「1」であるため、正答率の高いルールとなる。しかしながら、属性「AかつnotBかつC」のルールに含まれるサンプルは、一つであるため、仮に、セルs(4,4)のラベルが「負例」から「正例」に変わると、負例を導くルールから、正例を導くルールに変わってしまい、ノイズの影響を受けやすく、信頼性が低いため、ユーザの所望するルールとは言えない。
【0094】
これに対して、本実施例では、
図6で説明したように、ニーポイントに近く信頼性の高いルールを優先して表示するため、ユーザの所望するルールを優先して提示することができる。
【0095】
次に、本実施例に示したルール提示装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図18は、本実施例に係るルール提示装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0096】
図18に示すように、コンピュータ500は、各種演算処理を実行するCPU501と、ユーザからのデータの入力を受け付ける入力装置502と、ディスプレイ503とを有する。また、コンピュータ500は、記憶媒体からプログラム等を読み取る読み取り装置504と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置505とを有する。コンピュータ500は、各種情報を一時記憶するRAM506と、ハードディスク装置507とを有する。そして、各装置501~507は、バス508に接続される。
【0097】
ハードディスク装置507は、取得プログラム507a、特定プログラム507b、決定プログラム507cを有する。CPU501は、取得プログラム507a、特定プログラム507b、決定プログラム507cを読み出してRAM506に展開する。
【0098】
取得プログラム507aは、取得プロセス506aとして機能する。特定プログラム507bは、特定プロセス506bとして機能する。決定プログラム507cは、決定プロセス506cとして機能する。
【0099】
取得プロセス506aの処理は、取得部151の処理に対応する。特定部プロセス506bの処理は、特定部152の処理に対応する。決定プロセス506cの処理は、決定部153の処理に対応する。
【0100】
なお、各プログラム507a~507cついては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ500に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ500が各プログラム507a~507cを読み出して実行するようにしてもよい。
【0101】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0102】
(付記1)属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得し、
前記学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定し、
前記学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得し、
特定した前記複数のルールのうち、前記データに含まれる属性の組み合わせに関連するルールを選択し、選択したルールが導く正例または負例と異なるラベルを前記データに設定して、選択したルールが導く正例または負例が変化する前記データのサンプル数を特定し、
前記サンプル数を基にして、提示するルールの順番を決定する
処理をコンピュータが実行することを特徴とするルール提示方法。
【0103】
(付記2)前記複数のルールを特定する処理は、ルールに含まれる1以上の属性の組み合わせに対するラベルについて、正例の割合または負例の割合のうち大きい方の割合をルールの正答率として算出し、前記正答率が閾値以上となる複数のルールを特定することを特徴とする付記1に記載のルール提示方法。
【0104】
(付記3)前記データの数を特定する処理は、前記データに含まれる属性の組み合わせに関連するルールに導かれるラベルが正例の場合に、前記データのラベルとして負例を設定し、前記ルールに含まれる正例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする付記1または2に記載のルール提示方法。
【0105】
(付記4)前記データの数を特定する処理は、前記データに含まれる属性の組み合わせに関連するルールに導かれるラベルが負例の場合に、前記データのラベルとして正例を設定し、前記ルールに含まれる負例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする付記1、2または3に記載のルール提示方法。
【0106】
(付記5)前記決定する処理により決定されたルールの順番を基にして前記ルールを提示する処理を更に実行することを特徴とする付記1~4のいずれか一つに記載のルール提示方法。
【0107】
(付記6)属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得し、
前記学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定し、
前記学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得し、
特定した前記複数のルールのうち、前記データに含まれる属性の組み合わせに関連するルールを選択し、選択したルールが導く正例または負例と異なるラベルを前記データに設定して、選択したルールが導く正例または負例が変化する前記データのサンプル数を特定し、
前記サンプル数を基にして、提示するルールの順番を決定する
処理をコンピュータに実行させることを特徴とするルール提示プログラム。
【0108】
(付記7)前記複数のルールを特定する処理は、ルールに含まれる1以上の属性の組み合わせに対するラベルについて、正例の割合または負例の割合のうち大きい方の割合をルールの正答率として算出し、前記正答率が閾値以上となる複数のルールを特定することを特徴とする付記6に記載のルール提示プログラム。
【0109】
(付記8)前記データの数を特定する処理は、前記データに含まれる属性の組み合わせに関連するルールに導かれるラベルが正例の場合に、前記データのラベルとして負例を設定し、前記ルールに含まれる正例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする付記6または7に記載のルール提示プログラム。
【0110】
(付記9)前記データの数を特定する処理は、前記データに含まれる属性の組み合わせに関連するルールに導かれるラベルが負例の場合に、前記データのラベルとして正例を設定し、前記ルールに含まれる負例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする付記6、7または8に記載のルール提示プログラム。
【0111】
(付記10)前記決定する処理により決定されたルールの順番を基にして前記ルールを提示する処理を更に実行することを特徴とする付記6~9のいずれか一つに記載のルール提示プログラム。
【0112】
(付記11)属性の組み合わせと正例または負例とを対応付けたルールの集合となる学習データを取得し、前記学習データを基にして、1以上の属性の組み合わせに対する正例の数および負例の数に応じて、正例または負例のうち一方を導く複数のルールを特定する特定部と、
前記学習データに含まれる属性の組み合わせと異なる属性の組み合わせを有し、正例または負例を指定するラベルが不明のデータを取得し、
特定した前記複数のルールのうち、前記データに含まれる属性の組み合わせに関連するルールを選択し、選択したルールが導く正例または負例と異なるラベルを前記データに設定して、選択したルールが導く正例または負例が変化する前記データのサンプル数を特定し、前記サンプル数を基にして、提示するルールの順番を決定する決定部と
を有することを特徴とするルール提示装置。
【0113】
(付記12)前記特定部は、ルールに含まれる1以上の属性の組み合わせに対するラベルについて、正例の割合または負例の割合のうち大きい方の割合をルールの正答率として算出し、前記正答率が閾値以上となる複数のルールを特定することを特徴とする付記11に記載のルール提示装置。
【0114】
(付記13)前記決定部は、前記データに含まれる属性の組み合わせに関連するルールが正例を導く場合に、前記データのラベルとして負例を設定し、前記ルールに含まれる正例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする付記11または12に記載のルール提示装置。
【0115】
(付記14)前記決定部は、前記データに含まれる属性の組み合わせに関連するルールに導かれるラベルが負例の場合に、前記データのラベルとして正例を設定し、前記ルールに含まれる負例の割合が閾値未満となる前記データの最小のサンプル数を特定することを特徴とする付記11、12または13に記載のルール提示装置。
【0116】
(付記15)前記決定部は、決定したルールの順番を基にして前記ルールを提示する処理を更に実行することを特徴とする付記11~14のいずれか一つに記載のルール提示装置。
【符号の説明】
【0117】
110 通信部
120 入力部
130 表示部
140 記憶部
141 学習データ
142 指定条件データ
143 ルール集合データ
144 提示候補集合データ
150 制御部
151 取得部
152 特定部
153 決定部