(57)【要約】【課題】  所望の出力を得るための入力条件を効率的に算出する。【解決手段】  観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録し、前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成し、前記未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する。【選択図】  図１
2005242979.tif 000002
【特許請求の範囲】
【請求項１】
入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算装置であって：
前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録する時系列データ記録部と；
前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成する決定木生成部と；
前記未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する条件取得部と；
を備えた逆モデル計算装置。
【請求項２】
前記観測対象システムは、前記入力される時系列の入力値に対して、複数項目の前記時系列の出力値を出力し、前記時系列データ記録部は、前記時系列の入力値と、前記複数項目の時系列の出力値を前記時系列データとして記録し、
前記決定木生成部は、前記時系列データを用いて、前記出力値の項目ごとに前記項目を各々被説明変数とする前記決定木を生成し、
前記項目ごとに生成された前記決定木を合成して、各前記決定木の被説明変数の集合を１つの被説明変数とする合成決定木を生成する決定木合成部をさらに備え、
前記条件取得部は、未来時刻における複数項目の出力値を被説明変数の値として有する葉ノードを前記合成決定木から検出し、前記合成決定木の根ノードから前記検出された葉ノードへ至るパスに対応付けられた規則に含まれる説明変数の条件を、前記複数項目の出力値を得るための条件として取得する、
ことを特徴とする請求項１に記載の逆モデル計算装置。
【請求項３】
前記決定木合成部は：
各前記決定木に対して説明変数の値を入力して、各前記決定木から被説明変数の値を得ることを複数回行う第１処理部と；
各回において各前記決定木から得られた前記被説明変数の値の集合を１つの項目の値とみなし、各前記決定木に入力された説明変数の値と、各前記決定木から得られた被説明変数の値とを用いて、前記項目を被説明変数とする決定木を生成する第２処理部と；
を含むことを特徴とする請求項２に記載の逆モデル計算装置。
【請求項４】
前記決定木合成部は：
各前記決定木から根ノードから葉ノードへ至るパスを取得し、各前記決定木から取得されたパスを異なる決定木間で組み合わせたパス集合を複数生成し、前記パス集合の複数の中で最も多く含まれる、葉ノード以外のノードを、前記合成決定木の根ノードとして決定する根ノード決定部と；
前記決定された根ノードを含む前記パス集合に基づき、この根ノードが取り得る値を特定し、特定された値を有する枝をこの根ノードに付加する根ノード値決定部と；
前記根ノードに付加された枝を選択し、前記根ノード及び選択された枝を有する前記パス集合を、前記決定された根ノードを含むパス集合から検出するパス集合検出部と； 
検出された前記パス集合の中で、前記根ノード以外で最も多く含まれる葉ノード以外のノードを決定し、決定したノードを選択された枝に付加するノード決定部と；
前記ノード決定部で決定されたノードを含む前記検出されたパス集合を用いて、このノードが取り得る値を特定し、特定された値を有する枝をこのノードに付加するノード値決定部と；を備え、
前記パス集合検出部は、前記ノード値決定部によって付加された枝を選択し、前記根ノードから、選択された枝までのパスに含まれるノード及び枝を有する前記パス集合を検出し、
検出された前記パス集合の数が２以上である場合は、前記ノード決定部は、前記根ノードから選択された枝までのパスに含まれるノード以外で最も多く含まれる葉ノード以外のノードを決定し、決定したノードを選択された枝に付加し、前記ノード値決定部は、決定されたノードを含む前記検出されたパス集合を用いてこのノードが取り得る値を特定し、特定された値を有する枝をこのノードに付加し、前記パス集合検出部は、付加された枝を選択し、前記根ノードから、選択された枝までのパスに含まれるノード及び枝を有する前記パス集合を検出し、
検出された前記パス集合の数が２未満である場合は、前記ノード決定部は、検出された前記パス集合に含まれる葉ノードの値の集合を有するノードを、選択された枝に前記合成決定木の葉ノードとして付加し、前記パス集合検出部は、前記葉ノードが付されていない枝が存在する場合は、前記生成途中の決定木において葉ノードの付されていない枝を選択し、前記根ノードから、選択された枝までのパスに含まれるノード及び枝を有する前記パス集合を検出する、
ことを特徴とする請求項２に記載の逆モデル計算装置。
【請求項５】
前記決定木合成部は：
各前記決定木における根ノードの集合としての合成ノードを、前記合成決定木の根ノードとして生成する根ノード生成部と；
各前記決定木における根ノードが取り得る値を各々対応する前記決定木から求め、求めた値を異なる決定木間で組み合わせたノード値集合を生成し、前記ノード値集合を有する枝を前記生成された根ノードに付加する根ノード値生成部と；
付加された枝を選択し、選択された枝に対応する各前記決定木の枝に続くノードに葉ノード以外のノードが含まれる場合は、選択された枝に対応する各前記決定木の枝に続く葉ノード以外のノードの集合を合成ノードとして生成し、この合成ノードを選択された枝に付加するノード生成部と；
前記ノード生成部によって生成された合成ノードを構成する各ノードが取り得る値を各々対応する前記決定木から求め、求めた値を異なる決定木間で組み合わせたノード値集合を生成し、ノード値集合を有する枝を前記合成ノードに付加するノード値生成部と；
付加された枝を選択し、選択された枝に対応する各前記決定木の枝に続くノードに葉ノード以外のノードが含まれない場合は、前記根ノード生成部によって生成された根ノードから、選択された枝までのパスに対応する各前記決定木におけるパスを特定し、各パスにおける葉ノードの値の集合を含むノードを、選択された枝に、前記合成決定木の葉ノードとして付加する葉ノード生成部と；
を含むことを特徴とする請求項２に記載の逆モデル計算装置。
【請求項６】
前記決定木合成部は、前記生成された合成決定木から根ノードから葉ノードへ至るパスを選択し、前記選択されたパスに対応する各前記決定木のパスを検出し、前記検出されたパスに対応付けられた規則が成立する確率を各々算出する算出部と；
各前記規則の成立確率に基づいて、前記合成決定木において選択されたパスに対応付けられた規則が成立する確率を推定する推定部と；
前記推定された確率が所定の基準を満たさない場合は、前記選択されたパスに対応付けられた規則を前記合成決定木から削除する削除部と；
をさらに含むことを特徴とする請求項２に記載の逆モデル計算装置。
【請求項７】
前記条件取得部によって取得された条件が未来時刻における入力条件である場合は、前記入力条件に基づき前記観測対象システムに入力する値を生成する入力系列生成部をさらに備えたことを特徴とする請求項１に記載の逆モデル計算装置。
【請求項８】
入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算装置であって：
前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録する時系列データ記録部と；
前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成する決定木生成部と；
前記未来時刻における出力値が初期条件として入力され、入力された出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する条件取得部と；
前記取得された条件が、過去の時刻における条件であるか、あるいは、未来の時刻における条件であるかを判定し、
過去の時刻における条件である場合は、前記時系列データと前記取得された条件とを用いて、前記取得された条件の真偽を判定し、
未来の時刻における条件である場合は、前記取得された条件が、入力条件か、あるいは出力条件かを判定し、
入力条件である場合は、前記取得された条件を、前記出力値を得るための必要条件として出力し、
出力条件である場合は、前記取得された条件を、前記未来時刻における出力値として前記条件取得部に出力する、
条件判定部と；
を備えた逆モデル計算装置。
【請求項９】
前記条件判定部は、取得された前記条件の真偽の判定の結果、偽であると判定を下した場合は、前記入力された初期条件における未来時刻を増加し、増加された未来時刻における出力値を前記条件取得部に新たな初期条件として入力することを特徴とする請求項８に記載の逆モデル計算装置。
【請求項１０】
入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算装置であって：
前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録する時系列データ記録部と；
前記時系列データを用いて、未来時刻における出力値を算出するための、根ノードから葉ノードへ至るパスが説明変数の条件と被説明変数の値とを含む規則に対応づけられる決定木を生成する決定木生成部と；
前記未来時刻における出力値を被説明変数の値として有する規則を前記決定木から検出する第１の規則検出部と；
前記検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データとマッチする場合は、前記検出された規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出する第１の条件算出部と；
規則が入力され、前記入力された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木から検出する第２の規則検出部と；
前記第１の規則検出部によって検出された規則が前記時系列データとマッチしない場合は、前記第１の規則検出部によって検出された規則を前記第２の規則検出部に入力する第１の入力部と；
前記第２の規則検出部によって検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データにマッチしない場合は、前記第２の規則検出部によって検出された規則を前記第２の規則検出部に入力する第２の入力部と；
前記第２の規則検索部によって検出された規則が前記時系列データとマッチする場合、前記第１及び第２の規則検出部によって検出された全ての規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出する第２の条件算出部と；
を備えた逆モデル計算装置。
【請求項１１】
前記第１又は第２の規則検出部によって検出された前記規則に含まれるある時刻の出力条件が、前記時刻以前の他の条件が成立した場合に成立する確率を求める確率算出部と；
前記確率が所定の閾値を満たす前記ある時刻を決定する時刻決定部と；
前記決定された時刻以前の時刻帯を、前記規則における一部の時刻帯として決定する時刻帯決定部と；
をさらに備えたことを特徴とする請求項１０に記載の逆モデル計算装置。
【請求項１２】
前記決定木に含まれる各規則について、ある時刻の出力条件が、前記時刻以前の他の条件が成立した場合に成立する確率を求め、前記確率の平均を求める平均算出部と；
前記確率の平均が所定の閾値を満たす前記ある時刻を決定する時刻決定部と；
前記決定された時刻以前の時刻帯を、前記各規則に共通に適用する前記一部の時刻帯として決定する共通時刻帯決定部と；
をさらに備えたことを特徴とする請求項１０に記載の逆モデル計算装置。
【請求項１３】
入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算方法であって：
前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録し；
前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成し；
前記未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する；
逆モデル計算方法。
【請求項１４】
入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算方法であって：
前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを記録し；
前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成し；
前記未来時刻における出力値を初期条件として入力し：
入力された出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得し；
前記取得された条件が、過去の時刻における条件であるか、あるいは、未来の時刻における条件であるかを判定し；
過去の時刻における条件である場合は、前記時系列データと前記取得された条件とを用いて、前記取得された条件の真偽を判定し；
未来の時刻における条件である場合は、前記取得された条件が入力条件であるか、あるいは、出力条件であるかを判定し；
入力条件である場合は、前記取得された条件を前記出力値を得るための必要条件として出力し；
出力条件である場合は、前記取得された条件を、前記未来時刻における出力値として、この未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記根ノードから前記検出された葉ノードへ至るパスに対応付けられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する；
逆モデル計算方法。
【請求項１５】
前記取得された条件が偽である場合は、前記入力された初期条件における未来時刻を増加し、増加された未来時刻における出力値を新たな初期条件として入力することを特徴とする請求項１４に記載の逆モデル計算方法。
【請求項１６】
入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算方法であって：
前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録し；
前記時系列データを用いて、未来時刻における出力値を算出するための、根ノードから葉ノードへ至るパスが説明変数の条件と被説明変数の値とを含む規則に対応づけられる決定木を生成し；
前記未来時刻における出力値を被説明変数の値として有する規則を前記決定木から検出し；
前記検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データとマッチする場合は、前記検出された規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出し；
マッチしない場合は、前記検出された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木から新たに検出し；
前記新たに検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データにマッチしない場合は、前記新たに検出された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木からさらに検出し；
前記時系列データと一部の時刻帯についての説明変数の条件がマッチする規則が検出されるまで、最後に検出された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木から検出することを繰り返し；
前記時系列データと一部の時刻帯についての説明変数の条件がマッチする規則が検出された場合、前記決定木から検出された全ての規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出する；
逆モデル計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、逆モデル計算装置及び逆モデル計算方法に関する。
【背景技術】
【０００２】
対象システムの出力を望ましいものとする入力を求めること（逆方向計算）は、制御などの分野で求められている課題の一つである。対象システムの物理的な特性が既に数式によって得られている場合には、この数式を解くことによって入力を求めることができる。
【０００３】
しかし、多くの場合、事前には数式が得られていないことが多い。このように事前に数式が得られていない場合、対象システムから観測されたデータを用いて、対象システムの特性を表す数理モデルを構築するのが一般的である。
【０００４】
ここで、通常、ある入力を与えた場合にどのような出力が得られるかを求める順方向のモデル（順モデル）は、容易に作ることができるが、ある出力を得るためにはどのような入力が必要かを求める逆方向のモデル（逆モデル）は作ることが難しい。その理由は、同じ出力を得るための入力が複数あることに起因している。
【０００５】
そこで、まず、順モデルを構築し、その順モデルを利用して、出力から入力を推定することがよく行われる。従来、このような場合に、線形モデルの一般化逆行列を用いる方法、ニューラルネットによる逆方向計算を行う方法、シミュレーションによる求解などが用いられていた。
【０００６】
しかし、線形モデルの一般化逆行列を用いる方法は、対象システムの非線形性が強い場合や多入力１出力のような場合に計算精度が悪くなる。
【０００７】
一方、ニューラルネットによる逆方向計算は、ニューラルネットの順方向モデルを構築する際に用いた入力変数すべてが算出対象になるため、不要な入力量まで同定することになり、最適な入力を求めるのが難しい。また、このニューラルネットによる逆方向計算では、与えられた出力が何時刻後に得られるかを計算することが困難である。
【０００８】
また、シミュレーションによる求解は、順モデルに様々な入力を与えて、目標となる出力が得られるかどうかを試行錯誤的に求める方法であるので、多くの計算量を要し、従って、計算時間がかかる。
【非特許文献１】J.Ross Quinlan,C4.5:Programs for Machine Learning,Morgan Kaufmann Publishers, Inc.,1993
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上記問題点に鑑みてなされたものであり、その目的は、所望の出力を得るための入力条件を効率的に算出できる逆モデル計算装置及び逆モデル計算方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一態様に従った逆モデル計算装置は、入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算装置であって：前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録する時系列データ記録部と；前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成する決定木生成部と；前記未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する条件取得部と；を備える。
【００１１】
本発明の一態様に従った逆モデル計算装置は、入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算装置であって：前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録する時系列データ記録部と；前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成する決定木生成部と；前記未来時刻における出力値が初期条件として入力され、入力された出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する条件取得部と；前記取得された条件が、過去の時刻における条件であるか、あるいは、未来の時刻における条件であるかを判定し、過去の時刻における条件である場合は、前記時系列データと前記取得された条件とを用いて、前記取得された条件の真偽を判定し、未来の時刻における条件である場合は、前記取得された条件が、入力条件か、あるいは出力条件かを判定し、入力条件である場合は、前記取得された条件を、前記出力値を得るための必要条件として出力し、出力条件である場合は、前記取得された条件を、前記未来時刻における出力値として前記条件取得部に出力する、条件判定部と；を備える。
【００１２】
本発明の一態様に従った逆モデル計算装置は、入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算装置であって：前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録する時系列データ記録部と；前記時系列データを用いて、未来時刻における出力値を算出するための、根ノードから葉ノードへ至るパスが説明変数の条件と被説明変数の値とを含む規則に対応づけられる決定木を生成する決定木生成部と；前記未来時刻における出力値を被説明変数の値として有する規則を前記決定木から検出する第１の規則検出部と；前記検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データとマッチする場合は、前記検出された規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出する第１の条件算出部と；規則が入力され、前記入力された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木から検出する第２の規則検出部と；前記第１の規則検出部によって検出された規則が前記時系列データとマッチしない場合は、前記第１の規則検出部によって検出された規則を前記第２の規則検出部に入力する第１の入力部と；前記第２の規則検出部によって検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データにマッチしない場合は、前記第２の規則検出部によって検出された規則を前記第２の規則検出部に入力する第２の入力部と；前記第２の規則検索部によって検出された規則が前記時系列データとマッチする場合、前記第１及び第２の規則検出部によって検出された全ての規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出する第２の条件算出部と；を備える。
【００１３】
本発明の一態様に従った逆モデル計算方法は、入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算方法であって：前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録し；  前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成し；  前記未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する。
【００１４】
本発明の一態様に従った逆モデル計算方法は、入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算方法であって：前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを記録し；前記時系列データを用いて、未来時刻における出力値を算出するための決定木を生成し；前記未来時刻における出力値を初期条件として入力し：入力された出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記決定木の根ノードから前記検出された葉ノードへ至るパスに対応づけられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得し；前記取得された条件が、過去の時刻における条件であるか、あるいは、未来の時刻における条件であるかを判定し；過去の時刻における条件である場合は、前記時系列データと前記取得された条件とを用いて、前記取得された条件の真偽を判定し；未来の時刻における条件である場合は、前記取得された条件が入力条件であるか、あるいは、出力条件であるかを判定し；入力条件である場合は、前記取得された条件を前記出力値を得るための必要条件として出力し；出力条件である場合は、前記取得された条件を、前記未来時刻における出力値として、この未来時刻における出力値を被説明変数の値として有する葉ノードを前記決定木から検出し、前記根ノードから前記検出された葉ノードへ至るパスに対応付けられた規則に含まれる説明変数の条件を、前記出力値を得るための条件として取得する。
【００１５】
本発明の一態様に従った逆モデル計算方法は、入力された値に応じてある値を出力する観測対象システムに関して、前記観測対象システムがある出力値を出力する条件を求めるための逆モデル計算方法であって：前記観測対象システムに入力された時系列の入力値と、前記観測対象システムから出力された時系列の出力値とを時系列データとして記録し；  前記時系列データを用いて、未来時刻における出力値を算出するための、根ノードから葉ノードへ至るパスが説明変数の条件と被説明変数の値とを含む規則に対応づけられる決定木を生成し；前記未来時刻における出力値を被説明変数の値として有する規則を前記決定木から検出し；前記検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データとマッチする場合は、前記検出された規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出し；マッチしない場合は、前記検出された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木から新たに検出し；前記新たに検出された規則における一部の時刻帯についての説明変数の条件が前記時系列データにマッチしない場合は、前記新たに検出された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木からさらに検出し；前記時系列データと一部の時刻帯についての説明変数の条件がマッチする規則が検出されるまで、最後に検出された規則における一部の時刻帯についての説明変数の条件がマッチする規則を前記決定木から検出することを繰り返し；前記時系列データと一部の時刻帯についての説明変数の条件がマッチする規則が検出された場合、前記決定木から検出された全ての規則及び前記時系列データを用いて、前記未来時刻における出力値を得るための条件を算出する。
【発明の効果】
【００１６】
本発明により、所望の出力を得るための入力条件を効率的に算出できる
【発明を実施するための最良の形態】
【００１７】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に従った逆モデル計算装置８の構成を示すブロック図である。
【００１８】
時系列データ記録部１は、観測対象システムに入力された時系列の入力値である入力系列と、この観測対象システムから出力された時系列の出力値である出力系列とを、時系列データ（観測データ）として記録する。
【００１９】
図２は、観測対象システム４に変数Ｘの入力系列が入力され、変数Ｙの出力系列が出力される様子を示す図である。
【００２０】
図３は、観測対象システム４に入力された変数Ｘ１、Ｘ２の入力系列と、観測対象システム４から出力された変数Ｙの出力系列とからなる時系列データを表形式にて示した図である。図３に示すように、この観測対象システム４では、２次元の入力系列から、１次元の出力系列が出力される。
【００２１】
図１の決定木生成部２は、時系列データ記録部１に記憶された時系列データを用いて、入力系列から出力系列を推測する決定木を作成する。
【００２２】
図４は、図３の時系列データに基づき作成された決定木を示す図である。
【００２３】
この決定木では、時刻ｔまでの変数Ｘ１の入力系列から時刻ｔにおける出力Ｙ（ｔ）を予測できる。この決定木には、２つの変数Ｘ１，Ｘ２の入力系列のうち、変数Ｘ１の入力系列のみが現れ、変数Ｘ２の入力系列は現れない。つまり、この観測対象システム４では、変数Ｘ１の入力系列のみから、出力Ｙを予測できる。このように、決定木によりモデルを作成することで、予測に用いる入力変数を減らす効果がある。決定木は複数の規則を有する。各規則は、決定木の根ノードから葉ノードへのパスに対応する。つまり決定木は、葉ノードの数分だけの規則を含む。
【００２４】
ここで、決定木の具体的は作成方法としては、既知の方法を用いることができる。以下、決定木の作成方法について、簡単に説明する。
【００２５】
図５は、変数Ｘ１，Ｘ２の入力系列と、変数Ｙの出力系列とからなる時系列データを表形式にて示す図である。
【００２６】
まず、この時系列データに既知の方法を適用してこの時系列データを並び替える。
【００２７】
図６は、図５の変数Ｙを被説明変数、変数Ｘ１、Ｘ２を説明変数として図５の時系列データを並べ替えたデータを示す表である。
【００２８】
次に、図６のデータに対し、非特許文献１（J.Ross Quinlan,C4.5:Programs for Machine Learning,Morgan Kaufmann Publishers, Inc.,1993）に記載された方法を適用する。これにより、入力系列から出力を予測するための決定木を作成できる。
【００２９】
図１に戻り、条件検索部３は、決定木生成部２によって作成された決定木の葉ノードから根ノードへ向かって枝を辿ることで、与えられた未来時刻における出力値を得るために必要な条件を検索する。例えば、図４において、未来時刻の出力として出力Ｙ（１０）＝３が与えられた場合、条件検索部３は、この出力３に対応する葉ノードを決定木において特定し、この葉ノードから根ノードまで辿ることで、Ｘ１（１０）＞＝２、Ｘ１（８）＜１を検出する。つまり、出力３を葉ノードに持つ規則を特定し、この規則に含まれる条件を、出力３を得るために必要な条件として取得する。
【００３０】
次に、図１の逆モデル計算装置８による処理ステップについて説明する。
【００３１】
図７は、逆モデル計算装置８による処理ステップを示すフローチャートである。
【００３２】
まず、決定木生成部２は、時系列データ記録部１によって記録された時系列データを用いて、決定木を作成する（ステップＳ１）。
【００３３】
次に、図示しないデータ入力手段等を用いて、条件検索部３に対して、未来時刻における出力値（Ｙ（ｔ）＝Ｖ）（出力条件）を与える（ステップＳ２）。
【００３４】
条件検索部３は、この出力条件を目標条件として、サブルーチンＡを実行する（ステップＳ３）。
【００３５】
図８は、サブルーチンＡの処理ステップを示すフローチャートである。
【００３６】
まず、条件検索部３は、決定木において、目標値（＝Ｖ）と一致する葉ノードを検索する（ステップＳ１１）。
【００３７】
目標値に一致する葉ノードがない場合は（ステップＳ１２のＮＯ）、条件検索部３は、目標値を得るための条件を検索できない旨、つまり、目標値を得ることができない旨（ＦＡＬＳＥ）を出力する（ステップＳ１３）。
【００３８】
一方、目標値に一致する葉ノードがある場合は（ステップＳ１２のＹＥＳ）、条件検索部３は、検索された葉ノードから根ノードに向かって辿って、目標値を得るために必要な条件を特定し出力する（ステップＳ１４）。
【００３９】
ここで、具体例として、図４の決定木を用いて、時刻１００において目標値３を得るために必要な条件を検索する。
【００４０】
図４の決定木において、目標値＝３となる葉ノードを検索する。この結果、目標値＝３に合致する葉ノードが検索される（Ｙ（ｔ）＝３）（ステップＳ１１、ステップＳ１２のＹＥＳ）。ｔ＝１００として、この葉ノードを根ノード（Ｘ１（ｔ））に向かって辿り、Ｘ１（９８）＜１且つＸ１（１００）＞＝２の条件を得る（ステップＳ１４）。
【００４１】
次に、図１の逆モデル計算装置８を適用した逆モデル計算機システムの一例について説明する。
【００４２】
図２４は、逆モデル計算装置８を適用した逆モデル計算機システムの構成を示すブロックである。
【００４３】
入力系列生成部６は、観測対象システム４に与える変数Ｘの入力系列を所定のアルゴリズムで生成する。観測対象システム４は、変数Ｘの入力系列に基づき変数Ｙの出力系列を生成する。逆モデル計算装置８は、入力系列及び出力系列を観測対象システム４から取得する。逆モデル計算装置８は、前述の処理を実行して、与えられた未来時刻における出力値を得るための入力条件を算出し、算出した入力条件を、入力系列生成部６に出力する。入力系列生成部６は、入力された入力条件に従って、入力系列を生成する。
【００４４】
以上、図１の逆モデル計算装置８を組み込んだ逆モデル計算機システムについて説明したが、以降に説明する第２〜第５の実施の形態における逆モデル計算装置も、本実施の形態と同様にして図２４の逆モデル計算機システムに組み込み可能である。
【００４５】
以上のように、本実施の形態によれば、モデルとして決定木を生成し、この決定木を用いて、与えられた未来時刻の出力値を得るために必要な入力条件を算出するため、計算量を少なくでき、また、出力に影響しない入力変数の値の算出を排除できる。
【００４６】
また、本実施の形態によれば、モデルとして決定木を生成するため、観測対象システムの非線形性が強い場合であっても、モデルの精度を高くできる。
【００４７】
（第２の実施の形態）
第１の実施の形態は決定木を用いた逆方向計算の典型的な例を示したもので、検索され条件が実際に成立可能であるか否かは不明であった。本実施の形態では、検索された条件の成立可能性の判断も含めた逆方向計算について説明する。
【００４８】
図９は、本発明の第２の実施の形態に従った逆モデル計算装置の構成を示すブロック図である。
【００４９】
時系列データ記録部１、決定木生成部２、条件取得部３については、第１の実施の形態と同様であるので、詳細な説明を省略する。
【００５０】
条件判定部５は、条件取得部３によって検索された条件内に、出力条件が含まれる場合に、この出力条件を目標条件として、再度条件取得部３による検索を行う。条件判定部５は、与えられた出力値を得るための条件を全て入力条件として取得するまで、この処理を繰り返す。
【００５１】
以下、図９の逆モデル計算装置による処理ステップについて詳細に説明する。
【００５２】
図１０は、図９の逆モデル計算装置による処理ステップを示すフローチャートである。
【００５３】
まず、決定木生成部２は、時系列データ記録部１によって記録された時系列データを用いて、決定木を作成する（ステップＳ２１）。
【００５４】
次に、図示しないデータ入力手段等を用いて、条件判定部５に対して未来時刻における出力値を与える（目標条件を与える）（ステップＳ２２）。
【００５５】
次に、条件判定部５は、この目標条件を格納した目標リストを作成する（ステップＳ２３）。目標リストは、例えば、「Ｙ（１００）＝３、Ｙ（１０１）＝１、Ｙ（１０２）＝２、・・・」（時刻１００で３を出力、時刻１０１で１を出力、時刻１０２で２を出力・・・）といった形式を有する。一方、条件判定部５は、検索された入力条件を格納する入力系列リストを別途用意し、この入力系列リストを空にしておく（ステップＳ２３）。
【００５６】
この状態において、条件判定部５は、サブルーチンＢを実行する（ステップＳ２４）。
【００５７】
図１１は、サブルーチンＢの処理ステップを示すフローチャートである。
【００５８】
まず、条件判定部５は、目標リストが空であるかどうかを判断する（ステップＳ３１）。
【００５９】
条件判定部５は、目標リストが空でない場合は（ステップＳ３１のＮＯ）、目標リストから項目を１つ取り出す（ステップＳ３２）。例えば、上述の目標リスト「Ｙ（１００）＝３、Ｙ（１０１）＝１、Ｙ（１０２）＝２、・・・」から目標条件「Ｙ（１００）＝３」を取り出す。この場合、目標リストの項目は１つ減って、「Ｙ（１０１）＝１、Ｙ（１０２）＝２、・・・」となる。
【００６０】
条件判定部５は、取り出した項目が過去の条件であるか否かを判断する（ステップＳ３３）。仮に現在時刻が１０であれば、目標条件「Ｙ（１）＝２」は、過去の条件である。
【００６１】
条件判定部５は、取り出した項目が過去の条件である場合は（ステップＳ３３のＹＥＳ）、過去の時系列データを用いて、取り出した項目の真偽を判定する（ステップＳ３４）。即ち、取り出した項目が過去の時系列データに合致するか否かを判断する。
【００６２】
条件判定部５は、偽、つまり、取り出した項目が過去の時系列データに合致しない場合は（ステップＳ３４の偽）、与えられた出力値を得ることはできない旨（ＦＡＬＳＥ）を出力する。（ステップＳ３５）。
【００６３】
一方、条件判定部５は、真、つまり、取り出した項目が過去の時系列データに合致する場合は（ステップＳ３４の真）、ステップＳ３１に戻る。
【００６４】
上述のステップＳ３３において、取り出した項目が過去の条件でない、つまり未来の条件である場合は（ステップＳ３３のＮＯ）、条件判定部５は、その項目が入力条件及び出力条件のいずれであるかを判断する（ステップＳ３６）。
【００６５】
条件判定部５は、取り出した項目が出力条件である場合は（ステップＳ３６の出力条件）、その出力条件を目標条件として、図８に示すサブルーチンＡを条件取得部３に実行させる（ステップＳ３７）。即ち、条件判定部５は、その目標条件を達成するために必要な条件の検索を条件取得部３に依頼する。例えば、条件判定部５は、上述の目標リストから取り出した項目「Ｙ（１００）＝３」が未来の条件である場合は、「Ｙ（１００）＝３」を目標条件としてサブルーチンＡを条件取得部３に実行させる。条件判定部５は、条件取得部３から検索結果を受け取る。
【００６６】
条件判定部５は、条件取得部３から受け取った検索結果がＦＡＬＳＥである場合は（ステップＳ３８のＹＥＳ）、つまり、目標条件における目標値を有する葉ノードが決定木に存在しない場合は、与えられた未来時刻の出力値を得ることはできない旨（ＦＡＬＳＥ）を出力する（ステップＳ３５）。
【００６７】
一方、条件判定部５は、条件取得部３から受け取った検索結果がＦＡＬＳＥでない場合は（ステップＳ３８のＮＯ）、つまり、条件取得部３から検索結果として目標条件を達成するための条件（入力条件、あるいは、出力条件、あるいは、入力条件及び出力条件）を受け取った場合は、この条件を目標条件として目標リストに追加する（ステップＳ３９）。
【００６８】
上述のステップＳ３６において、取り出された項目が入力条件である場合は（ステップＳ３６の入力条件）、条件判定部５は、この入力条件を、入力系列リストに加える（ステップＳ４０）。入力系列リストは、例えば「Ｘ１（１００）＝２、Ｘ１（１０１）＝３、Ｘ２（１００）＝１・・・」といった形式を有する。
【００６９】
この後、条件判定部５は、ステップＳ３１に戻り、以上に説明した各処理を繰り返す。そして、条件判定部５は、目標リストが空になった場合は（ステップＳ３１のＹＥＳ）、入力系列リスト内に格納された入力条件を、与えられた未来時刻の出力値を得るための必要条件として出力する（ＴＵＲＥを出力する）（ステップＳ４１）。
【００７０】
以上のように、本実施の形態によれば、検出された条件が過去の条件である場合には過去の時系列データにこの条件を照合して真偽を判定すると共に、検出された条件が未来の出力条件である場合は、再帰的に検索を行うようにしたので、与えられた未来時刻における出力値の成立可能性を判断できると共に、可能である場合はその出力値を得るための条件を入力条件として取得できる。
【００７１】
（第３の実施の形態）
本実施の形態では、与えられた未来時刻の出力値を、最短で現在時刻の何時刻後に取得できるかについて説明する。
【００７２】
本実施の形態における逆モデル計算装置の構成は、第２の実施の形態において示した図９と基本的に同じである。但し、本実施の形態では、条件判定部５による処理が第２の実施の形態と異なる。
【００７３】
以下、本実施の形態における逆モデル計算装置について説明する。
【００７４】
図１２は、本発明の第３の実施の形態に従った逆モデル計算装置による処理ステップを示すフローチャートである。
【００７５】
まず、決定木生成部２は、時系列データ記録部１によって記録された時系列データを用いて、決定木を作成する（ステップＳ５１）。
【００７６】
次に、図示しないデータ入力手段等を用いて、条件判定部５に対して未来時刻における出力値Ｖを与える（目標条件を与える）（ステップＳ５２）。
【００７７】
次に、条件判定部５は、時刻ｔに初期値０を代入する（ステップＳ５３）。初期値は、上記時系列データにおいて、出力値が存在する最後の時刻（例えば時系列データにおいて時刻１〜８までの入力値及び出力値、及び時刻９の入力値のみが存在する場合、最後の時刻は８となる）を代入する。ここでは、説明を簡単にするため、初期値として０を代入する。
【００７８】
次に、条件判定部５は、時刻ｔにｔ＋１を代入する。即ち、時刻ｔを１増加する（ステップＳ５４）。この「１」は、例えば、観測対象システムに入力される入力系列の入力間隔時間である。
【００７９】
次に、条件判定部５は、時刻ｔが既定値よりも大きいか否かを判断する（ステップＳ５５）。
【００８０】
条件判定部５は、時刻ｔが既定値よりも大きい場合は（ステップＳ５５のＹＥＳ）、与えられた出力値Ｖを規定時間内に得ることはできない旨を出力する（ステップＳ５６）。
【００８１】
一方、条件判定部５は、時刻ｔが既定値以下である場合は（ステップＳ５５のＮＯ）、目標リスト及び入力系列リストを空にし（ステップＳ５７）、目標リストに目標条件“Ｙ（ｔ）＝Ｖ”（時刻ｔにおいてＶを出力）を加える。
【００８２】
条件判定部５は、目標リストに目標条件“Ｙ（ｔ）＝Ｖ”を加えたら、前述したサブルーチンＢ（図１１参照）を実行する（ステップＳ５９）。
【００８３】
条件判定部５は、サブルーチンＢの実行結果がＦＡＬＳＥであった場合（ステップＳ６０のＹＥＳ）、つまり、Ｙ（ｔ）＝Ｖを達成する入力条件を算出できなかった場合は、時刻ｔをさらに１増加して（ステップＳ５４）、上述の処理（ステップＳ５５〜Ｓ５９）を繰り返す。
【００８４】
一方、条件判定部５は、サブルーチンＢの実行結果がＦＡＬＳＥでなかった場合（ステップＳ６０のＮＯ）、つまり、Ｙ（ｔ）＝Ｖを達成する入力条件が算出された場合は、入力条件及び時刻ｔの値を出力する（ステップＳ６１）。
【００８５】
以上に説明した逆モデル計算装置による処理ステップを、具体例を用いてさらに説明する。
【００８６】
図１３は、図３の時系列データに後続する部分を示した表である。但し、変数Ｘ２については図示を省略してある。
【００８７】
時刻１６までの変数Ｘ１の入力値と変数Ｙの出力値、及び時刻１７における変数Ｘ１の入力値が得られている。
【００８８】
ここで、逆モデル計算装置が、次に出力値が３になるのは何時刻であるか（Ｙ（ｔ）＝３）を算出する例を説明する。
【００８９】
まず、決定木生成部２は、図３及び図１３の時系列データを用いて決定木を作成する（図４と同じものが作成される）（図１２のステップＳ５１）。次に、図示しない入力手段を介して、条件判定部５に目標条件（Ｙ（ｔ）＝３）が入力される（ステップＳ５２）。
【００９０】
条件判定部５は、時刻ｔに１６を代入する（ステップＳ５３）。つまり、出力値が存在する最後の時刻をｔに代入する。
【００９１】
条件判定部５は、時刻ｔを１増加して１７とする（ステップＳ５４）。
【００９２】
条件判定部５は、時刻ｔが既定値より大きいか否かを判断する（ステップＳ５５）。ここでは条件判定部５は、ｔは既定値以下と判断し（ステップＳ５５のＮＯ）、目標リスト及び入力系列リストを空にする（ステップＳ５７）。
【００９３】
条件判定部５は、目標リストに目標条件“Ｙ（１７）＝３”を加え（ステップＳ５８）、図１１のサブルーチンＢを実行する（ステップＳ５９）。実行結果はＦＡＬＳＥであると条件判定部５は判断する（ステップＳ６０のＹＥＳ）。
【００９４】
即ち、図４の決定木に示すように、Ｙ（１７）＝３を達成するためには、Ｘ１（１５）＜１、Ｘ１（１７）＞＝２を満たす必要がある（サブルーチンＢのステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３６、Ｓ３７、Ｓ３８のＮＯ、Ｓ３９）。しかし、図１３に示すように、時刻１５においてＸ１は２であるため、上述のＸ１（１５）＜１は満たさない（ステップＳ３９に続く、ステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３４の偽）。従って、条件判定部５は、時刻１７において、出力値Ｙ＝３を得ることはできないと判断する（ステップＳ３４に続くステップＳ３５）。
【００９５】
この結果、条件判定部５は、図１２に示すように、ステップＳ５４に戻り、ｔを１増やして１８とする。そして、ステップＳ５７、Ｓ５８を経て、再度、サブルーチンＢを実行する（ステップＳ５９）。ここでも、実行結果はＦＡＬＳＥであると条件判定部５は判断する（ステップＳ６０のＹＥＳ）。
【００９６】
即ち、ｔ＝１８の場合、図４の決定木に示すように、Ｙ（１８）＝３を達成するためには、Ｘ１（１６）＜１、Ｘ１（１８）＞＝２を満たす必要がある（サブルーチンＢのステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３６、Ｓ３７、Ｓ３８のＮＯ、Ｓ３９）。しかし、図１３に示すように、時刻１６においてＸ１は３であるため、Ｘ１（１６）＜１は満たさない（ステップＳ３９に続いて、ステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３４の偽）。従って、条件判定部５は、時刻１８において、出力値Ｙ＝３を得ることはできないと判断する（ステップＳ３４に続くステップＳ３５）。
【００９７】
この結果、条件判定部５は、図１２に示すように、ステップＳ５４に戻り、ｔを１増やして１９とする。そして、ステップＳ５７、Ｓ５８を経て、再度、サブルーチンＢを実行する（ステップＳ５９）。ここでも、実行結果はＦＡＬＳＥであると条件判定部５は判断する（ステップＳ６０のＹＥＳ）。
【００９８】
即ち、ｔ＝１９の場合、図４の決定木に示すように、Ｙ（１９）＝３を達成するためには、Ｘ１（１７）＜１、Ｘ１（１９）＞＝２を満たす必要がある（図１１のステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３６、Ｓ３７、Ｓ３８のＮＯ、Ｓ３９）。しかし、図１３に示すように、時刻１７においてＸ１は３であるため、Ｘ１（１７）＜１は満たさない（ステップＳ３９に続いて、ステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３４の偽）。従って、条件判定部５は、時刻１９において、出力値Ｙ＝３を得ることはできないと判断する（ステップＳ３４に続くステップＳ３５）。
【００９９】
この結果、条件判定部５は、図１２に示すように、ステップＳ５４に戻り、ｔを１増やして２０とする。そして、ステップＳ５７、Ｓ５８を経て、再度、サブルーチンＢを実行する（ステップＳ５９）。実行結果はＦＡＬＳＥでないと条件判定部５は判断する（ステップＳ６０のＮＯ）。
【０１００】
即ち、ｔ＝２０の場合、図４の決定木に示すように、Ｙ（２０）＝３を達成するためには、Ｘ１（１８）＜１、Ｘ１（２０）＞＝２を満たす必要がある（図１１のステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３６、Ｓ３７、Ｓ３８のＮＯ、Ｓ３９）。これら２つの入力条件はいずれも未来の条件である（ステップＳ３９に続くステップＳ３１、Ｓ３２、Ｓ３３のＮＯ）。従って、条件判定部５は、これら２つの入力条件を入力系列リストに加える（ステップＳ３３に続くステップＳ３６の入力条件、Ｓ４０）。条件判定部５は、入力系列リスト内の入力条件及びこのときの時刻ｔの値２０を出力する（ステップＳ４０に続くステップＳ３１の空、Ｓ４１、図１２のステップＳ６０のＮＯ、Ｓ６１）。
【０１０１】
以上のように、本実施の形態によれば、未来時刻ｔの値を順次増加させつつ、与えられた出力値を得るための入力条件を検索するため、現在時刻から最短で何時刻後に、与えられた出力値を取得できるかを算出できる。
【０１０２】
（第４の実施の形態）
本実施の形態では、決定木に含まれる複数の規則（根ノードから葉ノードへのパス）と時系列データとを用いて論理推論を行うことにより、与えられた未来時刻の出力値を得るための入力条件を算出する。
【０１０３】
本実施の形態における逆モデル計算装置の構成は、第２及び第３の実施の形態において図９に示したものと同じである。但し、本実施の形態では、条件取得部３及び条件判定部５による処理内容が、第２及び第３の実施の形態と異なる。
【０１０４】
以下、本実施の形態について詳しく説明する。
【０１０５】
図１４は、分析対象となる時系列データを示す図である。
【０１０６】
この時系列データを、時刻ｔにおけるＹを被説明変数、時刻ｔ−２〜ｔのＸと時刻ｔ−１、ｔ−２のＹとを説明変数として並び替える。
【０１０７】
図１５は、図１４の時系列データを並び替えたデータを示す表である。
【０１０８】
この表に既知の方法を適用して決定木を生成する。図１６は、図１５の表に基づき生成された決定木を示す。この決定木は、決定木生成部２で作成される。
【０１０９】
条件取得部３は、この決定木の根ノードから葉ノードへの枝を辿り、以下の１３個の規則（パス）を取得する。
(1) Y(T-1)≦4,Y(T-2)≦5,X(T)=0,X(T-1)=0→Y(T)=6
(2) Y(T-1)≦4,Y(T-2)≦5,X(T)=0,X(T-1)=1→Y(T)=5
(3) Y(T-1)≦4,Y(T-2)≦5,X(T)=1,X(T-1)=0→Y(T)=4
(4) Y(T-1)≦4,Y(T-2)≦5,X(T)=1,X(T-1)=1→Y(T)=6
(5) Y(T-1)≦4,Y(T-2)≧6,X(T)=0         →Y(T)=5
(6) Y(T-1)≦4,Y(T-2)≧6,X(T)=1,X(T-1)=0→Y(T)=5
(7) Y(T-1)≦4,Y(T-2)≧6,X(T)=1,X(T-1)=1→Y(T)=6
(8) Y(T-1)≧5,Y(T-2)≦5,X(T)=0,X(T-2)=0→Y(T)=4
(9) Y(T-1)≧5,Y(T-2)≦5,X(T)=0,X(T-2)=1→Y(T)=5
(10) Y(T-1)≧5,Y(T-2)≦5,X(T)=1         →Y(T)=4
(11) Y(T-1)≧5,Y(T-2)≧6,X(T)=0,X(T-1)=0→Y(T)=6
(12) Y(T-1)≧5,Y(T-2)≧6,X(T)=0,X(T-1)=1→Y(T)=4
(13) Y(T-1)≧5,Y(T-2)≧6,X(T)=1         →Y(T)=5
【０１１０】
これらの規則において、「Ａ、Ｂ、Ｃ→Ｄ」は、ＡとＢとＣとが成り立てばＤが成り立つことを意味する。
【０１１１】
例えば（１）の規則は、１時刻前の出力が４以下で、２時刻前の出力が５以下で、現在の入力が０で、１時刻前の入力が０ならば、現在の出力が６になることが期待されることを意味する。
【０１１２】
ここで、図１４の時系列データにおける時刻２４より後の時刻で、Ｙ＝６を得るためにはどのような入力をいつ与えれば良いか（入力条件）を決定したいとする。
【０１１３】
本実施の形態では、この入力条件を決定するため、図１４の時系列データと、上述の規則（１）〜（１３）とを用いて、論理推論を行う。この論理推論は、条件判定部５によって行われる。以下この論理推論について説明する。
【０１１４】
図１７は、規則（１）〜（１３）を表形式で表した図である。
【０１１５】
図１８は、論理推論を説明する図である。
【０１１６】
図１８に示すように、論理推論は、時系列データの少なくとも下端（最後の時刻）と規則とを重ね合わせながら、時系列データが次時刻以降どのように変化するかを予測するものである。
【０１１７】
図１８の例では、図１４の時系列データと規則（９）とを用いて論理推論を行っている。より詳しくは、まず、時系列データの時刻２３におけるＹの値が４であり、規則（９）における時刻Ｔ−２の出力が「５以下」であるのでこれらはマッチする。また、時系列データの時刻２３におけるＸの値が１であり、規則（９）における時刻Ｔ−２の入力が１であるのでこれらはマッチする。さらに、時系列データの時刻２４におけるＹの値が５であり、規則（９）における時刻Ｔ−１の出力が「５以上」であるのでこれらもマッチする。従って、時刻２５（＝Ｔ）でＸとして０を与えると、Ｙが５になることが期待される。
【０１１８】
この例の場合、マッチングされる時刻帯（単一化する時刻帯）は２時刻である。即ち、単一化する時刻帯は、時系列データにおける時刻２４、２５、規則におけるＴ−２、Ｔ−１の２時刻である。しかし、単一化する時刻帯は、規則に含まれる時刻帯の大きさにより当然ながら異なる。規則の時刻帯がＴ−１０〜Ｔであれば、例えばＴ−１０〜Ｔ−１までの１０時刻帯等とする。
【０１１９】
この論理推論を用いて、図１４において、時刻２４より後の時刻で、Ｙ＝６を得るための入力条件を決定する。
【０１２０】
まず、図１７の規則（１）〜（１３）において、Ｙ（Ｔ）が６である規則を選択すると、規則（１）（４）（７）（１１）となる。
【０１２１】
次に、これらの規則（１）（４）（７）（１１）が図１４に示す時系列データとマッチするか否かを試す。
【０１２２】
規則（１）では、規則（１）の時刻Ｔ−２、Ｔ−１と、時系列データの時刻２３、２４とを対応付けると、時刻２４におけるＹ＝５が、時刻Ｔ−１におけるＹ＜＝４を満たさない。従って、規則（１）と時系列データとはマッチしない。
【０１２３】
規則（４）では、規則（４）の時刻Ｔ−２、Ｔ−１と、時系列データの時刻２３、２４とを対応付けると、同じく、時刻２４におけるＹ＝５が、時刻Ｔ−１におけるＹ＜＝４を満たさない。従って、規則（４）と時系列データとはマッチしない。
【０１２４】
規則（７）（１１）についても同様にして試すと、これらの規則のいずれも時系列データとマッチしない。
【０１２５】
そこで、次に、これらの規則を組み合わせて論理推論を行う。
【０１２６】
この場合、基本的に総当たりで規則を組み合わせる。結果として、規則（１０）と規則（４）とを組み合わせることでＹ＝６となるときの入力条件が決定される。なお、規則を組み合わせる際の規則の選択方式が、情報処理学会誌Vol.25, No.12, 1984などに記載されている。
【０１２７】
図１９は、規則（１０）と規則（４）とを組み合わせて論理推論する様子を具体的に示す図である。
【０１２８】
図１９に示すように、規則（４）の時刻Ｔ−２、Ｔ−１と、規則（１０）の時刻Ｔ−１、Ｔとを対応付けるとこれらはマッチすることが分かる。また、規則（１０）の時刻Ｔ−２、Ｔ−１と、時系列データの時刻２３、２４とを対応付けるとこれらもマッチすることが分かる。
【０１２９】
これにより、時刻２５において入力としてＸ＝１を与えると規則（１０）によりＹ＝４が出力され、さらに時刻２６において入力としてＸ＝１を与えると規則（４）によりＹ＝６が出力されることが期待される。
【０１３０】
次に、本実施の形態に従った逆モデル計算装置による処理ステップについて説明する。
【０１３１】
図２０は、逆モデル計算装置による処理ステップを示すフローチャートである。
【０１３２】
まず、決定木生成部２は、時系列データ記録部１に記録された時系列データを用いて決定木を作成する（ステップＳ７１）。
【０１３３】
次に、条件判定部５に対して未来時刻における出力値Ｖを与える（出力条件を与える）（ステップＳ７２）。
【０１３４】
条件判定部５は、目標リスト及び入力系列リストを空にし（ステップＳ７３）、目標リストに出力条件“ｙ（ｔ）＝Ｖ”を目標条件として加える（ステップＳ７４）。
【０１３５】
条件判定部５は、後述するサブルーチンＣを実行する（ステップ７５）。
【０１３６】
条件判定部５は、サブルーチンＣの実行結果がＦＡＬＳＥであった場合は（ステップＳ７６のＹＥＳ）、与えられた出力値Ｖを規定時間内に得ることができない旨を出力する（ステップＳ７７）。
【０１３７】
一方、条件判定部５は、サブルーチンＣの実行結果がＴＲＵＥであった場合は（ステップＳ７６のＮＯ）、サブルーチンＣにおいて取得された入力系列リストの内容（入力条件及び時刻ｔの値）を出力する（ステップＳ７８）。
【０１３８】
図２１は、サブルーチンＣの処理ステップを詳細に示すフローチャートである。
【０１３９】
まず、条件判定部５は、繰り返し回数ｉを初期化（例えばｉ＝０）し（ステップＳ８１）、繰り返し回数ｉをインクリメントする（ｉ＝ｉ＋１）（ステップＳ８２）。
【０１４０】
次に、条件判定部５は、繰り返し回数ｉが既定値を超えたか否かを判断する（ステップＳ８３）。
【０１４１】
条件判定部５は、繰り返し回数ｉが既定値を超えた場合は（ステップＳ８３のＹＥＳ）、与えられた出力値Ｖを得ることはできない旨（ＦＡＬＳＥ）を出力する（ステップＳ８４）。
【０１４２】
一方、条件判定部５は、繰り返し回数ｉが既定値を超えていない場合は（ステップＳ８３のＮＯ）、時系列データとマッチする規則が目標リスト内に存在するか否かを判断する（ステップＳ８５）。
【０１４３】
現時点では、目標リスト内に規則が格納されていないので、ここではそのような規則は存在しないと条件判定部５は判断し（ステップＳ８５のＮＯ）、目標リストから項目を１つ取り出す（ステップＳ８６）。
【０１４４】
条件判定部５は、取り出した項目が、出力条件及び規則のいずれであるかを判断する（ステップＳ８７）。
【０１４５】
条件判定部５は、取り出した項目が出力条件であると判断した場合は（現時点ではこれに該当）（ステップＳ８７の出力条件）、その項目を目標条件として条件取得部３にサブルーチンＡを実行させ、条件取得部３から検索結果（目標条件の値を葉ノードに含む規則）を受け取る（ステップＳ８８）。例えば、図１６において、出力値Ｖを５とした場合、サブルーチンＡによって５つの規則（２）（５）（６）（９）（１３）が得られ、出力値Ｖを６とした場合は、４つの規則（１）（４）（７）（１１）が得られる。
【０１４６】
条件判定部５は、検索結果がＦＡＬＳＥであった場合は（ステップＳ８９のＹＥＳ）、与えられた出力値Ｖを得ることはできない旨（ＦＡＬＳＥ）を出力する（ステップＳ８４）。
【０１４７】
一方、条件判定部５は、検索結果がＦＡＬＳＥでなかった場合は（ステップＳ８９のＮＯ）、条件取得部３によって取得された規則を目標リストに加える（ステップＳ９０）。
【０１４８】
次に、条件判定部５は、繰り返し回数ｉをインクリメントし（ステップＳ８２）、繰り返し回数ｉが既定値を超えていないと判断すれば（ステップＳ８３のＮＯ）、目標リスト内の規則に時系列データにマッチするものが存在するか否かを判断する（ステップＳ８５）。図１７において出力値Ｖを５とした場合、規則（２）（５）（６）（９）（１３）のうち規則（９）（１３）が、図１４に示すように時系列データとマッチする。この場合、条件判定部５は、マッチする規則が存在すると判断する（ステップＳ８５のＹＥＳ）。条件判定部５は、マッチする規則と時系列データとに基づいて入力条件及び時刻ｔを特定し、入力系列リストに追加する（ステップＳ９１）。ここではＸ（２５）＝０（規則（９））、Ｘ（２５）＝１（規則（１３））及び時刻ｔ＝２５を、入力系列リストに追加する（ステップＳ９１）。
【０１４９】
一方、ステップＳ８５において、時系列データにマッチする規則が存在しない場合は（ステップＳ８５のＮＯ）目標リストから項目を１つ取り出す（ステップＳ８６）。例えば、図１７において出力値Ｖを６とした場合における規則（１）（４）（７）（１１）は、時系列データにマッチしないので、これらの項目（規則）のうち１つを目標リスト内から取り出す。ここでは、例えば規則（４）を取り出す（ステップＳ８７の規則）。
【０１５０】
条件判定部５は、取り出した規則（対象規則）にマッチする規則が存在するか否かを、条件取得部３に判断させる（ステップＳ９２）。
【０１５１】
条件判定部５は、そのような規則が存在する場合は（ステップＳ９２のＹＥＳ）、その規則を上述の対象規則と共に、一時格納リストに追加する（ステップＳ９３）。図１７において出力値Ｖが６の場合、規則（４）にマッチする規則として、規則（１０）、（１３）が存在するため、一時格納リストには、対象規則としての規則（４）と、規則（４）にマッチするとして得られた規則（１０）（１３）とが格納される。
【０１５２】
条件判定部５は、一時格納リスト内の得られた規則が時系列データとマッチするか否かを判断する（ステップＳ９４）。上記例では、規則（１０）あるいは規則（１３）が時系列データにマッチするか否かを判断する。
【０１５３】
条件判定部５は、マッチする規則が存在する場合は（ステップＳ９４のＹＥＳ）、そのマッチする規則及び対象規則に基づいて入力条件及び時刻ｔを特定し、入力系列リストに追加する（ステップＳ９６）。例えば、上記例では、規則（１０）に基づきＸ（２５）＝１を、規則（４）に基づきＸ（２６）＝１をそれぞれ入力条件として特定し、これら入力条件を時刻ｔ＝２６と共に、入力系列リストに追加する。
【０１５４】
条件判定部５は、目標リストが空であるかどうかを判断し（ステップＳ９７）、空である場合は（ステップＳ９７のＹＥＳ）、サブルーチンＣを終了し、空でない場合は（ステップＳ９７のＮＯ）、一時格納リストを空にして、ステップＳ８２に戻る。
【０１５５】
上述のステップＳ９４において、一時格納リスト内の検索された規則が時系列データにマッチしない場合は（ステップＳ９４のＮＯ）、条件判定部５は、このマッチしない規則を対象規則として、再度ステップＳ９２、Ｓ９３を行う。この対象規則にマッチする規則が検索されれば（ステップＳ９２のＹＥＳ）、それを一時格納リストに追加する（ステップＳ９３）。一方、規則が検索されなければ（ステップＳ９２のＮＯ）、一時格納リストを空にして（ステップＳ９５）、ステップＳ８２に戻る。
【０１５６】
以上のように、本実施の形態によれば、決定木から得られた規則を時間的に遡るようにして組み合わることによって、与えられた出力値を得るための条件を算出するため、短時間での条件の算出が期待できる。
【０１５７】
（第５の実施の形態）
上述した第４の実施の形態では、規則同士のマッチング及び規則と時系列データとのマッチングの時刻帯、つまり、単一化する時刻帯を、現在時刻Ｔを除く全時刻帯とした。第４の実施の形態では単一化する時刻帯は、Ｔ−２〜Ｔ−１までの２時刻である。しかし、規則に含まれる時刻帯が長い場合、現在時刻を除く全時刻帯で規則を単一化することは、高い推論精度が期待されるものの、多くの計算量が要求され、効率的でない場合もある。より短い時刻帯で単一化できれば効率的であるが、単一化する時刻帯を短くすると推論精度が低下する問題も生じ得る。そこで、本実施の形態では、単一化する時刻帯として有効な値を算出し、その値で単一化を行うことにより、少ない計算量で、精度の高い推論を実現する。
【０１５８】
まず、単一化する時刻帯と推論精度との関係について簡単に説明する。
【０１５９】
上述した規則（４）を例にとって説明する。この規則（４）における「Ｙ（Ｔ−１）＜＝４、Ｙ（Ｔ−２）＜＝５、Ｘ（Ｔ）＝１、Ｘ（Ｔ−１）＝１→Ｙ（Ｔ）＝６」は、上述したように、この論理式における左辺全ての条件（説明変数の条件）が成立する場合に右辺の結果（被説明変数の値）が得られることを意味する。この規則（４）からは、Ｙ（Ｔ−２）＜＝５が成り立った後に、Ｘ（Ｔ−１）＝１とした場合、Ｙ（Ｔ−１）＜＝４となるか否かは不明である。言い換えると、規則において各時刻におけるＹの値が、その時刻以前の条件が成り立った場合に成立するか否かは不明である。
【０１６０】
本実施の形態では、規則に含まれる各時刻における出力条件が、その時刻以前の条件が成り立った場合に成立する確率（統計量）を求め、その確率が閾値以上の最小の時刻帯で単一化を行う。これにより最小限の計算量で、精度の高い論理推論を行うことが期待できる。以下、これについて、規則（４）を例にして、さらに詳しく説明する。
【０１６１】
規則（４）内の各時刻における出力条件が、その時刻以前の条件が成立した場合に成立する確率を図１４の時系列データを用いて調べると以下のようになる。
【０１６２】
まず、Ｙ（Ｔ−２）＜＝５については、この時刻以前の他の条件が存在しないので、省略する。
【０１６３】
次に、Ｙ（Ｔ−１）＜＝４については、Ｙ（Ｔ−２）＜＝５が成立する場合に、Ｘ（Ｔ−１）＝１として成立するか否かを調べると、時刻４、１３、１９、２３では成立し、時刻１０、１４、１８、２０、２２では成立しない。従って、Ｙ（Ｔ−１）＜＝４が成立する確率は、４４％（＝４／９×１００％）である。
【０１６４】
以上から、仮に閾値を３０％に設定すると、規則（４）に関してはＴ−２及びＴ−１の２時刻帯で単一化することは好ましいといえる。
【０１６５】
次に、単一化する時刻帯を算出し、算出された時刻帯で単一化を行う処理ステップについて説明する。これは、図２１のステップＳ８９に代えて、図２２に示すサブルーチンＤを実行すればよい。
【０１６６】
図２２はサブルーチンＤの処理ステップを示すフローチャートである。
【０１６７】
条件判定部５は、条件取得部３による検索結果がＦＡＬＳＥでない場合は（ステップＳ１０１のＮＯ）、条件取得部３から取得した各規則について、時系列データ記録部１内の時系列データに基づき、各時刻における出力条件がそれ以前の時刻における条件が成立した場合に成立する確率を計算する（ステップＳ１０２）。条件判定部５は、確率が閾値以上となる最小の時刻帯を単一化する時刻帯とする（ステップＳ１０２）。条件判定部５は、各規則を、各規則の単一化する時刻帯と共に目標リストに加え（ステップＳ９０）、単一化を行うステップＳ８５、Ｓ９２、Ｓ９４（図２１参照）では、算出された時刻帯によって単一化を行う。ステップＳ９２で新たに規則が取得された場合は同様にして時刻帯を求める。
【０１６８】
一方、条件判定部３は、条件取得部３による検索結果がＦＬＡＳＥである場合（ステップＳ１０１のＹＥＳ）は、ステップＳ８４に進み、与えられた出力値Ｖを得ることができない旨（ＦＡＬＳＥ）を出力する。
【０１６９】
上述のステップＳ１０２では、各規則のそれぞれについて、単一化する時刻帯を算出したが、全規則に共通の時刻帯を求めてもよい。具体的には、全規則を対象として各時刻における出力条件の成立確率の平均を算出し、その平均が閾値を上回る最小の時刻帯を、各規則に共通の時刻帯として用いる。
【０１７０】
これを実現するには、例えば図２１のステップＳ８１とＳ８２との間に、図２３に示すサブルーチンＥを追加すればよい。
【０１７１】
即ち、条件判定部５は、条件取得部３に決定木に含まれる全規則を取得させる。条件判定部５は、取得した全規則を対象として各時刻における出力条件の成立確率を算出し、各時刻について成立確率の平均を求める。その値が閾値以上となる時刻を特定し、特定された時刻以前の時刻帯を各規則に共通の単一化する時刻帯とする（ステップＳ１１２）。従って条件判定部５は、図２１のステップＳ８５、Ｓ９２、Ｓ９４では、この共通の時刻帯を用いる。
【０１７２】
以上のように、本実施の形態によれば、単一化する時刻帯として所定の精度を満たす最小限の時刻帯を採用するため、精度をさほど低下させることなく、少ない計算量で処理を実行できる。また、本実施の形態によれば、各規則に共通の単一化する時刻帯を算出するため処理効率をさらに高めることができる。
【０１７３】
（第６の実施の形態）
制御などの分野においてはプロセス出力が複数ある場合が少なくなく、それら複数の出力に対する逆方向計算を行いたい場合がある。すなわち、複数の出力を同時にある望ましい値にするような入力を求めたい、例えばある装置の温度とそれにつながる別の装置の圧力が同時にある値になるような入力を求めたいという場合がある。
【０１７４】
第１番目の方法として、複数の出力を１次元の評価値に変換して、その１次元の評価値に対するモデルを構築するという方法がある。１次元ならば、決定木を構築し、構築した決定木を用いて逆方向計算を実行できる。
【０１７５】
しかし、この方法では、１次元の評価値への変換のための適正な評価関数を定義しなければならない。どのような評価関数が適切かは問題に応じて異なり、評価関数を適切に定義するのは困難である。また、仮に評価関数を適正に定義できたとしても、モデルの構築のために、評価値への変換処理が存在するため、計算時間がかかるという問題がある。
【０１７６】
２番目の方法として、複数の出力の直積（集合）を１つの被説明変数の値と見なして、決定木等のモデルを構築する方法が考えられる。
【０１７７】
しかし、この方法では、観測データ内において、被説明変数の値に欠損が存在する場合にはその部分のデータを決定木の構築に利用できない。即ち、全ての被説明変数の値が揃っているデータのみ決定木構築に利用可能である。従って、この方法では、利用できるデータが大幅に減る恐れがある。構築に利用するデータが少ない場合、生成された決定木の精度にも悪影響を与え、その決定木は役に立たない恐れもある。
【０１７８】
第３番目の方法して、複数の出力の各出力に対して複数の決定木を生成し、複数の決定木を同時に用いて逆方向の計算を行う方法がある。
【０１７９】
しかし、この方法は困難であるか、あるいは多くの計算時間を要する。なぜなら、ある１つの決定木によって、ある１つの被説明変数を望ましい値にする説明変数の値を求めたとしても、別の被説明変数に対してはその説明変数の値では条件が満たされるとは限らないからである。
【０１８０】
以上の問題点に鑑み、本発明者らは、独自の研究を重ねた結果、各被説明変数について生成された決定木を合成して、これら被説明変数の集合を被説明変数として有する合成決定木を生成する手法を知得した。つまり、この合成決定木は、その葉ノードにおいて、各決定木における葉ノードの値を異なる決定木間で組み合わせた値を有する。この合成決定木を第１〜第５の実施の形態に適用することで、複数の出力を同時に望ましいものとする条件を算出できる。以下、決定木を合成する手法について詳しく説明する。
【０１８１】
図２５は、複数の決定木を合成する決定木合成装置の構成図である。
【０１８２】
この決定木合成装置は、データ入力部１１、決定木生成部１２、決定木合成部１３及び決定木出力部１４を備える。
【０１８３】
データ入力部１１は、説明変数の値と、被説明変数の値とを含むデータを決定木生成部１２に入力する。説明変数の値は、例えば機器の操作入力値などであり、被説明変数の値は、それに伴う機器の出力（例えば温度や圧力）である。本データ内には複数種類の被説明変数が含まれる。一般にこのデータは、観測、記録などによって収集される（図２参照）。
【０１８４】
決定木生成部１２は、データに含まれる説明変数の値と、データに含まれる１つの被説明変数の値とに基づき１つの決定木を生成する。決定木生成部１２は、このことを各被説明変数について行う。つまり、決定木生成部１２は、被説明変数の数分だけの決定木を生成する。各決定木は、葉ノード（末端ノード）に被説明変数の値を有し、葉ノード以外のノードは説明変数となる。ノード間をつなぐ枝は説明変数の値となる。
【０１８５】
決定木合成部１３は、決定木生成部１２において生成された複数の決定木を合成して、説明変数の値から複数の被説明変数の値を同時に推測する１つの決定木（合成決定木）を生成する。この合成決定木は、各決定木における葉ノードの値（被説明変数の値）を異なる決定木間で組み合わせた被説明変数の値の集合を葉ノードにおいて有する。例えば第１の決定木が各葉ノードにおいてy1,y2,y3・・ynを有し、第２の決定木が各葉ノードにおいて値z1,z2,z3・・znを有する場合、合成された決定木の葉ノードはそれぞれ(y1,z1),(y1,z2)・・(y1,zn),(y2,z1),(y2,z2),・・・(yn,zn)となる。この合成決定木を上述の第１〜第５の実施の形態における対象の決定木として用いることで、複数の被説明変数の値を同時に満足するために必要な条件を求めることができる。例えば第１の実施の形態においてこの合成決定木を用い、未来時刻における出力値として（y2,z1）を得る場合は、値(y2,z1)を有する葉ノードを特定し、この葉ノードから根ノードに向かって辿ることで、この値（y2,z1）を得るために必要な条件を求めることができる。
【０１８６】
決定木出力部１４は、決定木合成部１３によって生成された合成決定木を出力する。出力された合成決定木は、上述した第１〜第５の実施の形態において対象の決定木として使用できる。つまり図１及び図９の条件取得部３は、この合成決定木を対象の決定木として用いることができる。
【０１８７】
以下、具体例を用いて、図２５の装置についてさらに詳述する。
【０１８８】
図２７は、観測データの一例を示す表である。
【０１８９】
変数X1が1でX2が2、X3が0、X4が0、X5が0、X6がAで、Y1が3、Y2がAという事例、変数X1が3、X2が0、X3が1、X4が0、X5が1、X6がBで、Y1が7、Y2がCという事例など、多数の事例が存在する。ここでX1〜X6は説明変数であり、Y1とY2が被説明変数である。制御の分野では、X1〜X6の値が入力（例えば材料の性質を表す項目や機器の操作など）、Y1とY2の値が出力（例えば材料の温度や圧力など）に対応する。
【０１９０】
まず、データ入力部１１から決定木生成部１２に図２７のデータが入力される。入力されたデータは適当な形式で記憶される。
【０１９１】
次に、決定木生成部１２において、被説明変数ごとに決定木が生成される。
【０１９２】
データ入力部１１から入力されたデータが図２７に示すデータの場合、被説明変数が２つあるので、２つの決定木が生成される。１つの決定木（被説明変数Y1に対応する決定木）を生成するために利用するデータを図２８に示す。
【０１９３】
図２８のデータは、図２７に示すデータから、被説明変数Y2のデータを削除して、被説明変数Y1のデータのみとしたものである。
【０１９４】
このように被説明変数が１つしかないデータから決定木を生成する方法は、「AIによるデータ解析」J.R.Quinlan著、古川康一監訳、株式会社トッパン 1995年発行、「応用２進木解析法」大滝厚、堀江宥治、D.Steinberg著、日科技連 1998年発行、などによって知られている。
【０１９５】
同様にして、図２７に示すデータから被説明変数Y1のデータを削除したデータを作成することで、被説明変数Y2に対応する決定木も作成できる。
【０１９６】
以上のようにして各被説明変数Y1、Y2に対して求めた決定木を、ここでは便宜上「決定木１」、「決定木２」と呼ぶこととする。
【０１９７】
ここでは、決定木生成部１２が、被説明変数を１つのみにしたデータ（図２８参照）を生成したが、決定木合成装置の別例を示す図２６のように、決定木生成部１２を、データ整形処理部１２ａと決定木生成処理部１２ｂとに分け、データ整形処理部１２ａが被説明変数を１つのみにしたデータを生成し、決定木生成処理部１２ｂが、このデータを用いて決定木を生成するようにしてもよい。また、各被説明変数に対応する決定木の生成は、順番に行ってもいいし、並列に行ってもよい。
【０１９８】
なお、以上では、各被説明変数の決定木を生成するに当たり、被説明変数を１つのみにしたデータを生成したが（図２８参照）、この処理は、説明を簡単化するために行ったもので、実際の処理では省略してもよい。
【０１９９】
図２９は、被説明変数Y1,Y2に対して生成された決定木１及び決定木２の例を示す図である。
【０２００】
これら決定木１及び決定木２の見方について簡単に説明すると以下の通りである。
【０２０１】
決定木１は、被説明変数（葉ノード）であるY1の値によって事例を分類する。まずX1が4より大きいかどうかを判断する。X1が4以下の場合には次にX3が0か1かを判断し、X3が0ならばY1が2より小さく、X3が1ならばY1が5より大きいと判断する。X1が4より大きい場合にも同様にして行う。図中、葉ノードのおける「２〜５」は、「２以上５以下」を意味する。
【０２０２】
同様に、決定木２は、被説明変数であるY2の値によって事例を分類する。まずX3が0か1かを判断し、X3が0の場合には次にX4が0か1かを判断する。X4が0ならばY2がA、X4が1ならばY2がCであると判断する。X3が１の場合も同様にして行う。
【０２０３】
これらの決定木１及び決定木２は、既知のデータ（図２７参照）に含まれる事例集合を分類するものだが、新たなデータに対しても被説明変数であるY1やY2の値を予測できる。
【０２０４】
なお、一般に、決定木による分類は100%正しいわけではない。それは、決定木構築に用いるデータ内に矛盾がある場合もあるし、また、ごく少数しか存在しない事例に関しては誤差やノイズと見なされて決定木の構築に影響を与えない場合もあるからである。現時点で得られているデータを100%正しく分類する詳細な決定木を生成することは可能だが、そのような決定木は実際にはあまり有効ではない。なぜならそのような決定木はノイズや誤差までも忠実に表現していると考えられるからである。加えて、そのような決定木は現在のデータを厳密に再表現したに過ぎず、決定木の形に表現し直す必然性に弱いからである。また、詳細過ぎる決定木は利用者にとっても理解しにくいものとなるからである。従って、適度にノイズに対する処理を行ったコンパクトな決定木を生成することが望ましい。
【０２０５】
決定木合成部１３は、上述したように複数の決定木を合成して１つの決定木を生成する。以下では、決定木の合成方法の具体例を３種類（合成方法１〜３）提示するが、これらの組み合わせを用いることも可能である。
【０２０６】
以下、合成方法１〜３について順番に説明する。
【０２０７】
（合成方法１）
図３０は、合成方法１を実行する処理手順を示すフローチャートである。
【０２０８】
この合成方法１では、まず適当な説明変数の値（説明変数値）の系列を作る（ステップＳ１００１）。説明変数値の系列とは、例えば、図２７の説明変数X1、X2、X3、X4、X5、X6の値を定めた入力データのことである。まずは、どのような値でもよいので、系列を１つ作る。ここでは、図３１に示す説明変数値の系列を作ったとする。
【０２０９】
次に決定木１、２に対してこの説明変数値の系列を与えて、被説明変数の値を求める（ステップＳ１００２、Ｓ１００３）。即ち、決定木を根ノードから順に辿っていくと、ある１つの葉ノードに到達する。その葉ノードの値が被説明変数の値である。
【０２１０】
具体的には、決定木１ではまずX1が1、つまり「≦4」であるので左側の枝に進み、次にX3は0なので左側の枝に進み、結果として「＜2」という葉ノードに到達する。一方、決定木２ではX3が0なので左側の枝に進み、次にX4が0なので左側の枝に進み、結果として「A」という葉ノードに到達する。
【０２１１】
このようにして各決定木１，２から得られた葉ノードの値を図３１の表に追加して１つの事例を作る（ステップＳ１００４）。図３２は、生成された１つの事例データを示す。
【０２１２】
次に、別の説明変数値の系列を作る。この場合も作り方に制約はないが以前に作った系列と同じではない方が望ましい。例えばランダムに、あるいは説明変数の値を順番に変化させるなどして、あらゆる説明変数値の組み合わせを網羅することが好ましい。そうして作った系列をまた決定木１，２に与えて被説明変数の値を取得し、事例データを作る。以上を繰り返すことにより事例データの集合を生成する。
【０２１３】
生成された事例データの集合を用い、２つの被説明変数の集合を１つの被説明変数とみなして決定木を生成する（ステップＳ１００５）。例えば「＜2」かつ「A」を１つの被説明変数の値と見なして決定木を生成する。決定木の生成方法は前述した文献などに示されているので、ここでは詳細な説明を省略する。
【０２１４】
（合成方法２）
図３３は、合成方法２を実行する処理手順を示すフローチャートである。
【０２１５】
まず、根ノードから葉ノードへ至るパス（規則）を決定木１，２からそれぞれ取得し、取得したパスの全ての組み合わせをとる。この結果、パスの組（パス集合）が複数生成される。そして、各パス集合におけるパスを連結等して、各パス集合から、新たな１つのパス（合成パス）を生成する。これにより、新たなパスの集合（合成パスの集合）を得る（ステップＳ１０１１）。
【０２１６】
次に、ステップＳ１０１１で得られた合成パスの集合に含まれる複数の合成パスを合成して１つの決定木を得る（ステップＳ１０１２）。
【０２１７】
以下、ステップＳ１０１１、Ｓ１０１２についてさらに詳しく説明する。
【０２１８】
まず、ステップＳ１０１１について説明する。
【０２１９】
図３４は、ステップＳ１０１１の処理手順を詳細に示すフローチャートである。
【０２２０】
まず、根ノードから葉ノードへ至るパスを決定木１，２からそれぞれ取得し、取得したパスを決定木１、２間で全通りで組み合わせ、複数のパスの組（複数のパス集合）を取得する（ステップＳ１０２１）。
【０２２１】
図３５は、パスの組の例を示す図である。図３５の左側は、決定木１（図２９参照）の最も左の葉ノードと根ノードとを結ぶパスであり、右側は決定木２の最も左の葉ノードと根ノードとを結ぶパスである。各パスに分岐は含まれない。
【０２２２】
このようにして決定木１に含まれる各パスと、決定木２に含まれる各パスとを順次組み合わせていく。組み合わせの順番は問わないが、全ての組み合わせを網羅する。決定木１には葉ノードが5個、決定木２には葉ノードが6個あるため、パスの組は、５×６＝３０通り生成される。
【０２２３】
このようにしてパスの組を取得したら、次に各パスの組における各パスを縦に連結して新たなパス（連結パス）を生成する（図３４のステップＳ１０２２）。
【０２２４】
図３６は、図３５に示すパスの組を連結した状態を示す図である。
【０２２５】
連結前の各パスにおける葉ノード（被説明変数）は連結パスの末端に割り当てられる。その他のノード（説明変数）は縦方向に連結される。図３６では、決定木１のパスの下に決定木２のパスを連結しているが、逆でもよい。
【０２２６】
次に、この連結パスに矛盾があるかどうかをチェックする（図３４のステップＳ１０２３）。
【０２２７】
矛盾とは、重複する説明変数があり、かつその値が異なることをいう。例えば、連結パスに同じ説明変数（ノード）が2つ以上含まれ、一方は1、他方は0である場合は矛盾である。
【０２２８】
矛盾がある場合は（ステップＳ１０２３のＹＥＳ）、この連結パスを削除し（ステップＳ１０２４）、次のパスの組を選択する（ステップＳ１０２６のＹＥＳ）。図３６では、ノードX3が２つあるが、２つとも同じ値0であるため矛盾はない。
【０２２９】
矛盾がない場合は（ステップＳ１０２３のＮｏ）、連結パスに含まれる重複を省く処理を行う（ステップＳ１０２５）。重複とは、連結パスに同じ説明変数（ノード）が複数あり、かつ各説明変数の値が同じことをいう。上述のステップＳ１０２３で矛盾のチェックを行っているので、現時点で同じ説明変数が複数あれば、その値は同じはずであり、従って重複がある。重複がある場合は、連結パスから、重複する説明変数（ノード）及びその枝を削除する。この結果、連結パスは短くなる。図３６では、連結パスにノードX3が２つ含まれ、且つ、値はどちらも0である。従ってこれは重複である。図３６の連結パスから重複を省いたパス（合成パス）を図３７に示す。
【０２３０】
以上のようにして、各パスの組（本例では３０組）に対して、連結処理（ステップＳ１０２２）、矛盾処理（ステップＳ１０２４）及び重複処理（ステップＳ１０２５）を施す。矛盾する連結パスは矛盾処理（ステップＳ１０２４）によって削除されるので、生成される合成パスは３０個以下になる。本例では、６個の合成パスが生成される。図３８は、生成された１６個の合成パスを示す。
【０２３１】
図３８において、各合成パスの上に書かれた括弧付の数値は、決定木１及び決定木２の各パスをどのように組み合わせたかを記したものである。例えば(1-2)は、決定木１における一番左の葉ノードを含むパスと、決定木２における左から２番目の葉ノードを含むパスとを組み合わせたことを意味する。(1-3)、(1-4)などは、上述した矛盾処理（ステップＳ１０２４）によって削除されたため図３８において存在しない。各合成パスにおけるノードの配置順序は、葉ノード（被説明変数）以外は入れ替えてもよい。図３８では、見易さのために、X1、X2、…のように、番号の小さい順に配置している。
【０２３２】
なお、上述の矛盾処理（ステップＳ１０２４）及び重複処理（ステップＳ１０２５）の実行順序は逆でもよく、また並行して実行してもよい。この場合も結果は同じものとなる。
【０２３３】
次に、ステップＳ１０１２（図３３参照）について詳細に説明する。
【０２３４】
ステップＳ１０１２では、以上のようにして生成された合成パス（図３８参照）を合成して１つの決定木を生成する。
【０２３５】
図３９は、ステップＳ１０１２の処理手順を詳細に示すフローチャートである。
【０２３６】
まず全ての合成パスを対象とする（ステップＳ１０３１）。本例では図３８に示す１６個の合成パスを対象とする。
【０２３７】
次に、対象となる合成パスが２つ以上あるかどうかを判断する（ステップＳ１０３２）。現時点では１６個あるのでＹＥＳに進む。
【０２３８】
次に、対象となる合成パスの集合の中で最も多く使われている説明変数（ノード）を求める（ステップＳ１０３３）。ここで、１６個の合成パスを調べると、ノードX1、X3は全ての合成パスに使われており、最多（それぞれ１６個）である。このように最多のノードが複数ある場合は、任意の１つを選択する。ここではノードX1を選ぶものとする。なお、図３８に示す各合成パスは決定木１と決定木２とを基に作られているので、各合成パスは必ず決定木１，２の根ノード（本例ではノードX1、X3）を含む。
【０２３９】
次に、求めたノードを新たな決定木のノードとして、新たな決定木において選んだ枝の下につなげる（ステップＳ１０３４）。但し、最初の処理（１度目のループ）ではそのノードを根ノードとする（ステップＳ１０３４）。従って、現時点では、ノードX1を根ノードとする。
【０２４０】
次に、そのノードの取り得る値に応じてノードに枝を作る（ステップＳ１０３５）。取り得る値は合成パスの集合から調べる。ノードX1が取り得る値を、図３８に示す合成パスの集合から調べると「≦4」と「4＜」である。従って、ノードX1に対し「≦4」と「4＜」の枝を作る。ここまでの処理で生成された生成途中の決定木を図４０に示す。
【０２４１】
次に、現時点の決定木において枝を１つ選択する（ステップＳ１０３６）。ここでは、図４０において、左側の「≦4」の枝を選択したとする。右側の枝は後に処理をする。どちらの枝を先に選んでもかまわない。
【０２４２】
次に、この決定木の根ノードからステップＳ１０３６で選択された枝までのパスを含む合成パスを図３８の合成パスの集合から探し、対象の合成パスとする（ステップＳ１０３７）。本例では、「X1≦4」を含む合成パスを探し、この合成パスを対象の合成パスとする。図３８に示す合成パスの集合の中で「X1≦4」を含む合成パスは、最上段の６個の合成パスである。従って、これら６個の合成パスを対象の合成パスとする。
【０２４３】
次に、ステップＳ１０３２に戻って、対象の合成パスが２つ以上あるかどうかを調べる。対象となる合成パスは６個なのでＹＥＳに進む。
【０２４４】
次に、対象となる合成パスの集合の中で最も多く使われているノードを求める（ステップＳ１０３３）。但し、ここでは、ステップＳ１０３７において対象となる合成パスを探す際に用いたノード（本例ではノードX1）、つまり、決定木の根ノードからステップＳ１０３６で選択した枝までの経路上にあるノードは除く。図３８の最上段における６個の合成パスの中でノードX1を除いて最も多く使われているノードはX3なのでノードX3を選択する。
【０２４５】
次に、そのノードを新たな決定木のノードとして、ステップＳ１０３６で選んだ枝の下につなげる（ステップＳ１０３４）。ステップＳ１０３６で選んだ枝は図４０の左側の枝なので、その下にノードX3をつなげる。
【０２４６】
次に、そのノードの取り得る値に応じてノードに枝を作る（ステップＳ１０３５）。図３８の最上段に示すように、ノードX3が取り得る値は「0」と「1」なので、ノードX3の下に「0」「1」の枝を作る。ここまでで生成された決定木を図４１に示す。
【０２４７】
次に、決定木において枝を１つ選択する（ステップＳ１０３６）。ここでは、ノードX3から分岐した枝のうち左側の「0」の枝を選んだとする。
【０２４８】
次に、この決定木において根ノードからステップＳ１０３６で選択された枝までのパスを含む合成パスを図３８に示す合成パスの集合（最上段の６個）から探し、対象の合成パスとする（ステップＳ１０３７）。ステップＳ１０３６で選択された枝はノードX3から分岐した枝のうち左側の「0」の枝なので、根ノードからその枝へ至るパス（「X1≦４」「X3＝０」）を含む合成パスを、最上段の６個の合成パスから探す。図３８の最上段の左から１番目及び２番目の２個の合成パスがこれに合致する。
【０２４９】
次に、ステップＳ１０３２に戻って、対象の合成パスが２つ以上あるかどうかを調べる。対象の合成パスは２個なのでＹＥＳに進む。
【０２５０】
次に、対象の合成パスの集合の中で最も多く使われているノードを求める（ステップＳ１０３３）。但し、ノードX1、X3は除く。対象となる２個の合成パスに使われているノードは、ノードX1,X3を除くと、X4であるのでX4を選択する。
【０２５１】
次に、そのノードを新たな決定木のノードとして、ステップＳ１０３６で選択された枝の下につなげる（ステップＳ１０３４）。ステップＳ１０３６で選択された枝は、図４１の最も左側の枝（X3＝0）なので、ノードX3から分岐した「0」の枝の下にノードX4をつなげる。
【０２５２】
次に、そのノードの取り得る値に応じて、そのノードに枝を作る（ステップＳ１０３５）。ノードX4が取り得る値は、図３８の最上段、左側から１番目、２番目の合成パスから、「0」と「1」である。従って、ノードX4の下に「0」「1」に対応する枝を作る（図４２参照）。
【０２５３】
次に、決定木において枝を１つ選択する（ステップＳ１０３６）。ここでは、ノードX4から分岐した左側の枝「0」を選択したとする。
【０２５４】
次に、この決定木において根ノードからステップＳ１０３６で選択された枝までのパスを含む合成パスを図３８に示す合成パスの集合から探し、対象の合成パスとする（ステップＳ１０３７）。対象となる合成パスは、図３８の最上段中、１番左の合成パスのみである。
【０２５５】
次に、ステップＳ１０３２に戻って、対象の合成パスは２つ以上あるかどうかを調べると１個しかないのでＮＯに進む。
【０２５６】
次に、この合成パス中の葉ノードを、ステップＳ１０３６で選択された枝の下に繋げ、新たな決定木の葉ノードとする（ステップＳ１０３８）。本例では、「〜2、A」が新たな決定木の葉ノードとなる。ここまでで生成された決定木を図４２に示す。
【０２５７】
次に、決定木において葉ノードが付されていない枝があるかどうかを判断する（ステップＳ１０３９）。図４２に示すように、葉ノードが付されていない枝が３つあるのでＹＥＳに進む。
【０２５８】
次に、この決定木において葉ノードが付されていない枝を１つ選択する（ステップＳ１０４０）。ここでは、図４２の決定木において、「X4=1」の枝を選択したとする。選択する枝は、葉ノードが付されていない枝ならどれでもかまわない。
【０２５９】
次に、ステップＳ１０３７に進み、現時点の決定木において根ノードからステップＳ１０４０で選択された枝までのパスを含む合成パスを図３８に示す合成パスの集合から探し、対象の合成パスとする。ここでは、図３８の最上段、左から２番目の合成パスのみがこれに該当する。
【０２６０】
ステップＳ１０３２に戻って、対象の合成パスが２つ以上あるかどうかを調べると１個しかないのでＮＯに進む。
【０２６１】
次に、この合成パスにおける葉ノードを、ステップＳ１０４０で選択された枝の下に繋げ、新たな決定木の葉ノードとする。本例では、「〜2、C」が新たな決定木の葉ノードとなる。ここまでで生成された決定木を図４３に示す。
【０２６２】
以降、同様の処理を続けることで、最終的に、決定木１及び決定木２を合成した決定木が図４４に示すように生成される。
【０２６３】
なお、図３９のステップＳ１０３３において、対象となる合成パスの集合の中で、最も多く使われているノードを求める際に、同数のノードがあった場合にはどれを選択しても良いと述べた。それによって、最終的に得られる決定木が異なるのではないかとの疑問があるかもしれないが、最終的に得られる決定木は意味的には等しくなる。なぜなら、そのようなノードは仮にある時点で選択されなくても、次以降の選択の機会に必ず選択されるからである。両方の決定木の葉ノードの組合せで新たな決定木の葉ノードが生成されるので、最終的に得られる決定木の内容は、ノードの選択される順番にはよらない。
【０２６４】
（合成方法３）
図４５は、合成方法３を実行する処理手順を示すフローチャートである。
【０２６５】
まず、ステップＳ１０４１に示すように、決定木１及び決定木２のそれぞれの根ノードを対象とする。本例ではノードX1、X3が対象となる（図２９参照）。
【０２６６】
次に、対象のノードを異なる決定木間で組み合わせてノードの集合を生成し、ノードの集合を新たな決定木のノードとする（ステップＳ１０４２）。本例では、ノードX1、X3の集合を、新たな決定木のノード（集合ノード）とする。このノードを「X1,X3」と書くこととする。この集合ノードが葉ノードからなる場合以外は、各決定木からこの集合ノードに対応するノードを検出し、検出された各ノードの枝を組み合わせて新たな枝を生成し、生成された新たな枝を集合ノードに付加する。本例では、決定木１及び決定木２においてノード「X1,X3」に対応するノードはX1、X3である。従って、各ノードX1,X3の枝を組み合わせて新たな枝を生成する。
【０２６７】
即ち、決定木１のノードX1は「≦4」「4＜」の枝を有しており、決定木２のノードX3は「0」「1」の枝を有しているので、これらを組み合わせて「≦4, 0」、「≦4, 1」、「4＜, 0」、「4＜, 1」の４通りの新たな枝を作り、ノード「X1,X3」に付加する。ここまでで生成された生成途中の決定木を図４６に示す。
【０２６８】
次に、現時点の決定木において葉ノードが付されていない枝があるかどうかを調べる（ステップＳ１０４３）。図４６に示すように、葉ノードが付されていない枝は４本あるので、ここではＹＥＳに進む。
【０２６９】
次に、葉ノードが付されていない枝を１つ選ぶ（ステップＳ１０４４）。ここでは、例えば一番左端の枝を選んだとする。但し、選ぶ枝はどれでもよい。
【０２７０】
次に、選択された枝に対応する、決定木１の枝と決定木２の枝とを検出し、この枝に続くノードを対象として選択する（ステップＳ１０４５）。選択された枝は、上述のように、図４６中の一番左端の枝、つまり「X1≦4、X3＝0」の枝である。従って、これに対応する決定木１の枝「X1≦4」を辿って次のノードX3を選択し、同様に、これに対応する決定木２の枝「X3＝0」を辿って次のノードX4を選択し、これらのノードを対象とする。
【０２７１】
ステップＳ１０４２に戻って、対象とされたノードを組み合わせて新たなノードを生成し、この新たなノードを新たな決定木に追加する。本例では、対象とされたノードはX3、X4であるので、図４６において、一番左端の枝の下にノード「X3,X4」を追加する。そして、上述と同様にして、そのノードから枝を分岐させ、その結果、「0, 0」、「0, 1」、「1, 0」、「1, 1」の４種類の枝が追加される（ステップＳ１０４２）。ここまでで生成された決定木を図４７に示す。なお紙面のスペースの都合から、ノード「X3,X4」から分岐された枝のうち、左端の枝にのみ、対応する値が付されている。
【０２７２】
次に、現時点の決定木において葉ノードが付されていない枝があるかどうかを調べる（ステップＳ１０４３）。まだどの枝にも葉ノードが付されていないのでＹＥＳに進む。
【０２７３】
次に、葉ノードが付されていない枝を１つ選ぶ（ステップＳ１０４４）。ここでは、１番左端の枝を選んだとする。
【０２７４】
次に、選択された枝に対応する、決定木１の枝と決定木２の枝とを特定し、この枝に続くノードを対象として選択する（ステップＳ１０４５）。本例では、図４７において、一番左端の枝を選んだので、これに対応する決定木１の枝「X3=0」に続くノード「＜2」と、これに対応する決定木２の枝「X4=0」に続くノード「A」とを選択する。
【０２７５】
ステップＳ１０４２に戻って、対象としたノードを組み合わせて新たなノードを生成し、この新たなノードを新たな決定木に追加する（ステップＳ１０４２）。本例では「＜2, A」が新たなノードとして追加される。但し、各ノード「<2」、「A」は、各決定木１、２における葉ノードなので、新たに生成されたノード「<2,A」は新たな決定木の葉ノードとなる。従って、ノード「<2,A」から分岐枝は生成しない。もし、この時点で一方のノードは元の決定木における葉ノードだが、もう一方のノードが葉ノードではない場合には、葉ノードではない方の決定木の情報を用いて分岐枝をさらに作る。
【０２７６】
以上を繰り返すことにより最終的に図４８に示す決定木が生成される。
【０２７７】
図４８では、紙面によるスペースの都合上、木の一部を別枠に拡大して示した。図４８において、「×」印を含むパスは矛盾があるため実際には存在しないが、それを明示するために記した。
【０２７８】
以上、合成方法１、２、３について説明したが、合成方法２と合成方法３とは、意味的には等しい決定木である。合成方法１は、与えるデータによっては、合成方法２、３により得られる決定木と若干異なる可能性があるが、データの数が多ければ大きく異なることはない。
【０２７９】
次に、以上のようにして生成された決定木の改良方法について説明する。
【０２８０】
一般に、決定木には、単に枝やノードの情報のみならず、観測データから決定木を生成する算出された種々のデータが保持されている。具体的には、各説明変数（ノード）における事例数（例えばある説明変数がその値として「０」「１」を取り得る場合、「０」の場合の事例数と、「１」の場合の事例数）や、各説明変数における事例数を被説明変数の値で分布させたもの（例えばある説明変数の値が「０」になる事例が１００存在する場合において、そのうち被説明変数の値がＡになる事例が４０、Ｂになる事例が６０存在する等）などである。そこで、決定木が保持しているこれらの情報を利用して、合成方法１〜３によって生成された合成決定木を評価し、精度の低いパスは枝刈りなどして合成決定木を改良する。
【０２８１】
図４９は、合成決定木（図４８参照）における最も左のパスの評価方法を説明する図である。この最も左のパスは、決定木１及び決定木２のそれぞれ左端のパスを組み合わせてできたパスである。
【０２８２】
図中左側は決定木１の左端のパスを示す。「X1≦４」且つ「X3＝０」となる事例は１００存在する。被説明変数の値が「＜２」になる事例は７０、「２〜５」（２以上５以下）になる事例は２０、「５＜」になる事例は１０、存在する。つまり決定木１のパスの精度は７０％（＝７０／１００）である。
【０２８３】
図中右側は決定木２の左端のパスを示す。「X3=0」且つ「X4=0」となる事例は９０存在し、被説明変数が「A」になる事例は８０、「B」になる事例は２０存在する。つまり決定木２のパスの精度は８０％（＝８０／１００）である。
【０２８４】
従って、「X1≦４」且つ「X3＝０」且つ「X4＝０」の場合に、被説明変数の値が「＜2，A」となる確率は７０％×８０％＝５６％と推測される。
【０２８５】
なお、合成決定木の事例数は、元の決定木の事例数よりも大きくなることはあり得ない。従って、合成決定木の事例数は最大でもmin{決定木１の事例数、決定木２の事例数}となる。本例では、図４９に示すように、９０個以下となる。
【０２８６】
以上に基づき、合成決定木において、「X1≦４」且つ「X3＝０」且つ「X4＝０」の場合に、被説明変数の値が「＜2, A」となる事例数を推測すると、最大でも９０個×５６％＝約５０個程度と推測できる。この数あるいは確率が一定値以下である場合には、枝刈りをして合成決定木を改良する。
【０２８７】
また、合成決定木の各パス（規則）を既知の観測データに適用して規則通りになる事例数（あるいは確率）を求め、その平均を求めることなどによって、合成決定木全体の評価を行うことも可能である。その他、確率的に最もありそうな事例数や分布を推定することなどもできる。
【０２８８】
以上、本発明の一実施の形態を示したが、本発明の適用範囲は、複数の被説明変数あるいは複数の決定木に対して、説明変数が同一な場合に限られない。即ち、上記の説明では、簡単化のために、図２７のように各被説明変数に対する説明変数が同一の場合を扱ったが、例えばY1に対する説明変数と、Y2に対する説明変数とが異なる場合にも本発明は適用可能である。
【０２８９】
但し、それぞれの説明変数に全く重複がない場合には、本発明の適用は可能なものの、適用の必要性は少ないものと考えられる。即ち、本発明は、複数の被説明変数が望ましい値になるような説明変数の値を求める逆方向の計算の解決が目的の１つであるが、被説明変数に対する説明変数が完全に異なる場合には、決定木を合成せずに独立に逆方向計算を行っても、決定木を合成して逆方向計算を行っても処理内容に差がないからである。逆に、説明変数に一部重複がある場合には、本発明の効果が発揮される。
【０２９０】
また、本実施の形態では簡単化のために２つの決定木を合成する例を説明したが、決定木が３つ以上の場合も本発明は適用可能である。
【０２９１】
また、上述した決定木合成装置は、ハードウェアによって構成することの他、同等の機能を、プログラムによって実現することも当然可能である。
【０２９２】
以上、決定木の合成方法及び決定木の改良方法について述べてきた。一般的に決定木の作成及び決定木によるデータ分析により以下の利点を得ることができる。
【０２９３】
観測データから決定木を作成することでモデルや知識の一般化が容易になる。また、変数に連続的な値が用いられている場合には適度な離散化が行われる利点がある。さらに、決定木の作成の際に、被説明変数に影響を与える説明変数、すなわち重要な説明変数が自動的に抽出されるので、重要な説明変数が分かる。例えば、図２７のデータには説明変数X6があるが、決定木１と決定木２には説明変数X6は存在しないことから、説明変数X6は重要でなかったといえる。決定木は利用者にデータに関する知見を与えるという意味でも有効なモデルである。また、決定木は、既知のデータに対する過度の適合を防ぎつつ未知のデータに対して好適に対応できる。
【０２９４】
以上のように、本実施の形態によれば、決定木を複数合成して、説明変数の値から複数の被説明変数の値を同時に推測する決定木を生成するため、この決定木を第１〜第５の実施の形態における対象の決定木として用いることで、複数の被説明変数を同時に望ましい値とする条件を求める逆方向計算を簡易にできる。決定木の合成方法として合成方法１を用いる場合は、被説明変数ごとの決定木を生成した後に簡単な後処理（簡単なプログラム）を追加するだけでよいので処理が容易である。また、合成方法２では、簡潔な（見やすい）決定木を生成できる。合成方法３では、元の決定木との対応が明確な決定木を生成でき、また、アルゴリズムも簡易である。
【０２９５】
また、本実施の形態によれば、観測データに欠損値（被説明変数の欠損値）が含まれていても高精度なモデルを生成できる。即ち、被説明変数の直積を１つの被説明変数として決定木を構築する方法（本実施の形態の冒頭で説明した２番目の方法）では、観測データ内に被説明変数の欠損値が存在した場合は、その部分のデータは決定木の構築に利用できず、構築されたモデルの精度が低下する問題があった。これに対し、本実施の形態では、まずは、被説明変数ごとの決定木を構築し、その後、各決定木を合成して合成決定木を生成する。従って、本実施の形態では、観測データ内に被説明変数の欠損値が存在しても、高精度なモデル（合成決定木）を生成できる。
【図面の簡単な説明】
【０２９６】
【図１】本発明の第１の実施の形態に従った逆モデル計算装置の構成を示すブロック図。
【図２】観測対象システム４に入力系列が入力され、出力系列が出力される様子を示す図。
【図３】観測対象システム４に入力された変数Ｘ１、Ｘ２の入力系列と、観測対象システム４から出力された変数Ｙの出力系列とからなる時系列データを表形式にて示した図。
【図４】図３の時系列データに基づき作成された決定木を示す図。
【図５】変数Ｘ１，Ｘ２の入力系列と、変数Ｙの出力系列とからなる時系列データを表形式にて示す図。
【図６】図５の変数Ｙを被説明変数、変数Ｘ１、Ｘ２を説明変数として図５の時系列データを並べ替えたデータを示す表。
【図７】逆モデル計算装置による処理ステップを示すフローチャート。
【図８】サブルーチンＡの処理ステップを示すフローチャート。
【図９】本発明の第２の実施の形態に従った逆モデル計算装置の構成を示すブロック図。
【図１０】図９の逆モデル計算装置による処理ステップを示すフローチャート。
【図１１】サブルーチンＢの処理ステップを示すフローチャート。
【図１２】本発明の第３の実施の形態に従った逆モデル計算装置による処理ステップを示すフローチャート。
【図１３】図３に示した時系列データに後続する部分を示した表。
【図１４】分析対象となる時系列データを示す図。
【図１５】図１４の時系列データを並び替えたデータを示す表。
【図１６】図１５の表に基づき構築された決定木を示す図。
【図１７】規則（１）〜（１３）を表形式で表した図。
【図１８】論理推論を説明する図。
【図１９】規則（１０）と規則（４）とを組み合わせて論理推論する様子を示す図。
【図２０】本発明の第４の実施の形態に従った逆モデル計算装置による処理ステップを示すフローチャート。
【図２１】サブルーチンＣの処理ステップを示すフローチャート。
【図２２】サブルーチンＤの処理ステップを示すフローチャート。
【図２３】サブルーチンＥの処理ステップを示すフローチャート。
【図２４】図１の逆モデル計算装置を適用した逆モデル計算機システムの構成を示すブロック図。
【図２５】本発明の実施の形態に従った決定木合成方法を実行する決定木合成装置の構成を示すブロック図。
【図２６】決定木合成装置の別例を示すブロック図。
【図２７】観測データの一例を示す表。
【図２８】１つの決定木を生成するために利用するデータ。
【図２９】生成された決定木１及び決定木２の例を示す図。
【図３０】合成方法１を実行する処理手順を示すフローチャート。
【図３１】説明変数値の系列の例を示す表。
【図３２】１つの事例を示す表。
【図３３】合成方法２を実行する処理手順を示すフローチャート。
【図３４】ステップＳ１０１１の処理手順を詳細に示すフローチャート。
【図３５】パスの組の例を示す図。
【図３６】２つのパスを連結した状態を示す図。
【図３７】連結パスから重複を省いたパス（合成パス）を示す図。
【図３８】生成された１６個の合成パスを示す図。
【図３９】ステップＳ１０１２の処理手順を詳細に示すフローチャート。
【図４０】生成途中の決定木を示す図。
【図４１】生成途中の決定木を示す図。
【図４２】生成途中の決定木を示す図。
【図４３】生成途中の決定木を示す図。
【図４４】決定木１及び決定木２を合成した決定木を示す図。
【図４５】合成方法３を実行する処理手順の例を示すフローチャート。
【図４６】生成途中の決定木を示す図。
【図４７】生成途中の決定木を示す図。
【図４８】決定木１及び決定木２を合成した決定木を示す図。
【図４９】合成決定木における最も左のパスの精度を説明する図。
【符号の説明】
【０２９７】
１  時系列データ記録部
２  決定木生成部
３  条件取得部
４  システム
５  条件判定部
６  入力系列生成部
７  制御対象物
８  逆モデル計算装置
１１  データ入力部
１２  決定木生成部
１２ａ  データ成形処理部
１２ｂ  決定木生成処理部
１３  決定木合成部
１４  決定木出力部
【図１】
2005242979.tif 000003
【図２】
2005242979.tif 000004
【図３】
2005242979.tif 000005
【図４】
2005242979.tif 000006
【図５】
2005242979.tif 000007
【図６】
2005242979.tif 000008
【図７】
2005242979.tif 000009
【図８】
2005242979.tif 000010
【図９】
2005242979.tif 000011
【図１０】
2005242979.tif 000012
【図１１】
2005242979.tif 000013
【図１２】
2005242979.tif 000014
【図１３】
2005242979.tif 000015
【図１４】
2005242979.tif 000016
【図１５】
2005242979.tif 000017
【図１６】
2005242979.tif 000018
【図１７】
2005242979.tif 000019
【図１８】
2005242979.tif 000020
【図１９】
2005242979.tif 000021
【図２０】
2005242979.tif 000022
【図２１】
2005242979.tif 000023
【図２２】
2005242979.tif 000024
【図２３】
2005242979.tif 000025
【図２４】
2005242979.tif 000026
【図２５】
2005242979.tif 000027
【図２６】
2005242979.tif 000028
【図２７】
2005242979.tif 000029
【図２８】
2005242979.tif 000030
【図２９】
2005242979.tif 000031
【図３０】
2005242979.tif 000032
【図３１】
2005242979.tif 000033
【図３２】
2005242979.tif 000034
【図３３】
2005242979.tif 000035
【図３４】
2005242979.tif 000036
【図３５】
2005242979.tif 000037
【図３６】
2005242979.tif 000038
【図３７】
2005242979.tif 000039
【図３８】
2005242979.tif 000040
【図３９】
2005242979.tif 000041
【図４０】
2005242979.tif 000042
【図４１】
2005242979.tif 000043
【図４２】
2005242979.tif 000044
【図４３】
2005242979.tif 000045
【図４４】
2005242979.tif 000046
【図４５】
2005242979.tif 000047
【図４６】
2005242979.tif 000048
【図４７】
2005242979.tif 000049
【図４８】
2005242979.tif 000050
【図４９】
2005242979.tif 000051