(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】予測プログラム、予測方法および予測装置
(51)【国際特許分類】
G06Q 10/04 20230101AFI20231129BHJP
G06N 5/02 20230101ALI20231129BHJP
G06N 20/00 20190101ALN20231129BHJP
【FI】
G06Q10/04
G06N5/02
G06N20/00 130
(21)【出願番号】P 2019126209
(22)【出願日】2019-07-05
【審査請求日】2022-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】▲高▼木 拓也
(72)【発明者】
【氏名】岩下 洋哲
(72)【発明者】
【氏名】後藤 啓介
(72)【発明者】
【氏名】大堀 耕太郎
【審査官】松田 岳士
(56)【参考文献】
【文献】特開2018-124667(JP,A)
【文献】特開2018-045516(JP,A)
【文献】特開平08-016400(JP,A)
【文献】国際公開第2019/088972(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06N 5/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
属性値が未知の属性と、目標とする所定のラベルとを含む予測対象の入力データを受け付け、
それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、前記複数の属性についての所定の順序条件に従って前記複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成し、
前記入力データに基づき、前記木構造データにおいて前記複数の属性のうちの
前記未知の属性の属性値を所定の値に確定した場合に、判定結果として
前記所定のラベルの値が得られる確度に基づいて、
前記未知の属性の前記所定の値の、前記判定結果が前記所定のラベルとなることに対する寄与の度合を判定
し、
判定した前記寄与の度合をより高くする値を前記未知の属性の属性値とする、
処理をコンピュータに実行させることを特徴とする予測プログラム。
【請求項2】
前記判定する処理は、前記入力データに含まれる既知の属性値を前記木構造データに適用して枝刈りを行った上で、前記複数の属性のうちの属性値が未知の属性について、当該未知の属性の属性値を所定の値に確定した場合の前記判定結果が前記入力データに含まれるラベルとなることに対する寄与の度合を判定する、
ことを特徴とする請求項1に記載の予測プログラム。
【請求項3】
前記判定する処理は、前記
未知の属性の属性値を第1の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合と、前記
未知の属性の属性値を第2の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合とを比較して、前記
未知の属性を前記第1の値および前記第2の値のいずれにするかを判定する、
ことを特徴とする請求項1または2に記載の予測プログラム。
【請求項4】
属性値が未知の属性と、目標とする所定のラベルとを含む予測対象の入力データを受け付け、
それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、前記複数の属性についての所定の順序条件に従って前記複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成し、
前記入力データに基づき、前記木構造データにおいて前記複数の属性のうちの
前記未知の属性の属性値を所定の値に確定した場合に、判定結果として
前記所定のラベルの値が得られる確度に基づいて、
前記未知の属性の前記所定の値の、前記判定結果が前記所定のラベルとなることに対する寄与の度合を判定
し、
判定した前記寄与の度合をより高くする値を前記未知の属性の属性値とする、
処理をコンピュータが実行することを特徴とする予測方法。
【請求項5】
属性値が未知の属性と、目標とする所定のラベルとを含む予測対象の入力データを受け付ける入力部と、
それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、前記複数の属性についての所定の順序条件に従って前記複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成し、前記入力データに基づき、前記木構造データにおいて前記複数の属性のうちの
前記未知の属性の属性値を所定の値に確定した場合に、判定結果として
前記所定のラベルの値が得られる確度に基づいて、
前記未知の属性の前記所定の値の、前記判定結果が前記所定のラベルとなることに対する寄与の度合を判定
し、判定した前記寄与の度合をより高くする値を前記未知の属性の属性値とする予測部と、
を有することを特徴とする予測装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、予測プログラム、予測方法および予測装置に関する。
【背景技術】
【0002】
従来、離散データの非線形分類に用いられる技術として、教師つきの訓練データによってデータを分類するために用いる分類ルール、すなわち決定木を機械学習し、学習した決定木を用いて入力データの分類結果を予測する技術がある。
【先行技術文献】
【特許文献】
【0003】
【文献】L. Breiman, Machine Learning, vol.45, pp. 5-32 (2001)
【発明の概要】
【発明が解決しようとする課題】
【0004】
入力データに対する予測については、分類ルールを用いて、最適なアクション(例えば、製造工程において次に行う工程の制御をどうするか、マーケティング対象の顧客に対して次に行うべき働きかけをどうするか等)を特定(予測)することが目的の1つとして挙げられる。
【0005】
しかしながら、予測のための分類ルールは複数生成される場合がある。このため、上記の従来技術では、最適なアクションを予測する際に、複数の分類ルールそれぞれに基づくアクションをすべて(総当たりで)試行することとなり、処理コストの増大を招くという問題がある。
【0006】
1つの側面では、入力データに対する予測を効率的に行うことを可能とする予測プログラム、予測方法および予測装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の案では、予測プログラムは、受け付ける処理と、生成する処理と、判定する処理とをコンピュータに実行させる。受け付ける処理は、予測対象の入力データを受け付ける。生成する処理は、それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、複数の属性についての所定の順序条件に従って複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成する。判定する処理は、入力データに基づき、木構造データにおいて複数の属性のうちの所定の属性の属性値を所定の値に確定した場合に、判定結果として所定のラベルの値が得られる確度に基づいて、所定の属性の所定の値の、判定結果が所定のラベルとなることに対する寄与の度合を判定する。
【発明の効果】
【0008】
本発明の1実施態様によれば、入力データに対する予測を効率的に行うことができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【
図2】
図2は、実施形態にかかる情報処理装置の動作例を示すフローチャートである。
【
図3】
図3は、訓練データの一例を示す説明図である。
【
図4】
図4は、仮説の生成を説明する説明図である。
【
図5】
図5は、仮説の生成を説明する説明図である。
【
図6】
図6は、仮説の生成を説明する説明図である。
【
図7】
図7は、生成された仮説の一例を示す説明図である。
【
図8】
図8は、入力データに適合する仮説を説明する説明図である。
【
図9】
図9は、ロジスティック回帰による重み付けを説明する説明図である。
【
図11】
図11は、木構造データの生成を説明する説明図である。
【
図12-1】
図12-1は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
【
図12-2】
図12-2は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
【
図12-3】
図12-3は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
【
図14-1】
図14-1は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
【
図14-2】
図14-2は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
【
図14-3】
図14-3は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
【
図16】
図16は、実施形態にかかる情報処理装置のハードウエア構成例を説明する説明図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態にかかる予測プログラム、予測方法および予測装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する予測プログラム、予測方法および予測装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0011】
図1は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。
【0012】
図1に示すように、情報処理装置1は、入力部10、記憶部20、仮説生成部30、学習部40、予測部50および出力部60を有する。
【0013】
入力部10は、機械学習に関する訓練データ21や、予測対象となる入力データ22などの各種データの入力を受け付ける処理部である。入力部10は、入力を受け付けた訓練データ21や入力データ22を記憶部20に格納する。
【0014】
記憶部20は、例えば訓練データ21、入力データ22、仮説集合データ23、重みデータ24および結果データ25などの各種データを記憶する。
【0015】
仮説生成部30は、それぞれに説明変数および目的変数を有する訓練データ21から、説明変数の組み合わせにより構成される仮説(目的変数に応じた予測となることを説明するルール(根拠))を網羅的に探索する。
【0016】
次いで、仮説生成部30は、探索した仮説それぞれについて、訓練データ21の説明変数および目的変数をもとに、訓練データ21のいずれかを分類し、特定の条件を満たす仮説を特定する。ここで、特定の条件とは、仮説(説明変数の組み合わせ)が示すルールによって所定のクラスに分類される訓練データ21の数または割合が所定の値以上であることなどである。例えば、仮説生成部30は、探索した仮説について、その仮説により分類される訓練データ21の数または割合が所定の値以上であり、仮説による分類結果があるクラスに属することを一定以上のサンプル数かつ(または)一定以上のサンプル割合で説明しているものを特定する。つまり、仮説生成部30は、訓練データ21の目的変数に応じた予測となることを正しく説明している可能性のある仮説を特定する。
【0017】
次いで、仮説生成部30は、特定した仮説を仮説集合に加える。このようにして、仮説生成部30は、訓練データ21の目的変数に応じた予測となることを正しく説明している可能性のある仮説を仮説集合に列挙する。次いで、仮説生成部30は、仮説を列挙した仮説集合を示す仮説集合データ23を記憶部20に格納する。この仮説集合に列挙された各仮説は、それぞれが複数の属性の属性値の組み合わせ(説明変数の組み合わせ)とラベル(目的変数)との対応付けにより示される複数のルール情報の一例である。
【0018】
学習部40は、訓練データ21それぞれに対する、仮説集合データ23の仮説集合に含まれる複数の仮説それぞれの成立有無に基づき、複数の仮説それぞれの重みを算出する学習を行う。学習部40は、学習結果により得られた複数の仮説それぞれの重みを重みデータ24として記憶部20に格納する。このようにして得られた仮説集合データ23および重みデータ24が、予測結果を得るための予測モデルである。
【0019】
予測部50は、仮説集合データ23による仮説集合と、重みデータ24による複数の仮説の重み、すなわち予測モデルを用いて、予測対象である入力データ22に基づき予測結果を生成する処理部である。予測部50は、生成した予測結果を結果データ25として記憶部20に格納する。
【0020】
入力データ22には、例えば既知のアクション(説明変数の一部)と、目標とするラベル(目的変数)とが含まれる。予測部50は、未知のアクション(残りの説明変数)について、仮説集合データ23による仮説集合と、予測モデルを用いて、既知のアクションを行ったうえで目標とするラベルとなるような最適な説明変数の値、すなわち最適なアクションを予測する。
【0021】
例えば、製造工程において、良品を製造するために次に行う工程の制御をどうするかを予測する場合、入力データ22に含まれる既知のアクションには、製造工程における観測値や制御の設定値などがある。また、目標とするラベルには、製造工程で製造される製品が良品であることを示すものがある。これにより、予測部50は、良品を製造するために次に行う工程の制御(未知のアクション)をどうするかを予測することができる。
【0022】
また、例えば、マーケティングが成功するために顧客に対して次に行うべき働きかけをどうするかを予測する場合、入力データ22に含まれる既知のアクションには、マーケティングにおけるユーザへの応対内容などがある。また、目標とするラベルには、マーケティングが成功することを示すものがある。これにより、予測部50は、マーケティングが成功するために顧客に対して次に行うべき働きかけ(未知のアクション)をどうするかを予測することができる。
【0023】
具体的には、予測部50は、仮説集合データ23に基づいて、複数の属性についての所定の順序条件に従って仮説集合に列挙された各仮説を集約したデータであって、属性値(説明変数の値)を枝とする木構造データを生成する。
【0024】
複数の属性の順序条件については、ルールベースや入力データ22におけるユーザ設定として予め設定されているものとする。具体的には、複数の属性について、製造工程における工程順などに対応する順序(例えばA→B→C→…)が予め設定されている。したがって、予測部50は、製造工程における工程順などに対応した順序で、製造工程における観測値や制御の設定値などの属性値を枝とする木構造データを生成する。
【0025】
次いで、予測部50は、生成した木構造データが示す木構造に沿って、入力データ22に含まれる既知のアクションを行ったうえで目標とするラベルとなるような最適な説明変数の値、すなわち最適なアクションの探索を行う。具体的には、予測部50は、入力データ22に基づき、木構造データにおいて複数の属性のうちの所定の属性の属性値を所定の値に確定した場合に、予測モデルの判定結果として所定のラベルの値が得られる確度(例えば予測スコア)に基づいて、所定の属性が所定の値であることが所定のラベルとなることに対する寄与の度合を判定する。次いで、予測部50は、判定した寄与の度合をもとに、所定の属性における属性値を探索する。具体的には、寄与の度合をより高くする値を所定の属性における属性値とする。
【0026】
例えば、予測部50は、入力データ22に含まれる既知の属性値を木構造データに適用して枝刈りを行う。次いで、予測部50は、複数の属性のうちの属性値が未知の属性について、未知の属性の属性値を所定の値に確定した場合の判定結果が入力データ22に含まれるラベルとなることに対する寄与の度合を判定する。次いで、予測部50は、判定した寄与の度合をもとに、未知の属性における属性値を探索する。例えば、予測部50は、木構造データをもとに属性値が0の枝をたどって判定した寄与の度合と、属性値が1の枝をたどって判定した寄与の度合いとを比較し、寄与の度合がより高くなる方を求める。
【0027】
出力部60は、記憶部20に格納された結果データ25を読み出し、ディスプレイやファイルなどに出力する処理部である。これにより、情報処理装置1は、予測部50が予測した予測結果をディスプレイやファイルなどに出力する。具体的には、情報処理装置1は、予測部50が予測した最適なアクションの予測結果を出力する。
【0028】
このように、情報処理装置1は、学習装置および予測装置の一例である。なお、本実施形態では学習および予測を一つの情報処理装置1で統合して行う構成を例示するが、学習および予測については、別々の情報処理装置1で実現してもよい。
【0029】
次に、情報処理装置1の動作例を示しながら、上記の各機能部の処理を詳細に説明する。
図2は、実施形態にかかる情報処理装置1の動作例を示すフローチャートである。
【0030】
図2に示すように、情報処理装置1の動作は、予測モデルを生成する学習時の動作(S1)と、生成した予測モデルを予測対象の入力データ22に適用して予測結果を得る予測時の動作(S2)とがある。まず、学習時の動作(S1)について説明する。
【0031】
図2に示すように、処理が開始されると、入力部10は、訓練データ21の入力を受け付け(S11)、記憶部20に格納する。
【0032】
図3は、訓練データの一例を示す説明図である。訓練データ21は、複数の事例ごとの教師付きデータであり、データの性質を説明するA~Dの説明変数と、+または-への分類結果(正解情報)である目的変数とを含む。
【0033】
図3に示すように、訓練データ(P
1~P
4、N
1~N
3)は、データの性質を説明するA~Dの説明変数(予測に用いる情報)と、+または-へのClass(分類)を示す正解情報である目的変数(予測したい情報)とを含む。例えば、訓練データP
1~P
4は、目的変数A~Dそれぞれが0または1であり、+に分類されるデータである。同様に、訓練データN
1~N
3は、目的変数A~Dそれぞれが0または1であり、-に分類されるデータである。
【0034】
例えば、製造工程の分野などにおいて、工程のデータから製造品の結果(良品/不良品)を分類する予測モデルを生成するための訓練データ(P1~P4、N1~N3)の場合、A~Dの説明変数は工程ごとの観測値、制御値などに対応する。また、目的変数は、良品(P)/不良品(N)などの製造結果に対応する。
【0035】
なお、説明変数(1/0)については、オーバーライン(以下、「バー」と称する)の有無で表現している。例えばAは、A=1であり、AバーはA=0を示す。また、目的変数(+/-)については、網掛けで表現している。例えば、訓練データP1~P4などの網掛けは、目的変数が+を示す。また、訓練データN1~N3などの網掛けは、目的変数が-を示す。なお、これらの表現は、他の図面でも共通であるものとする。
【0036】
次いで、仮説生成部30は、訓練データ(P1~P4、N1~N3)に含まれる説明変数について、それぞれとり得る値(使用しない=*、値=1、値=0)の組み合わせ、すなわち仮説を網羅的に列挙する(S12)。
【0037】
なお、組み合わせる説明変数の数は、所定の数以下とするように制限(条件)を設けてもよい。例えば、A~Dの4説明変数の場合、組み合わせる説明変数の数を2以下とする(4説明変数のうち「使用しない=*」とするものを少なくとも2つ組み合わせる)ように制限してもよい。これにより、組み合わせが増大することを事前に抑止できる。
【0038】
次いで、仮説生成部30は、S12で列挙した組み合わせから所定の組み合わせを選択する(S13)。次いで、仮説生成部30は、訓練データ(P1~P4、N1~N3)の説明変数および目的変数をもとに、選択した組み合わせが訓練データ(P1~P4、N1~N3)のいずれかを分類し、特定の条件を満たす有効な組み合わせであるか否かを判定する(S14)。
【0039】
図4は、仮説の生成を説明する説明図である。
図4では、A~Dの4説明変数の全てが「*」である組み合わせC01からCD(ABは「*」)である組み合わせC09が一例として示されている。
【0040】
図4に示すように、仮説生成部30は、訓練データ(P
1~P
4、N
1~N
3)の説明変数をもとに、組み合わせC01~C09それぞれの仮説(ルール)に該当する訓練データ(P
1~P
4、N
1~N
3)を列挙する。
【0041】
例えば、組み合わせC02のDバー(残り3説明変数は「使用しない=*」)のルールには、訓練データP2、N1、N2が該当する。この組み合わせC02のルール(Dバー)では、目的変数が+である訓練データ(P2)と、目的変数が-である訓練データ(N1、N2)とが混在している。したがって、組み合わせC02は、あるクラスに分類することを正しく説明する仮説としての可能性が低く、有効な組み合わせとは言えない。
【0042】
ここで、組み合わせC04のルール(Cバー)には、目的変数が+である訓練データ(P1、P3、P4)が該当する。すなわち、組み合わせC04は、+のクラスに分類される訓練データ(P1、P3、P4)の数または割合が所定の値以上であり、+のクラスに分類することを正しく説明するルールとしての可能性が高い。よって、仮説生成部30は、組み合わせC04(Cバー)を、+のクラスに分類する有効な組み合わせ(仮説)と判定する。同様に、仮説生成部30は、組み合わせC05、C06についても+のクラスに分類する有効な組み合わせ(仮説)と判定する。
【0043】
また、組み合わせC08のルール(CDバー)には、目的変数が-である訓練データ(N1、N2)が該当する。すなわち、組み合わせC08は、-のクラスに分類される訓練データ(N1、N2)の数または割合が所定の値以上であり、-のクラスに分類することを正しく説明するルールとしての可能性が高い。よって、仮説生成部30は、組み合わせC08(CDバー)を、-のクラスに分類する有効な組み合わせ(仮説)と判定する。
【0044】
有効な組み合わせと判定するための条件である、所定のクラスに分類される訓練データ(P1~P4、N1~N3)の数または割合は、任意に設定してもよい。例えば、訓練データにはノイズが混じる場合があることから、所定のクラス(例えば+)とは逆のクラス(例えば-)を所定数許容するように設定してもよい。
【0045】
一例として、訓練データ1つ分のノイズを許容する場合、組み合わせC03(D)については、+のクラスに分類する有効な組み合わせ(仮説)と判定される。同様に、組み合わせC07(C)については、-のクラスに分類する有効な組み合わせ(仮説)と判定される。
【0046】
図2に戻り、組み合わせが有効でない場合(S14:NO)、仮説生成部30は、選択した組み合わせを仮説集合に加えることなく、S17へ処理を進める。
【0047】
組み合わせが有効である場合(S14:YES)、仮説生成部30は、選択した組み合わせが仮説集合に含まれる他の仮説の特殊ケースになっているか否かを判定する(S15)。
【0048】
例えば、
図4における組み合わせC05のCバーDと、組み合わせC06のCバーDバーとは、組み合わせC04のCバーに新たなリテラルを付加して作られるものである。このような組み合わせC05、C06について、仮説生成部30は、組み合わせC04のCバーの特殊ケースになっているものと判定する。
【0049】
特殊ケースになっている場合(S15:YES)、仮説生成部30は、選択した組み合わせを仮説集合に加えることなく、S17へ処理を進める。
【0050】
図5は、仮説の生成を説明する説明図である。
図5に示すように、仮説生成部30は、Cバーの特殊ケースになっている組み合わせ(組み合わせC05、C06)は省略し、Cバーの組み合わせC04aを仮説集合として残すようにする。
【0051】
特殊ケースになっていない場合(S15:NO)、仮説生成部30は、選択した組み合わせを仮説集合データ23の仮説集合に加える(S16)。次いで、仮説生成部30は、S12で列挙した全ての組み合わせを選択済みであるか否かを判定する(S17)。未選択の組み合わせがある場合(S17:NO)、仮説生成部30はS13へ処理を戻す。
【0052】
このS13~S17の処理を繰り返すことで、仮説生成部30は、訓練データ21の目的変数に応じた予測となることを正しく説明している可能性のある仮説をもれなく仮説集合に列挙する。
【0053】
図6は、仮説の生成を説明する説明図であり、具体的には
図4、5の内容をカルノー図例で説明する図である。
【0054】
図6に示すように、仮説生成部30は、A(残り3説明変数は「使用しない=*」)の組み合わせ(S31)、Aバー(残り3説明変数は「使用しない=*」)の組み合わせ(S32)…の順に組み合わせを変更して有効な組み合わせを検討する(S31~S35…)。
【0055】
ここで、S33の(Cバー)の組み合わせでは、目的変数が+である訓練データ(P1、P3、P4)が該当する。すなわち、S33では、+のクラスに分類される訓練データ(P1、P3、P4)の数または割合が所定の値以上である。よって、S33の(Cバー)の組み合わせを+のクラスに分類する有効な組み合わせ(仮説)と判定する。なお、以下の処理では、(Cバー)にリテラルを加える組み合わせは除外する。
【0056】
次いで、仮説生成部30は、3説明変数を「使用しない=*」とする全ての組み合わせの検討後に、2説明変数を「使用しない=*」とする組み合わせの検討を開始する(S34)。ここで、S35の(AバーB)の組み合わせでは、目的変数が+である訓練データ(P1、P2)が該当する。すなわち、S35では、+のクラスに分類される訓練データ(P1、P2)の数または割合が所定の値以上である。よって、S35の(AバーB)の組み合わせを+のクラスに分類する有効な組み合わせ(仮説)と判定する。
【0057】
図7は、生成された仮説の一例を示す説明図である。
図7に示すように、訓練データ(P
1~P
4、N
1~N
3)からは、分類結果が+または-となる仮説H1~H11の仮説が生成され、仮説集合データ23として記憶部20に格納される。
【0058】
この仮説H1~H11のそれぞれは、訓練データ(P1~P4、N1~N3)の分類結果が+または-となることについて正しく説明していることを要件とする独立した仮説である。よって、仮説H2と、仮説H6のように、相互には矛盾した仮説が含まれる場合がある。
【0059】
また、訓練データ(P1~P4、N1~N3)に含まれていない入力データ(IN1、IN2、IN3)については、仮説H1~H11の中で適合する仮説から予測結果を得ることができる。
【0060】
図8は、入力データ(IN
1、IN
2、IN
3)に適合する仮説を説明する説明図である。
図8に示すように、入力データIN
1については、仮説H2のCDバー⇒-、仮説H6のBDバー⇒+、仮説H8のAバーB⇒+が適合する仮説である。また、入力データIN
2については、仮説H4のBバーD⇒+、仮説H5のBバーC⇒-、仮説H7のAバーD⇒+、仮説H9のAバーBバー⇒-が適合する仮説である。また、入力データIN
3については、仮説H1のCバー⇒+、仮説H7のAバーD⇒+、仮説H8のAバーB⇒+が適合する仮説である。
【0061】
図2に戻り、未選択の組み合わせがない場合(S17:YES)、学習部40は、訓練データ(P
1~P
4、N
1~N
3)それぞれに対する、仮説集合データ23の仮説集合に含まれる各仮説(H1~H11)の成立有無に基づき、各仮説(H1~H11)の重みを算出する(S18)。次いで、学習部40は、算出結果を重みデータ24として記憶部20に格納する。
【0062】
学習部40における重み算出は、例えば次の3つの手法のいずれであってもよい。
・どのルール(H1~H11)も重み1(ルールの数による多数決)とする。
・ルール(H1~H11)を支持(該当)する訓練データ(P1~P4、N1~N3)の数に応じた重みとする。
・訓練データ(P1~P4、N1~N3)を適用したロジスティック回帰による重み付けを行う。
【0063】
図9は、ロジスティック回帰による重み付けを説明する説明図である。ロジスティック回帰では、
図9に示すように、モデル式に訓練データ(P
1~P
4、N
1~N
3)適用し、仮説H1~H11に関する重み(β
1~β
11)を求める。このモデル式は、例えば予測スコアを求めるスコア関数に相当する。
【0064】
ここで、学習部40は、ロジスティック回帰などで得られた各仮説(H1~H11)の重みに応じて、仮説の選別を行ってもよい。
【0065】
図10は、仮説の選別を説明する説明図である。
図10に示すように、学習部40は、仮説H1~H11の重み(β
1~β
11)をもとに、重みが所定値以上であり、予測結果に大きな影響を与える主要な仮説を選別する。図示例では、0ではい重みを有する、Cバー、CDバー、BバーDバー、AバーB、ACの5つの仮説H1~3、H8、H11を主要な仮説として選別している。
【0066】
図2に戻り、予測時(S2)の動作について説明する。S2が開始されると、入力部10は、予測対象の入力データ22を受け付けて記憶部20に格納する(S21)。
【0067】
次いで、予測部50は、仮説集合データ23に基づいて、所定の順序条件(例えば工程順)に従って仮説集合に列挙された各仮説を集約し、属性値(説明変数の値)を枝とする木構造データを生成する(S22)。
【0068】
図11は、木構造データの生成を説明する説明図である。
図11に示すように、仮説集合データ23は、説明変数A、B、C…とラベル(P・N)との対応について、A=1∧B=0→P、A=1∧C=0→N、B=0∧D=0→N…などのルール(仮説)の集合を有する。予測部50は、この仮説集合データ23に含まれる各仮説について、順序条件(A→B→C→…)をもとに順序関係(A=1→B=1→P)を導入することで、パスで表現を行う。次いで、予測部50は、各仮説のパスをルートに近い属性値から順に接続して共通部分を集約することで、属性値を枝として木構造に変換した木構造データ23aを生成する。
【0069】
次いで、予測部50は、入力データ22に含まれる既知の属性値を木構造データ23aに適用して枝刈りを行った上で、未知の属性値について、所定のラベルの値が得られる確度を求め、所定のラベルとなることに対する寄与の度合を判定する(S23)。予測部50は、寄与の度合の判定による予測結果を結果データ25として記憶部20に格納する。
【0070】
図12-1~
図12-3は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
図12-1に示すように、A=1∧B=0→P、A=1∧C=0→N、B=0∧D=0→N…などの仮説集合データ23より、A、B、C、Dの属性値を枝とする木構造データ23aが得られているものとする。また、入力データ22には、A=1、B=0とする既知のアクション(説明変数の一部)と、目標とするラベル(P)とが含まれているものとする。よって、予測部50は、木構造データ23aにおける木構造において、A=1、B=0で枝刈りを行うことで、A、Bの枝については探索済(確定済)として扱うものとする。
【0071】
図12-2に示すように、予測部50は、未知の属性値Cについて、C=0に確定した場合の木構造データ23aにおける木構造のパスをたどることで、PまたはNのラベルの値が得られる確度を算出する。
【0072】
例えば、ラベルPについては、A=1→B=0→Pのパス(ルール)がC=0の場合に成り立つものとして見つかる。また、ラベルNについては、A=1→C=0→Nのパス(ルール)がC=0の場合に成り立つものとして見つかる。B=0、D=0のパス(ルール)は、Cより後順のDにより未定であるが、C=0の場合にラベルNとして成り立つ可能性のあるものとして見つかる。
【0073】
予測部50は、パス(ルール)の総数に対してC=0の場合にPまたはNが成り立つ(成り立つ可能性のあるものも含める)数をもとに、C=0の場合でPまたはNのラベルの値が得られる確度を求める。また、予測部50は、PまたはNが成り立つパス(ルール)に対してスコア関数の重み付けを行うことで、C=0の場合にPまたはNのラベルの値が得られる確度を求めてもよい。
【0074】
また、
図12-3に示すように、予測部50は、未知の属性値Cについて、C=1に確定した場合の木構造データ23aにおける木構造のパスをたどることで、PまたはNのラベルの値が得られる確度を算出する。
【0075】
例えば、ラベルPについては、A=1→B=0→Pのパス(ルール)がC=1の場合に成り立つものとして見つかる。また、ラベルNについては、B=0、D=0のパス(ルール)がC=1の場合に成り立つ可能性のあるものとして見つかる。
【0076】
予測部50は、パス(ルール)の総数に対してC=1の場合にPまたはNが成り立つ(成り立つ可能性のあるものも含める)数をもとに、C=1の場合でPまたはNのラベルの値が得られる確度を求める。また、予測部50は、PまたはNが成り立つパス(ルール)に対してスコア関数の重み付けを行うことで、C=1の場合にPまたはNのラベルの値が得られる確度を求めてもよい。
【0077】
図13は寄与の度合を例示する説明図である。
図13に示すように、ケース71は、C=0の場合を例示しており、Pの満たしているルール数は1、Nの満たしているルール数は1となる。また、Pの満たしそうな(可能性のある)ルール数は0、Nの満たしそうな(可能性のある)ルール数は1である。よって、予測部50は、C=0の場合について、PよりもNのラベルの値が得られる確度を高く算出する。
【0078】
また、ケース72は、C=1の場合を例示しており、Pの満たしているルール数は1、Nの満たしているルール数は0となる。また、Pの満たしそうな(可能性のある)ルール数は0、Nの満たしそうな(可能性のある)ルール数は1である。よって、予測部50は、C=1の場合について、NよりもPのラベルの値が得られる確度を高く算出する。
【0079】
予測部50は、ケース71、72を比較する(例えばPとする確度を比較する)ことで、よりPとする確度が高くなるC=1を予測結果として得る。また、予測部50は、例えば、C=0の場合にPのラベルの値が得られる確度と、C=1の場合にPのラベルの値が得られる確度との差に基づいて、Pのラベルの値に対する属性値Cの寄与の度合を判定してもよい。例えば、C=0の場合にPの満たしそうな(可能性のある)ルール数は0、C=1の場合にPの満たしそうな(可能性のある)ルール数は1の場合を第1のケースとする。また、C=0の場合にPの満たしそうな(可能性のある)ルール数は0、C=1の場合にPの満たしそうな(可能性のある)ルール数は2の場合を第2のケースとする。第1のケースと第2のケースを比較すると、C=0の場合に対して、C=1の場合にPの満たしそうな(可能性のある)ルール数が、第1のケースでは1増加し、第2のケースでは2増加する。この場合、予測部50は、第2のケースにおけるC=1の属性値が、Pのラベルの値に対して第1のケースにおけるC=1の属性値よりも大きく寄与すると判定することとしてもよい。あるいは、予測部50は、複数の属性値の中で、属性値が0の場合と1の場合でのPの満たしそうな(可能性のある)ルール数の差が大きい属性値ほどPのラベルの値に対する寄与が大きいと判定してもよい。
【0080】
図14-1~
図14-3は、所定のラベルの値が得られる確度の算出例を説明する説明図である。
図14-1~
図14-3の例では、
図12-1~
図12-3に例示したものよりも変数を増やしたケースを例示している。
【0081】
具体的には、A=1∧C=0∧D=1→N、A=1∧C=0∧E=1→P、B=0∧D=0→N…などの仮説集合データ23より、A、B、C、D、Eの属性値を枝とする木構造データ23aが得られているものとする。また、入力データ22には、A=1、B=0とする既知のアクション(説明変数の一部)と、目標とするラベル(P)とが含まれているものとする。よって、予測部50は、木構造データ23aにおける木構造において、A=1、B=0で枝刈りを行うことで、A、Bの枝については探索済(確定済)として扱うものとする。
【0082】
図14-2に示すように、予測部50は、未知の属性値Cについて、C=0に確定した場合の木構造データ23aにおける木構造のパスをたどることで、PまたはNのラベルの値が得られる確度を算出する。
【0083】
例えば、ラベルPについては、A=1→C=0→E=1のパス(ルール)がC=0の場合に成り立つ可能性のあるものとして見つかる。また、ラベルNについては、A=1→C=0→E=0、B=0→D=0のパス(ルール)がC=0の場合に成り立つ可能性のあるものとして見つかる。
【0084】
また、
図14-3に示すように、予測部50は、未知の属性値Cについて、C=1に確定した場合の木構造データ23aにおける木構造のパスをたどることで、PまたはNのラベルの値が得られる確度を算出する。
【0085】
例えば、ラベルPについては、C=1の場合に成り立つ(可能性のある)ものは0となる。また、ラベルNについては、A=1→C=1→D=1、B=0→D=0のパス(ルール)がC=1の場合に成り立つ可能性のあるものとして見つかる。
【0086】
したがって、予測部50は、C=0の場合と、C=1の場合とを比較する(例えばPとする確度を比較する)ことで、よりPとする確度が高くなるC=0を予測結果として得る。
【0087】
図2に戻り、出力部60は、記憶部20より結果データ25を読み出し、上記の処理により予測部50が予測した予測結果をディスプレイやファイルなどに出力する(S24)。すなわち、出力部60は、既知のアクションを行ったうえで目標とするラベルとなるような未知の属性(説明変数)におけるアクション(属性値)を出力する。
【0088】
図15は、予測結果の出力を説明する説明図である。
図15に示すように、情報処理装置1には、途中までのデータ(例えば製造工程の途中までに得られた既知の属性値)、満たしてほしいラベル(良品)、スコア計算に使う関数などを含む入力データ22が入力される。
【0089】
情報処理装置1の予測部50は、例えば以後の製造工程における未知のアクションについて、途中までのデータが示す既知のアクションを行ったうえで満たしてほしいラベルとなるような最適なアクション(属性値)を予測する。次いで、出力部60は、予測した属性値に応じた最適なアクションを結果データ25として出力する。これにより、ユーザは、例えば以後の製造工程において、満たしてほしいラベル(良品)となるアクションを容易に確認することができる。
【0090】
以上のように、情報処理装置1は、入力部10と、予測部50とを有する。入力部10は、予測対象の入力データ22を受け付ける。予測部50は、それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報(仮説)を含む仮説集合データ23に基づいて、複数の属性についての所定の順序条件に従って複数の仮説を集約したデータであって、属性値を枝とする木構造データ23aを生成する。また、予測部50は、入力データ22に基づき、木構造データ23aにおいて複数の属性のうちの所定の属性の属性値を所定の値に確定した場合に、判定結果として所定のラベルの値が得られる確度に基づいて、所定の属性が所定の値であることが所定のラベルとなることに対する寄与の度合を判定する。
【0091】
このように、情報処理装置1では、複数の属性についての所定の順序条件に従って属性値を枝とする木構造データ23aを生成し、生成した木構造データ23aを用いて所定の属性の値を求めるようにしている。このため、情報処理装置1では、複数の分類ルールそれぞれに基づくアクション(属性)をすべて(総当たりで)試行することなく、木構造に沿ってアクションを試行して予測を効率的に行うことができる。
【0092】
また、予測部50は、入力データ22に含まれる既知の属性値を木構造データ23aに適用して枝刈りを行う。そして、予測部50は、複数の属性のうちの属性値が未知の属性について、未知の属性の属性値を所定の値に確定した場合の判定結果が入力データ22に含まれるラベルとなることに対する寄与の度合を判定する。これにより、情報処理装置1では、入力データ22に含まれる既知の属性値(説明変数の一部)と、ラベル(目的変数)とをもとに、未知の属性(残りの説明変数)の予測を効率的に行うことができる。
【0093】
また、予測部50は、所定の属性の属性値を第1の値(例えばC=0)に確定した場合の判定結果が所定のラベル(例えばP)となることに対する寄与の度合を求める。また、予測部50は、所定の属性の属性値を第2の値(例えばC=1)に確定した場合の判定結果が所定のラベル(例えばP)となることに対する寄与の度合を求める。次いで、予測部50は、所定の属性の属性値を第1の値とした場合の寄与の度合と、所定の属性の属性値を第2の値とした場合の寄与の度合とを比較して、所定の属性を第1の値および第2の値のいずれにするかを判定する。これにより、情報処理装置1では、例えば寄与の度合がより高くなる方の属性値を予測することができる。
【0094】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0095】
情報処理装置1で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0096】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータ(ハードウエア)の一例を説明する。
図16は、実施形態にかかる情報処理装置1のハードウエア構成例を説明する説明図である。
【0097】
図16に示すように、情報処理装置1は、各種演算処理を実行するCPU101と、データ入力を受け付ける入力装置102と、モニタ103と、スピーカ104とを有する。また、情報処理装置1は、記憶媒体からプログラム等を読み取る媒体読取装置105と、各種装置と接続するためのインタフェース装置106と、有線または無線により外部機器と通信接続するための通信装置107とを有する。また、情報処理装置1は、各種情報を一時記憶するRAM108と、ハードディスク装置109とを有する。また、情報処理装置1内の各部(101~109)は、バス110に接続される。
【0098】
ハードディスク装置109には、上記の実施形態で説明した各種の処理を実行するためのプログラム111が記憶される。また、ハードディスク装置109には、プログラム111が参照する各種データ112(例えば訓練データ21、入力データ22、仮説集合データ23、重みデータ24および結果データ25)が記憶される。入力装置102は、例えば、情報処理装置1の操作者から操作情報の入力を受け付ける。モニタ103は、例えば、操作者が操作する各種画面を表示する。インタフェース装置106は、例えば印刷装置等が接続される。通信装置107は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0099】
CPU101は、ハードディスク装置109に記憶されたプログラム111を読み出して、RAM108に展開して実行することで、入力部10、仮説生成部30、学習部40、予測部50および出力部60に関する各種の処理を行う。なお、プログラム111は、ハードディスク装置109に記憶されていなくてもよい。例えば、情報処理装置1が読み取り可能な記憶媒体に記憶されたプログラム111を、情報処理装置1が読み出して実行するようにしてもよい。情報処理装置1が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム111を記憶させておき、情報処理装置1がこれらからプログラムを読み出して実行するようにしてもよい。
【0100】
以上の実施形態に関し、さらに以下の付記を開示する。
【0101】
(付記1)予測対象の入力データを受け付け、
それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、前記複数の属性についての所定の順序条件に従って前記複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成し、
前記入力データに基づき、前記木構造データにおいて前記複数の属性のうちの所定の属性の属性値を所定の値に確定した場合に、判定結果として所定のラベルの値が得られる確度に基づいて、前記所定の属性の前記所定の値の、前記判定結果が前記所定のラベルとなることに対する寄与の度合を判定する、
処理をコンピュータに実行させることを特徴とする予測プログラム。
【0102】
(付記2)前記判定する処理は、前記入力データに含まれる既知の属性値を前記木構造データに適用して枝刈りを行った上で、前記複数の属性のうちの属性値が未知の属性について、当該未知の属性の属性値を所定の値に確定した場合の前記判定結果が前記入力データに含まれるラベルとなることに対する寄与の度合を判定する、
ことを特徴とする付記1に記載の予測プログラム。
【0103】
(付記3)前記判定する処理は、前記所定の属性の属性値を第1の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合と、前記所定の属性の属性値を第2の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合とを比較して、前記所定の属性を前記第1の値および前記第2の値のいずれにするかを判定する、
ことを特徴とする付記1または2に記載の予測プログラム。
【0104】
(付記4)予測対象の入力データを受け付け、
それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、前記複数の属性についての所定の順序条件に従って前記複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成し、
前記入力データに基づき、前記木構造データにおいて前記複数の属性のうちの所定の属性の属性値を所定の値に確定した場合に、判定結果として所定のラベルの値が得られる確度に基づいて、前記所定の属性の前記所定の値の、前記判定結果が前記所定のラベルとなることに対する寄与の度合を判定する、
処理をコンピュータが実行することを特徴とする予測方法。
【0105】
(付記5)前記判定する処理は、前記入力データに含まれる既知の属性値を前記木構造データに適用して枝刈りを行った上で、前記複数の属性のうちの属性値が未知の属性について、当該未知の属性の属性値を所定の値に確定した場合の前記判定結果が前記入力データに含まれるラベルとなることに対する寄与の度合を判定する、
ことを特徴とする付記4に記載の予測方法。
【0106】
(付記6)前記判定する処理は、前記所定の属性の属性値を第1の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合と、前記所定の属性の属性値を第2の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合とを比較して、前記所定の属性を前記第1の値および前記第2の値のいずれにするかを判定する、
ことを特徴とする付記4または5に記載の予測方法。
【0107】
(付記7)予測対象の入力データを受け付ける入力部と、
それぞれが複数の属性の属性値の組合せとラベルとの対応付けにより示される複数のルール情報に基づいて、前記複数の属性についての所定の順序条件に従って前記複数のルール情報を集約したデータであって、属性値を枝とする木構造データを生成し、前記入力データに基づき、前記木構造データにおいて前記複数の属性のうちの所定の属性の属性値を所定の値に確定した場合に、判定結果として所定のラベルの値が得られる確度に基づいて、前記所定の属性の前記所定の値の、前記判定結果が前記所定のラベルとなることに対する寄与の度合を判定する予測部と、
を有することを特徴とする予測装置。
【0108】
(付記8)前記予測部は、前記入力データに含まれる既知の属性値を前記木構造データに適用して枝刈りを行った上で、前記複数の属性のうちの属性値が未知の属性について、当該未知の属性の属性値を所定の値に確定した場合の前記判定結果が前記入力データに含まれるラベルとなることに対する寄与の度合を判定する、
ことを特徴とする付記7に記載の予測装置。
【0109】
(付記9)前記予測部は、前記所定の属性の属性値を第1の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合と、前記所定の属性の属性値を第2の値に確定した場合の前記判定結果が前記所定のラベルとなることに対する寄与の度合とを比較して、前記所定の属性を前記第1の値および前記第2の値のいずれにするかを判定する、
ことを特徴とする付記7または8に記載の予測装置。
【符号の説明】
【0110】
1…情報処理装置
10…入力部
20…記憶部
21…訓練データ
22…入力データ
23…仮説集合データ
23a…木構造データ
24…重みデータ
25…結果データ
30…仮説生成部
40…学習部
50…予測部
60…出力部
71、72…ケース
101…CPU
102…入力装置
103…モニタ
104…スピーカ
105…媒体読取装置
106…インタフェース装置
107…通信装置
108…RAM
109…ハードディスク装置
110…バス
111…プログラム
112…各種データ
C01~C09…組み合わせ
H1~H11…仮説