首页> 中国专利> 逆模型计算装置和逆模型计算方法

逆模型计算装置和逆模型计算方法

摘要

本发明一个实施例的逆模型计算装置及方法,将输入所观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值作为时间序列数据进行记录;使用所述时间序列数据来建构用于算出未来时刻的输出值的判定树;将具有以所述未来时刻的输出值作为被说明变量的值的叶节点从所述判定树进行检测;将对应从所述根节点至所述检测到的叶节点的路径的规则中包含的说明变量的条件作为用于得到所述输出值的条件来获取。

著录项

  • 公开/公告号CN1604032A

    专利类型发明专利

  • 公开/公告日2005-04-06

    原文格式PDF

  • 申请/专利权人 株式会社东芝;

    申请/专利号CN200410095164.3

  • 发明设计人 森田千绘;波田野寿昭;仲濑明彦;

    申请日2004-09-02

  • 分类号G06F9/44;G06F17/30;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李德山

  • 地址 日本东京都

  • 入库时间 2023-12-17 16:04:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-11-14

    未缴年费专利权终止 IPC(主分类):G06F9/44 授权公告日:20070530 终止日期:20110902 申请日:20040902

    专利权的终止

  • 2007-05-30

    授权

    授权

  • 2005-06-08

    实质审查的生效

    实质审查的生效

  • 2005-04-06

    公开

    公开

说明书

技术领域

本发明涉及逆模型计算装置和逆模型计算方法。

背景技术

将目标系统的输出作为预期值来求输入的计算(逆向计算)是控制等领域探求的课题之一。当目标系统的物理学特性已通过算式得到时,可通过解该算式而求出输入。

然而,许多时候无法在事先得到算式。在这种无法在事先得到算式时,一般是使用从目标系统观测到的数据建构一个表示目标系统特性的数理模型。

在此,通常容易建构的是求给出某输入的时候能得到怎样的输出的顺方向模型(顺模型),但建构一个求解为了得到某输出需要怎样的输入的逆方向模型(逆模型)则很困难。原因是,为了得到同样输出的输入有多个。

于是,常用的方法是首先建构顺模型,利用该顺模型,从输出推定输入。以往在这种场合是采用线性模型的一般性逆行列方法:根据神经元网络进行逆向计算的方法;通过模拟求解等。

然而,采用线性模型的一般性逆行列的方法,在目标系统的非线性很强时或为多输入单输出时,计算精度会变差。

另一方面,根据神经元网络的逆向计算,在建构神经元网络的顺向模型时使用的所有输入变量都成为计算对象,因此至确定出不要的输入量为止,很难求出最佳的输入。另外,这种在根据神经元网络的逆向计算中,计算在哪一时刻能得到赋予的输出之事很困难。

另外,通过模拟求解,因为是对顺模型赋予各种输入、对能否得到目标的输出进行错误性试求的方法,需要大量地计算,很费计算时间。

发明内容

鉴于上述问题的存在,本发明的目的在于有效地算出用于得到预期输出的输入条件。

本发明的一个实施例的逆模型计算装置涉及对应所输入的值而输出某值的观测目标系统,是用于求出所述观测目标系统输出某输出值的条件的逆模型计算装置,具有将输入所述观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值作为时间序列数据进行记录的时间序列数据记录部;用所述时间序列数据生成用于算出未来时刻的输出值的判定树的判定树生成部;将具有以所述未来时刻的输出值作为被说明变量的值的叶节点从所述判定树进行检测,并将对应从所述判定树的根节点到所述检测到的叶节点的路径的规则中包含的说明变量的条件作为用于得到所述输出值的条件进行获取的条件获取部。

本发明的一个实施例的逆模型计算装置涉及对应所输入的值而输出某值的观测目标系统,是用于求出所述观测目标系统输出某输出值的条件的逆模型计算装置,具有将输入所述观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值作为时间序列数据进行记录的时间序列数据记录部;用所述时间序列数据生成用于算出未来时刻的输出值的判定树的判定树生成部;将具有以所述未来时刻的输出值作为初始条件进行输入并将输入后的输出值作为被说明变量的值的叶节点从所述判定树进行检测,将对应从所述判定树的根节点到所述检测到的叶节点的路径的规则中包含的说明变量的条件作为用于得到所述输出值的条件进行获取的条件获取部;条件判定部,该部的作用是:判定所述获取到的条件是过去时刻的条件还是未来时刻的条件,当为过去时刻的条件时,用所述时间序列数据和所述获取到的条件进行所述获取到的条件的真伪判定,当为未来时刻的条件时,判定是输入条件还是输出条件,是输入条件时,将所述获得到的条件作为用于获得所述输出值的必要条件进行输出,是输出条件时,将所述获得到的条件作为所述未来时刻的输出值输出到所述条件获取部。

本发明的一个实施例的逆模型计算装置涉及对应所输入的值而输出某值的观测目标系统,是用于求出所述观测目标系统输出某输出值的条件的逆模型计算装置,具有将输入所述观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值作为时间序列数据进行记录的时间序列数据记录部;用所述时间序列数据生成用于算出未来时刻的输出值的、对应从根节点至叶节点的路径包含的说明变量的条件和被说明变量的值的规则的判定树的判定树生成部;将具有以所述未来时刻的输出值作为被说明变量的值的规则从所述判定树进行检测的第1规则检测部;当有关所述检测到的规则的一部分时刻带的说明变量的条件同所述时间序列数据匹配时,用所述检测到的规则及所述时间序列数据算出用于得到所述未来时刻的输出值的条件的第1条件算出部;规则输入后,将有关所述输入后的规则的一部分时刻带的说明变量的条件进行匹配的规则从所述判定树进行检测的第2规则检测部;当根据所述第1规则检测部检测到的规则同所述时间序列数据不匹配时,将根据所述第1规则检测部检测到的规则输入所述第2规则检测部的第1输入部;当有关根据所述第2规则检测部检测到的规则的一部分时刻带的说明变量的条件同所述时间序列数据不匹配时,将根据所述第2规则检测部检测到的规则输入所述第2规则检测部的第2输入部;当根据所述第2规则检测部检测到的规则同所述时间序列数据匹配时,用根据所述第1及第2规则检测部检测到的全部规则及所述时间序列数据算出用于得到未来时刻的输出值的条件的第2条件算出部。

本发明的一个实施例的逆模型计算方法涉及对应所输入的值而输出某值的观测目标系统,是用于求出所述观测目标系统输出某输出值的条件的逆模型计算方法,将输入所述观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值作为时间序列数据进行记录;用所述时间序列数据生成用于算出未来时刻的输出值的判定树;将具有以所述未来时刻的输出值作为被说明变量的值的叶节点从所述判定树进行检测,并将对应从所述判定树的根节点到所述检测到的叶节点的路径的规则中包含的说明变量的条件作为用于得到所述输出值的条件进行获取。

本发明的一个实施例的逆模型计算方法涉及对应所输入的值而输出某值的观测目标系统,是用于求出所述观测目标系统输出某输出值的条件的逆模型计算方法,将输入所述观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值进行记录;用所述时间序列数据生成用于算出未来时刻的输出值的判定树;将所述未来时刻的输出值作为初始条件进行输入;将具有以输入后的输出值作为被说明变量的值的叶节点从所述判定树进行检测,将对应从所述判定树的根节点到所述检测到的叶节点的路径的规则中包含的说明变量的条件作为用于得到所述输出值的条件进行获取;判定所述获取到的条件是过去时刻的条件还是未来时刻的条件,当为过去时刻的条件时,用所述时间序列数据和所述获取到的条件进行所述获取到的条件的真伪判定,当为未来时刻的条件时,判定所述获取到的条件是输入条件还是输出条件,是输入条件时,将所述获得到的条件作为用于得到所述输出值的必要条件进行输出,是输出条件时,将所述获得到的条件作为所述未来时刻的输出值,将具有此未来时刻的输出值作为被说明变量的值的叶节点从所述判定树进行检测,并将对应从所述判定树的根节点到所述检测到的叶节点的路径的规则中包含的说明变量的条件作为用于得到所述输出值的条件进行获取。

本发明的一个实施例的逆模型计算方法涉及对应所输入的值而输出某值的观测目标系统,是用于求出所述观测目标系统输出某输出值的条件的逆模型计算方法,将输入所述观测目标系统的时间序列的输入值和从所述观测目标系统输出的时间序列的输出值作为时间序列数据进行记录;用所述时间序列数据生成用于算出未来时刻的输出值的、对应从根节点到叶节点的路径包含的说明变量的条件和被说明变量的值的规则的判定树;将具有以所述未来时刻的输出值作为被说明变量的值的规则从所述判定树进行检测;当有关所述检测到的规则的一部分时刻带的说明变量的条件同所述时间序列数据匹配时,用所述检测到的规则及所述时间序列数据算出用于得到所述未来时刻的输出值的条件;当不匹配时,将有关所述检测到的规则的一部分的时刻带的说明变量的条件进行匹配的规则重新从所述判定树进行检测,当有关所述新检测到的规则的一部分的时刻带的说明变量的条件同所述时间序列数据不匹配时,将有关所述重新检测到的规则的一部分的时刻带的说明变量的条件进行匹配的规则再次从所述判定树进行检测;至检测到有关所述时间序列数据和一部分时刻带的说明变量的条件进行匹配的规则为止,将检测到的有关规则的一部分的时刻带的说明变量的条件进行匹配的规则从所述判定树进行检测的工作重复进行到底。当检测到有关所述时间序列数据和一部分时刻带的说明变量的条件进行匹配的规则时,用从所述判定树检测到的全部规则及所述时间序列数据算出用于得到未来时刻的输出值的条件。

附图说明

图1为表示本发明实施例1的逆模型计算装置的结构的框图;

图2所示为观测目标系统中输入输入序列、输出输出序列的形式图;

图3所示为由输入观测目标系统后的变量X1、X2的输入序列和从观测目标系统4输出的变量Y的输出序列组成的时间序列数据的表格形式的图;

图4所示为根据图3的时间序列数据生成的判定树的图;

图5所示为由变量X1、X2的输入序列和变量Y的输出序列组成的时间序列数据的表格形式的图;

图6所示为将图5的变量Y作为被说明变数、将变数X1、X2作为说明变数、将图5的时间序列数据一一进行替换后的数据的表;

图7所示为逆模型计算装置的处理步骤的流程图;

图8所示为子程序A的处理步骤的流程图;

图9为表示本发明实施例2的逆模型计算装置的构成的框图;

图10所示为图9的逆模型计算装置的处理步骤的流程图;

图11所示为子程序B的处理步骤的流程图;

图12所示为本发明实施例3的逆模型计算装置的处理步骤的流程图;

图13所示为图3所示的时间序列数据的后续部分的表;

图14所示为成为分析对象的时间序列数据的图;

图15所示为将图14的时间序列数据一一替换后的数据的表;

图16所示为根据图15的表建构的判定树的图;

图17为将规则(1)~(13)以表形式表达的图;

图18为说明逻辑推理的图;

图19所示为将规则(10)和规则(4)组合后进行逻辑推理的形式图;

图20所示为本发明实施例4的逆模型计算装置的处理步骤的流程图;

图21所示为子程序C的处理步骤的流程图;

图22所示为子程序D的处理步骤的流程图;

图23所示为子程序E的处理步骤的流程图;

图24所示为应用了图1的逆模型计算装置后的逆模型计算机系统结构的框图;

图25所示为执行本发明实施例的判定树合成方法的判定树合成装置的结构的框图;

图26所示为另一例判定树合成装置的框图;

图27所示为一例观测数据的表;

图28为用于生成一个判定树所用的数据;

图29所示为生成后的判定树1及判定树2的例图;

图30所示为执行合成方法1的处理顺序的流程图;

图31所示为说明变量值的序列例表;

图32所示为一个事例的表;

图33所示为执行合成方法2的处理顺序的流程图;

图34所示为步骤S1011的处理顺序的详细的流程图;

图35所示为路径组的例图;

图36所示为连结2个路径后的状态的图;

图37所示为省略了连结路径重复后的路径(合成路径)的图;

图38所示为生成后的16个合成路径的图;

图39所示为步骤S1012的处理顺序的详细的流程图;

图40所示为生成过程中的判定树的图;

图41所示为生成过程中的判定树的图;

图42所示为生成过程中的判定树的图;

图43所示为生成过程中的判定树的图;

图44所示为判定树1及判定树2合成后的判定树的图;

图45所示为执行合成方法3的处理顺序的流程图;

图46所示为生成过程中的判定树的图;

图47所示为生成过程中的判定树的图;

图48所示为判定树1及判定树2合成后的判定树的图;

图49为说明合成判定树的最左边路径的精度的图。

具体实施方式

(实施例1)

图1为表示本发明实施例1的逆模型计算装置8的结构的框图。

时间序列数据记录部1将输入观测目标系统后的时间序列输入值的输入序列和从此观测目标系统输出的时间序列输出值的输出序列作为时间系列数据(观测数据)进行记录。

图2所示为观测目标系统4中输入变量X的输入序列、输出变量Y的输出序列的形式图。

图3所示为由输入观测目标系统4后的变量X1、X2的输入序列和从观测目标系统4输出的变量Y的输出序列组成的时间序列数据的表格形式的图。如图3所示,此观测目标系统4可由二元的输入序列输出一元的输出序列。

图1的判定树生成部2用时间序列数据记录部1中存储的时间序列数据生成由输入序列推测输出序列的判定树。

图4所示为根据图3的时间序列数据生成的判定树的图。

此判定树可从到达时刻t的变量X1的输入序列预测时刻t的输出Y(t)。此判定树中,只示出二个变量X1,X2的输入序列中变量X1的输入序列,没示出变量X2的输入序列。即,此观测目标系统4只能以变量X1的输入序列预测输出Y。这样,以判定树生成模型,具有减少预测用输入变量的作用。判定树具有多个规则,各规则与判定树从根节点向叶节点的路径相对应。即,判定树只包含叶节点数目的规则。

在此,作为判定树的具体生成方法可采用已知的方法。下面就判定树的生成方法做简单地说明。

图5所示为由变量X1、X2的输入序列和变量Y的输出序列组成的时间序列数据的表格形式的图;

首先,将已知的方法应用于此时间序列数据并替换此时间序列数据。

图6所示为将图5的变量Y作为被说明变数、将变数X1、X2作为说明变数对图5的时间序列数据一一进行替换后的数据的表。

接着,对应图6的数据,使用非专利文献1(J.Ross Quinlan,C4.5:Programsfor Machine Learning,Morgan Kaufmann Publishers,Inc.,1993)中所述的方法。由此可生成用于从输入序列预测输出的判定树。

返回图1,条件检索部3通过从由判定树生成部2生成的判定树的叶节点向根节点查找枝,进行用于得到赋予的未来时刻输出值所需条件的检索。例如,图4中,当作为未来时刻的输出赋予输出Y(10)=3时,条件检索部3将对应此输出3的叶节点在判定树中加以特定,通过从此叶节点到根节点的查找,检测出X1(10)>=2,X1(8)<1。即,将输出3在叶节点所具的规则加以特定,将此规则包含的条件作为用于得到输出3的必要条件进行获取。

接着,就图1的逆模型计算装置8的处理步骤进行说明。

图7所示为逆模型计算装置8的处理步骤的流程图。

首先,判定树生成部2用根据时间序列数据记录部1记录的时间序列数据生成判定树(步骤S1)。

接着,用无图示的数据输入装置等对应条件检索部3赋予未来时刻的输出值(Y(t)=V)(输出条件)(步骤S2)。

条件检索部3将此输出条件作为目标条件执行子程序A(步骤S3)。

图8所示为子程序A的处理步骤的流程图。

首先,条件检索部3在判定树中检索同目标值(=V)一致的叶节点(步骤S11)。

当没有同目标值一致的叶节点时(步骤S12的NO),条件检索部3将不能检索用于得到目标值的条件的命令,即:不能得到目标值的命令(FALSE)进行输出(步骤S13)。

另一方面,当有同目标值一致的叶节点时(步骤S12的YES),条件检索部3从检索到的叶节点向根节点查找,将用于得到目标值所需的条件加以特定并输出(步骤S14)。

在此,作为具体例,用图4的判定树将用于在时刻100上得到目标值3所需的条件进行检索。

图4判定树中,将形成目标值=3的叶节点进行检索。其结果,可检索同目标值=3一致的叶节点(Y(t)=3)(步骤S11、步骤S12的YES)。作为t=100,将此叶节点向根节点(X1(t))查找,得到X1(98)<1且X1(100)>=2的条件(步骤S14)。

接着,就应用了图1的逆模型计算装置8后的逆模型计算系统的一例进行说明。

图24所示为应用了图1的逆模型计算装置8后的逆模型计算机系统结构的框图。

输入序列生成部6将赋予观测目标系统4的变量X的输入序列以预定的算法生成。观测目标系统4基于变量X的输入序列生成变量Y的输出序列。逆模型计算装置8从观测目标系统4获得输入序列及输出序列。逆模型计算装置8执行所述的处理,算出用于得到赋予的未来时刻输出值的输入条件,将算出的输入条件输出到输入序列生成部6。输入序列生成部6按照输入的输入条件生成输入序列。

以上就装入了图1的逆模型计算装置8后的逆模型计算机系统进行了说明,而以下将说明的第2~第5实施例中的逆模型计算装置也与本实施例一样,能装入图24的逆模型计算机系统。

如上所述,根据本实施例,作为模型生成判定树,再用此判定树算出用于得到赋予的未来时刻的输出值所需的输入条件,因此可减少计算量,还可排除对输出无影响的输入变量值的计算。

另外,根据本实施例,作为模型生成判定树,因此即使观测目标系统的非线性很强时,也能提高模型的精度。

(实施例2)

实施例1所示为使用了判定树后的逆方向计算的典型实例,被检索条件实际上是否能成立尚不可知。本实施例就包含检索到的条件成立的可能性判断的逆向计算进行说明。

图9所示为本发明实施例2的逆模型计算装置的构成的框图。

有关时间序列数据记录部1、判定树生成部2、条件获取部3,因与实施例1相同,故不赘述。

条件判断部5在由条件获取部3检索到的条件内包含输出条件时,以此输出条件为目标,再次由条件获取部3进行检索。条件判断部5重复进行此处理,至将用于得到赋予的输出值的条件作为所有输入条件进行获取为止。

下面,就图9的逆模型计算装置的处理步骤进行详细说明。

图10所示为图9的逆模型计算装置的处理步骤的流程图。

首先,判定树生成部2用根据时间序列数据记录部1记录的时间序列数据生成判定树(步骤S21)。

接着,用无图示的数据输入装置等对应条件判定部5赋予未来时刻的输出值(赋予目标条件)(步骤S22)。

接着,条件判定部5生成存储了此目标条件的目标目录(步骤S23)。目标目录具有例如「Y(100)=3,Y(101)=1,Y(102)=2,…」(在时刻100输出3,时刻101输出1,时刻102输出2…)的形式。另一方面,条件判定部5将存储的检索到的输入条件的输入序列目录另做考虑,将此输入序列目录清空(步骤S23)。

在此状态中,条件判定部5执行子程序B(步骤S24)。

图11所示为子程序B的处理步骤的流程图。

首先,条件判定部5判断目标目录是否为空(步骤S31)。

条件判定部5在目标目录不空时(步骤S31个的NO),从目标目录取出1个项目(步骤S32)。例如,从前述的目标目录「Y(100)=3,Y(101)=1,Y(102)=2,…」中取出目标条件「Y(100)=3」。此时,目标目录的项目减1,变成「Y(101)=1,Y(102)=2,…」。

条件判定部5判断取出的项目是否为过去的条件(步骤S33)。假如当前时刻为10,目标条件「Y(1)=2」就为过去的条件。

条件判定部5判断取出的项目是过去的条件时(步骤S33的YES),用过去时间序列数据对取出项目的真伪进行判定(步骤S34)。即,判断取出的项目是否同过去的时间序列数据一致。

条件判定部5为伪,即:取出的项目同过去的时间序列数据不一致时(步骤S34的伪),将不能得到赋予的输出值的命令(FALSE)进行输出(步骤S35)。

另一方面,条件判定部5为真,即:取出的项目同过去的时间序列数据一致时(步骤S34的真),返回步骤S31。

上述步骤S33中,取出的项目不是过去的条件,即:是未来的条件时(步骤S33的NO),条件判定部5进行该项目是输入条件及输出条件的哪一个的判断(步骤S36)。

条件判定部5在取出的项目为输出条件时(步骤S36的输出条件),将该输出条件作为目标条件,在条件获取部3执行图8所示的子程序A(步骤S37)。即:条件判定部5将用于形成其目标条件所需的条件的检索依赖于条件获取部3。例如:条件判定部5当从上述目标目录取出的项目「Y(100)=3」为未来条件时,将「Y(100)=3」作为目标条件在条件获取部3执行子程序A。条件判定部5从条件获取部3取得检索结果。

条件判定部5从条件获取部3取得的检索结果为FALSE时(步骤S38的YES),即:当具有目标条件中的目标值的叶节点不存在于判定树中时,将不能得到赋予的未来时刻的输出值的命令(FALSE)进行输出(步骤S35)。

另一方面,条件判定部5从条件获取部3取得的检索结果不为FALSE时(步骤S38的NO),即:当从条件获取部3作为检索结果取得用于形成目标条件的条件(输入条件或输出条件,或输入条件及输出条件)时,将此条件作为目标条件追加入目标目录中(步骤S39)。

上述步骤S36中,取出项目为输入条件时(步骤S36的输入条件),条件判定部5将此输入条件加入输入序列目录(步骤S40)。输入序列目录具有例如「X1(100)=2,X1(101)=3,X2(100)=1…」的形式。

而后,条件判定部5返回步骤S31,重复上述说明的各项处理。从而,条件判定部5在目标目录清空后(步骤S31的YES),将输入序列目录内存储的输入条件作为用于得到赋予未来时间的输出值的必要条件进行输出(输出TURE)(步骤S41)。

如上所述,根据本实施例,当检测到的条件为过去的条件时,将此条件同过去的时间序列数据相对照并进行真伪判定,同时,检测到的条件为未来的输出条件时,因为进行了递归式检索,能够将赋予的未来时刻的输出值的成立可能性进行判断,同时,为可能时,能够将用于得到其输出值的条件作为输入条件。

(实施例3)

本实施例就能否将赋予的未来时刻的输出值最短在当前时刻的什么时刻后获得进行说明。

本实施例的逆模型计算装置的结构与实施例2所示的图9基本相同。但本实施例中条件判定部5的处理与实施例2不同。

下面就本实施例的逆模型计算装置进行说明。

图12所示为本发明实施例3的逆模型计算装置的处理步骤的流程图。

首先,判定树生成部2用由时间序列数据记录部1记录的时间序列数据生成判定树(步骤S51)。

接着,用无图示的数据输入装置等对条件判定部5赋予未来时刻的输出值V(赋予目标条件)(步骤S52)。

接着,条件判定部5将初始值0代入时刻t(步骤S53)。初始值将在上述时间序列数据中输出值存在的最后时刻(例如在时间序列数据中存在时刻1~8的输入值及输出值,以及只有时刻9的输入值时,最后时刻为8)进行代入。在此,为简化说明起见,初始值代入0。

接着,条件判定部5将t+1代入时刻t。即:将时刻t增加1(步骤S54)。此「1」为输入观测目标系统的输入序列的输入间隔时间。

接着,条件判定部5进行时刻t是否比既定值更大的判断(步骤S55)。

条件判定部5当时刻t比既定值更大时(步骤S55的YES),将赋予的输出值V不能在规定时间内得到的命令进行输出(步骤S56)。

另一方面,条件判定部5在时刻t小于既定值时(步骤S55的NO),则将目标目录及输入序列目录清空(步骤S57),将目标条件“Y(t)=V”(在时刻t输出V)加入目标目录。

条件判定部5在将目标条件“Y(t)=V”加入目标目录后,执行所述的子程序B(参见图11)(步骤S59)。

条件判定部5执行子程序B的结果为FALSE时(步骤S60的YES),即:不能算出形成Y(t)=V的输入条件时,对时刻t再加1(步骤S54),重复进行上述的处理(步骤S55~S59)。

另一方面,条件判定部5执行子程序B的结果不为FALSE时(步骤S60的NO),即:能够算出形成Y(t)=V的输入条件时,则将输入条件及时刻t的值进行输出(步骤S61)。

以上说明的逆模型计算装置的处理步骤再用具体实例加以说明。

图13所示为图3的时间序列数据的后续部分的表。但图示省略了有关变量X2的部分。

得到至时刻16的变量X1的输入值和变量Y的输出值、及时刻17的变量X1的输入值。

在此,以“逆模型计算装置算出下一输出值为3是何时刻(Y(t)=3)”为例进行说明。

首先,判定树生成部2用图3及图13的时间序列数据生成判定树(可生成与图4相同的树)(图12的步骤S51)。接着,经无图示的输入装置将目标条件(Y(t)=3)输入条件判定部5(步骤S52)。

条件判定部5将16代入时刻t(步骤S53)。即:将输出值存在的最后时刻代入t。

条件判断部5将时刻t加1变成17(步骤S54)。

条件判定部5进行时刻t是否比既定值更大的判断(步骤S55)。在此,条件判定部5判断t小于既定值(步骤S55的NO),并将目标目录及输入序列目录清空(步骤S57)。

条件判定部5将目标条件“Y(17)=3”加入目标目录(步骤S58),执行图11的子程序B(步骤S59)。条件判定部5判断执行结果为FALSE(步骤S60的YES)。

即:如图4的判定树所示,若要形成Y(17)=3,必须满足X1(15)<1,X1(17)>=2(子程序B的步骤S31、S32、S33、S36、S37、S38的NO、S39)。但如图13所示,因在时刻15中X1为2,不满足上述的X1(15)<1(继步骤S39后步骤S31、S32、S33、S34的伪)。于是,条件判定部5判断在时刻17上输出值不能得Y=3(继步骤S34后步骤S35)。

其结果,条件判定部5如图12所示返回步骤S54,将t加1变为18。从而,经步骤S57、S58,再次执行子程序B(步骤S59)。在此,条件判定部5仍然判断执行结果为FALSE(步骤S60的YES)。

即:t=18时,如图4的判定树所示,若要形成Y(18)=3,必须满足X1(16)<1,X1(18)>=2(子程序B的步骤S31、S32、S33、S36、S37、S38的NO、S39)。但如图13所示,因在时刻16中X1为3,不满足X1(16)<1(继步骤S39后步骤S31、S32、S33、S34的伪)。于是,条件判定部5判断在时刻18上输出值不能得Y=3(继步骤S34后步骤S35)。

其结果,条件判定部5如图12所示返回步骤S54,将t加1变为19。从而,经步骤S57、S58,再次执行子程序B(步骤S59)。在此,条件判定部5仍然判断执行结果为FALSE(步骤S60的YES)。

即:t=19时,如图4的判定树所示,若要形成Y(19)=3,必须满足X1(17)<1,X1(19)>=2(图11的步骤S31、S32、S33、S36、S37、S38的NO、S39)。但如图13所示,因在时刻17中X1为3,不满足X1(17)<1(继步骤S39后步骤S31、S32、S33、S34的伪)。于是,条件判定部5判断在时刻19上输出值不能得Y=3(继步骤S34后步骤S35)。

其结果,条件判定部5如图12所示返回步骤S54,将t加1变为20。从而,经步骤S57、S58,再次执行子程序B(步骤S59)。条件判定部5判断执行结果不为FALSE(步骤S60的NO)。

即:t=20时,如图4的判定树所示,若要形成Y(20)=3,必须满足X1(18)<1,X1(20)>=2(图11的步骤S31、S32、S33、S36、S37、S38的NO、S39)。这二个输入条件都是未来的条件(继步骤S39后步骤S31、S32、S33的NO)。于是,条件判定部5将这二个输入条件加入输入序列目录(继步骤S33后步骤S36的输入条件、S40)。条件判定部5将输入序列目录内的输入条件及此时的时刻t的值20进行输出(继步骤S40后步骤S31的空、S41、图12的步骤S60的NO、S61)。

如上所述,根据本实施例,使未来时刻t的值依次增加,为了检索用于得到赋予的输出值的输入条件,能够算出可在距当前时刻最短的什么时刻后获得赋予的输出值。

(实施例4)

本实施例通过采用判定树中包含的多个规则(从根节点向叶节点的路径)和时间序列数据进行逻辑推理,算出用于得到赋予的未来时刻的输出值的输入条件。

本实施例中的逆模型计算装置的结构与实施例2及实施例3中图9所示的装置相同。但是,本实施例中条件获取部3及条件判定部5的处理内容与实施例2及实施例3不同。

下面就本实施例进行详细说明。

图14所示为成为分析对象的时间序列数据的图。

将此时间序列数据一一进行替换,时间t中的Y作为被说明变量,时间t-2~t的X和时间t-1、t-2的Y作为说明变量。

图15所示为将图14的时间序列数据一一替换后的数据的表。

对此表应用已知的方法生成判定树。图16所示为根据图15的表生成的判定树的图。此判定树可由判定树生成部2生成。

条件获取部3从此判定树的根节点查找向叶节点的枝,获得下列13个规则(路径)。

(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

在这些规则中,「A,B,C→D」意为:若A和B和C成立的话,则D成立。

例如规则(1)意为:若时刻1前的输出为小于4,时刻2前的输出为小于5,当前的输入为0,时刻1前的输入为0的话,则当前的输出预期为6。

在此想确定的是,若要在图14的时间序列数据中的时刻24之后的时刻得到Y=6的话,何时赋予怎样的输入为好(输入条件)。

本实施例中,为了确定这一输入条件,采用图14的时间序列数据和上述规则(1)~(13)进行逻辑推理。此逻辑推理通过条件判定部5执行。下面就此逻辑推理进行说明。

图17为将规则(1)~(13)以表形式表达的图。

图18为说明逻辑推理的图。

如图18所示,逻辑推理是边将时间序列数据的至少下端(最后的时刻)与规则相重合,边预测时间序列数据的下一时刻之后如何变化的过程。

图18的例中,用图14的时间序列数据和规则(9)进行逻辑推理。具体地说,首先,时间序列数据的时刻23中的Y值为4,规则(9)中的时刻T-2的输出为「小于5」,因此二者匹配。另外,时间序列数据的时刻23中的X的值为1,规则(9)中的时刻T-2的输入为1,因此二者匹配。进而,时间序列数据的时刻24中的Y的值为5,规则(9)中的时刻T-1的输出为「大于5」,因此二者也匹配。从而,当以时刻25(=T)作为X并赋予0时,预期Y成为5。

此例中可匹配的时刻带(单一化时刻带)是2时刻。即:单一化的时刻带是时间序列数据中的时刻24、25、规则中的T-2、T-1的2时刻。但很自然,单一化的时刻带会因规则中包含的时刻带的大小有所不同。若规则的时刻带为T-10~T的话,相当于T-10~T-1的10个时刻带。

用此逻辑推理,将用于在图14中时刻24之后的时刻得到Y=6的输入条件进行判定。

首先,当在图17的规则(1)~(13)中选择Y(T)为6的规则时,得到规则(1)(4)(7)(11)。

接着,测试这些规则(1)(4)(7)(11)是否与图14所示的时间序列数据匹配。

在规则(1)中,当规则(1)的时刻T-2、T-1与时间序列数据的时刻23、24对应关联时,时刻24中的Y=5不满足时刻T-1中的Y<=4。于是,规则(1)与时间序列数据不匹配。

在规则(4)中,当规则(4)的时刻T-2、T-1与时间序列数据的时刻23、24对应关联时,同样,时刻24中的Y=5不满足时刻T-1中的Y<=4。于是,规则(4)与时间序列数据不匹配。

规则(7)(11)也同样,测试结果这些规则的任意一个都与时间序列数据不匹配。

于是,接着将这些规则组合后进行逻辑推理。

此时,以基本循环方式进行规则组合。作为结果,通过将规则(10)与规则(4)进行组合,可以确定Y=6时的输入条件。在进行规则组合时规则的选择方式载于情報处理学会誌Vol.25,No.12,1984等。

图19所示为将规则(10)和规则(4)组合后进行逻辑推理的具体形式图。

如图19所示,当将规则(4)的时刻T-2、T-1与规则(10)的时刻T-1、T对应关联时,得知它们匹配。另外,当将规则(10)的时刻T-2、T-1与时间序列数据的时刻23、24对应关联时,得知它们也匹配。

由此,当在时刻25中,作为输入,赋予X=1时,可由规则(10)输出Y=4,进而,当在时刻26中,作为输入,赋予X=1时,预期可由规则(4)输出Y=6。

接着,就本实施例的逆模型计算装置的处理步骤进行说明。

图20所示为逆模型计算装置的处理步骤的流程图。

首先,判定树生成部2用时间序列数据记录部1中记录的时间序列数据生成判定树(步骤S71)。

接着,对条件判定部5赋予未来时刻的输出值V(赋予输出条件)(步骤S72)。

条件判定部5将目标目录及输入序列目录清空(步骤S73),将输出条件“y(t)=V”作为目标条件加入目标目录(步骤S74)。

条件判定部5执行后述的子程序C(步骤S75)。

条件判定部5当子程序C的执行结果为FALSE时(步骤S76的YES),输出不能将赋予的输出值V在规则时间内得到的命令(步骤S77)。

另一方面,条件判定部5当子程序C的执行结果为TRUE时(步骤S76的NO),将在子程序C中取得的输入序列目录的内容(输入条件及时刻t的值)进行输出(步骤S78)。

图21所示为子程序C的处理步骤的详细流程图。

首先,条件判定部5将重复次数i初始化(例如i=0)(步骤S81),再将重复次数i进行增量(i=i+1)(步骤S82)。

接着,条件判定部5进行重复次数i是否大于既定值的判断(步骤S83)。

条件判定部5在重复次数i大于既定值时(步骤S83的YES),输出不能得到赋予的输出值V的命令(FALSE)(步骤S84)。

另一方面,条件判定部5在重复次数i小于既定值时(步骤S83的NO),进行与时间序列数据匹配的规则是否存在于目标目录中的判断(步骤S85)。

在当前时刻,因为目标目录中未存储规则,所以条件判定部5作出:“在此未存在那样的规则”的判断(步骤S85的NO),再从目标目录中取出1个项目(步骤S86)。

条件判定部5进行“取出的项目是输出条件及规则的哪一个”的判断(步骤S87)。

条件判定部5判断取出的项目是输出条件后(当前时刻与此相符)(步骤S87的输出条件),将该项目作为目标条件使条件获取部3执行子程序A,从条件获取部3获取检索结果(叶节点中包含的目标条件值的规则)(步骤S88)。例如,图16中,将输出值V定为5时,通过子程序A可得到5个规则(2)(5)(6)(9)(13),输出值V定为6时,可得到4个规则(1)(4)(7)(11)。

条件判定部5在检索结果为FALSE时(步骤S89的YES),输出不能得到赋予的输出值V的命令(FALSE)(步骤S84)。

另一方面,条件判定部5在检索结果不为FALSE时(步骤S89的NO),通过条件获取部3将规则加入目标目录中(步骤S90)。

接着,条件判定部5将重复次数i进行增量(步骤S82),当判断重复次数i不大于既定值时(步骤S83的NO),再进行目标目录内的规则中是否存在与时间序列数据匹配的条件的判断(步骤S85)。图17中,当输出值V定为5时,规则(2)(5)(6)(9)(13)中的规则(9)(13)如图14所示与时间序列数据进行匹配。此时,条件判定部5判断为匹配规则存在(步骤S85的YES)。条件判定部5基于匹配的规则和时间序列数据将输入条件及时刻t加以特定并追加入输入序列目录(步骤S91)。此处将X(25)=0(规则(9))、X(25)=1(规则(13))及时刻t=25追加输入序列目录(步骤S91)。

另一方面,步骤S85中,当不存在与时间序列数据匹配的规则时(步骤S85的NO),从目标目录取出1个项目(步骤S86)。例如,图17中,将输出值V定为6时的规则(1)(4)(7)(11)因与时间序列数据不匹配,所以将这些项目(规则)中的1个从目标目录内取出。此处,例如取出规则(4)(步骤S87的规则)。

条件判定部5使条件获取部3判断是否存在与取出的规则(目标规则)匹配的规则(步骤S92)。

条件判定部5在该规则存在时(步骤S92的YES),将该规则与上述目标规则一起追加到临时存储目录中(步骤S93)。图17中输出值V为6时,作为与规则(4)匹配的规则,因有规则(10)、(13),所以临时存储目录中可存储作为目标规则的规则(4)和与规则(4)匹配得到的规则(10)(13)。

条件判定部5进行临时存储目录内得到的规则是否与时间序列数据相匹配的判断(步骤S94)。如上例中,进行规则(10)或规则(13)是否与时间序列数据相匹配的判断。

条件判定部5在匹配的规则存在时(步骤S94的YES),基于该匹配规则及目标规则,将输入条件及时刻t加以特定并追加到输入序列目录中(步骤S96)。如上例中,基于规则(10)将X(25)=1作为输入条件加以特定;基于规则(4)将X(26)=1作为输入条件加以特定,将这些输入条件与时刻t=26一起追加到输入序列目录中(步骤S96)。

条件判定部5判断目标目录是否为空(步骤S97),为空时(步骤S97的YES),结束子程序C,不空时(步骤S97的NO),将临时存储目录清空并返回步骤S82。

上述步骤S94中,临时存储目录内检索到的规则与时间序列数据不匹配时(步骤S94的NO),条件判定部5将此不匹配的规则作为目标规则,再次执行步骤S92、S93。若检索到与此目标规则匹配的规则的话(步骤S92的YES),将其追加到临时存储目录中(步骤S93)。另一方面,若没检索到规则的话(步骤S92的NO),则将临时存储目录清空(步骤S95)并返回步骤S82。

如上所述,根据本实施例,通过将从判定树得到的规则进们时间性追溯并加以组合,可预期在短时间内算出用于得到赋予了输出值的条件。

(实施例5)

上述实施例4中,将规则之间的匹配及规则与时间序列数据的匹配的时刻带,即:将单一化时刻带作为除去当前时刻T的全时刻带。实施例4的单一化时刻带为T-2~T-1的二时刻。然而,当规则中包含的时刻带很长时,虽然用除去当前时刻的全时刻带将规则单一化可预期得到高的推理精度,但需要很大的计算量,也有效率低的时候。若能以更短的时刻带实现单一化的话,虽然效率高,但当缩短单一化的时刻带时,又会产生推理精度下降的问题。因此,本实施例通过算出作为单一化时刻带有效的值,再以其值进行单一化,以少的计算量实现高精度的推理。

首先,就单一化时刻带与推理精度的关系进行简要说明。

以上述规则(4)为例进行说明。此规则(4)为「Y(T-1)<=4,Y(T-2)<=5,X(T)=1,X(T-1)=1→Y(T)=6」,意思是当此逻辑式中的左边所有条件(说明变量的条件)成立时,可得出右边的结果(被说明变量的值)。在此规则(4)看来,在Y(T-2)<=5成立而后,作为X(T-1)=1是否为Y(T-1)<=4是不清楚的。换句话说,在规则中,各时刻的Y的值是否在该时刻以前的条件成立时成立是不清楚的。

本实施例先求规则中包含的各时刻的输出条件在该时刻以前的条件成立的场合成立的概率(统计量),再以该概率在大于阈值的最小的时刻带进行单一化。由此能以最少限度的计算量进行高精度的逻辑推理。下面,以规则(4)为例,对此进行更详细的说明。

规则(4)中的各时刻的输出条件在该时刻以前的条件成立的场合成立的概率对照图14的时间序列数据表示如下。

首先,有关Y(T-2)<=5,因为此时刻以前不存在其他条件,故不赘述。

接着,有关Y(T-1)<=4,当Y(T-2)<=5成立时,看一下作为X(T-1)=1是否成立,结果时刻4、13、19、23成立,时刻10、14、18、20、22不成立。于是,Y(T-1)<=4成立的概率为44%(=4/9×100%)。

由此可知,若阈值设定为30%,有关规则(4),以T-2及T-1二时刻带进行单一化为好。

接着,就算出单一化的时刻带并以算出后的时刻带进行处理的步骤进行说明。在此,可以取代图21的步骤S89,执行图22所示的子程序D。

图22所示为子程序D的处理步骤的流程图。

条件判定部5在条件获取部3的检索结果不是FALSE时(步骤S101的NO),有关由条件获取部3获取的各规则,根据时间序列数据记录部1中的时间序列数据,将各时刻上的输出条件在其之前的时刻上的条件成立时成立的概率进行计算(步骤S102)。条件判定部5将大于阈值的最小时刻带作为单一化的时刻带(步骤S102)。条件判定部5将各规则与各规则的单一化时刻带一起加入目标目录(步骤S90)。在进行单一化的步骤S85、S92、S94(参见图21)中,根据算出的时刻带进行单一化。在步骤S92获取了新规则时,同样求出时刻带。

另一方面,条件判定部5在条件获取部3的检索结果是FLASE时(步骤S101的YES),进入步骤S84,输出不会得到赋予的输出值V的命令(FALSE)。

上述步骤S102中分别算出了有关各规则的单一化时刻带,还可以求出全规则共同的时刻带。具体地说,以全规则为目标,算出各时刻中输出条件的成立概率的平均值,再将其平均值的大于阈值的最小时刻带作为各规则共同的时刻带。

为实现此工作,最好在图21的步骤S81与S82之间追加图23所示的子程序E。

也就是说,条件判定部5令条件获取部3获取判定树包括的全规则。条件判定部5以获取的全规则为目标算出各时刻中输出条件的成立概率,再求出各时刻成立概率的平均值。将该值的大于阈值的时刻加以特定,最后将特定时刻之前的时刻带作为各规则共同的单一化时刻带(步骤S112)。从而条件判定部5在图21的步骤S85、S92、S94中使用此共同的时刻带。

如上所述,本实施例中,作为单一化的时刻带采用满足预定精度的最小限的时刻带,因此能够不降低精度,以少数计算量进行处理。另外,本实施例因算出各规则共同的单一化时刻带,能够进一步提高处理效率。

(实施例6)

在控制等领域常有过程输出为多个的情况,并需要进行对其多个输出的逆向计算。也就是说,需要求出将多个输出同时成为某一期望值的输入,例如,有时需要求出某装置的温度和与其相关的另一装置的压力同时成为某一值的输入。

作为第1种方法,有“将多个输出变为一元的评价值,建构对应其一元评价值的模型”的方法。成为一元后,能够建构判定树并用建构的判定树进行逆向计算。

然而,在此方法内必须定义用于变为一元评价值的合适的评价变量,怎样的评价变量为合适,因问题不同答案各异,所以很难合适地定义评价变量。另外,即使能够合适地定义评价变量,也会由于模型建构时针对评价值的变换处理的存在而产生耗费计算时间的问题。

作为第2种方法,有考虑将多个输出的直积(集合)视为1个被说明变量的值,进而建构判定树等模型的方法。

然而,这种方法在观测数据内存在缺少被说明变量的值时则不能利用该部分的数据建构判定树。也就是说,所有被说明变量的值仅有处理中的数据可用于建构判定树。因而,此种方法有可能使可利用的数据大幅度减少。当可利用于建构的数据少时,会对生成的判定树的精度造成不利影响,其判定树将失去作用。

作为第3种方法,有对应多个输出的各输出生成多个判定树,同时用多个判定树进行逆向计算的方法。

然而,此种方法很难或需要很多计算时间。原因是,即使根据某一判定树求出了将某一被说明变量作为预期值的说明变量的值,对其他被说明变量来说,也未必能满足该说明变量的值的条件。

鉴于上述问题,本发明人进行反复地独立的研究,最终掌握了将生成有关各被说明变量的判定树进行合成并将具有这些被说明变量的集合作为被说明变量的合成判定树进行生成的方法。即:此合成判定树在其叶节点上具有将各判定树中的叶节点的值在不同的判定树间进行组合的值。将此合成判定树应用于实施例1~5,可将多个输出同时作为预期值的条件加以算出。下面,就合成判定树的方法进行详细说明。

图25为合成多个判定树的判定树合成装置的结构图。

此判定树合成装置设有数据输入部11;判定树生成部12;判定树合成部13;判定树输出部14。

数据输入部11将含有说明变量的值和被说明变量的值的数据输入判定树生成部12。说明变量的值为诸如机器的操作输入值等,被说明变量的值为随后的机器的输出(如温度、压力)。本数据内可含有多个种类的被说明变量。一般此数据可通过观测、记录等进行收集(参见图2)。

判定树生成部12根据数据中所含的说明变量的值和数据中所含的1个被说明变量的值生成1个判定树。判定树生成部12对各被说明变量进行此生成工作。也就是说,判定树生成部12按被说明变量的数量生成判定树。各判定树在叶节点(末端节点)上具有被说明变量的值,叶节点之外的节点形成说明变量。连结节点间的枝形成说明变量的值。

判定树合成部13将在判定树生成部12生成的多个判定树进行合成,进而生成1个由说明变量的值同时推测多个被说明变量的值的判定树(合成判定树)。此合成判定树将各判定树中叶节点的值(被说明变量的值)在不同的判定树间进行组合后的被说明变量的值的集合存在叶节点中。例如,当判定树1的各叶节点中有y1,y2,y3…yn;判定树2的各叶节点中有值z1,z2,z3…zn时,合成后的判定树的叶节点分别形成(y1,z1),(y1,z2)…(y1,zn),(y2,z1),(y2,z2),…(yn,zn)。通过将此合成判定树作为应用于上述实施例1~5的目标的判定树,能够求出用于同时满足多个被说明变量的值所需的条件。例如,在实施例1中用此合成判定树得到未来时刻的输出值(y2,z1)时,将具有值(y2,z1)的叶节点进行特定,再根据从此叶节点向根节点的查找,能够求出用于获得此值(y2,z1)所需的条件。

判定树输出部14将通过判定树合成部13生成的合成判定树进行输出。输出后的合成判定树可在上述实施例1~5中作为目标的判定树来使用。即:图1及图9的条件获取部3可将此合成判定树作为目标的判定树来使用。

下面以具体实例就图25的装置进行更详细地叙述。

图27所示为一例观测数据的表。

变量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的值对应输出(如材料的温度、压力等)。

首先,从数据输入部11向判定树生成部12输入图27的数据。输入后的数据以适当的形式进行存储。

接着,在判定树生成部12中将每个被说明变量生成判定树。

当从数据输入部11输入的数据为图27所示的数据时,因为被说明变量有2个,所以生成2个判定树。为生成1个判定树(对应被说明变量Y1的判定树)所使用的数据如图28所示。

图28的数据是从图27所示的数据中去掉被说明变量Y2的数据,仅保留被说明变量Y1的数据的情况。

这样,被说明变量仅由1个数据生成判定树的方法可参见《基于AI的数据解析》J.R.Quinlan著,古川康一监译,株式会社凸版(トッパン)1995年发行;《应用2进树解析法》大滝厚,堀江宥治,D.Steinberg著,日科技连1998年发行等。同样,通过生成从图27所示的数据中去掉被说明变量Y1的数据后的数据,也可生成对应被说明变量Y2的判定树。

在此,方便起见,将上述对应各被说明变量Y1、Y2求出的判定树称为「判定树1」「判定树2」。

在此,虽然判定树生成部12仅将被说明变量生成了1个数据(参见图28),但如同表示判定树合成装置的其他例的图26一样,也可将判定树生成部12分为数据整形处理部12a和判定树生成处理部12b,先由一数据整形处理部12a将被说明变量仅生成1个数据,再由判定树生成处理部12b用此数据生成判定树。另外,对应各被说明变量的判定树的生成可顺序进行,也可并行进行。

上述生成各被说明变量的判定树的方式是将被说明变量仅生成1个数据(参见图28),而此种处理是为了简化说明所致,实际处理中也可省略。

图29所示为对应被说明变量Y1、Y2所生成后的判定树1及判定树2的例图。

此判定树1及判定树2的解读法简单说明如下。

判定树1根据被说明变量(叶节点)Y1的值进行事例分类。首先判断X1是否大于4。当X1小于4时,接着判断X3为0或1,判断结果,X3为0时Y1小于2,X3为1时Y1大于5。当X1大于4时也同样进行判断。图中,叶节点中的「2~5」意为「大于2小于5」。

同样,判定树2根据被说明变量(叶节点)Y2的值进行事例分类。首先判断X3为0或1,当X3为0时接着判断X4为0或1。判断结果,X4为0时Y2为A,X4为1时Y2为C。X3为1时也同样进行判断。

此判定树1及判定树2是将已知数据(参见图27)中所含的事例集合进行分类的树,而对于新的数据也能预测被说明变量Y1、Y2的值。

一般,由判定树所做的分类并非要百分之百正确。原因是,有时用于建构判定树的数据内存在矛盾,或有时将极少数存在的事例视为误差及干扰而不对判定树的建构施加影响。将当前得到的数据生成百分之百正确分类的详细的判定树虽然可能,但那样的判定树在实际中用处不大。原因是,那样的判定树连干扰及误差都忠实地表现无遗。加之那样的判定树不过是将当前的数据严密地再现而已,对判定树形的表现修正的必然性差。另外,过于详细的判定树会令使用者难以理解。因此最好生成一种对干扰进行了适当处理的、简洁的判定树。

判定树合成部13将上述的多个判定树进行合成并生成1个判定树。下面将判定树的合成方法的具体例分为3类(合成方法1~3),也可将这些方法组合起来使用。

下面,依次就合成方法1~3进行说明。

(合成方法1)

图30所示为执行合成方法1的处理顺序的流程图。

此合成方法1中,首先生成合适的说明变量的值(说明变量值)的序列(步骤S1001)。所谓说明变量值的序列是指诸如将图27的说明变量X1、X2、X3、X4、X5、X6的值确定后的输入数据。开始时无论怎样的值都可以,因此生成1个序列。在此,生成了图31所示的说明变量值的序列。

接着,将此说明变量值的序列赋予判定树1、2,求出被说明变量的值(步骤S1002、S1003)。即,当将判定树从根节点起顺序查找下去时会到达某一叶节点。该叶节点的值就是被说明变量的值。

具体地说,在判定树1中,首先X1为1,即「≤4」,因此进到左侧的枝,接着X3为0,因此进到左侧的枝,结果便到达称为「<2」的叶节点。另一方,在判定树2中,X3为0,因此进到左侧的枝,接着X4为0,因此进到左侧枝,结果便到达称为「A」的叶节点。

这样,将由各判定树1、2得到的叶节点的值追加到图31的表中,生成1个事例(步骤S1004)。图32所示为生成的1个事例数据。

接着,生成另一说明变量值的序列。虽然此时生成方法也无限制,但最好是不同于前面的生成方法。诸如随机地或将说明变量的值改变顺序等,或将说明变量值的组合收集起来。再将这样生成的序列赋予判定树1、2,得到被说明变量的值,生成事例数据。通过反复进行上述工作,生成事例数据的集合。

用生成的事例数据的集合将2个被说明变量的集合视为是1个被说明变量并生成判定树(步骤S1005)。例如将「<2」和「A」视为是1个被说明变量的值,并生成判定树。判定树生成的方法如前面文献等所示,在此不再赘述。

(合成方法2)

图33所示为执行合成方法2的处理顺序的流程图。

首先,由判定树1、2分别得到从根节点到叶节点的路径(规则),再取得所得路径的全部组合。其结果能生成多个路径的组(路径集合)。然后,将各路径集合中的路径进行连结,从各路径集合生成1个新的路径(合成路径)。由此,得到新的路径的集合(合成路径的集合)(步骤S1011)。

接着,将在步骤S1011得到的合成路径的集合中所含的多个合成路径进行合成,得到1个判定树(步骤S1012)。

下面,就步骤S1011、S1012进行更详细地说明。

首先就步骤S1011进行说明。

图34所示为步骤S1011的处理顺序的详细的流程图。

首先,由判定树1、2分别获得从根节点到叶节点的路径,再将获得的路径在判定树1、2之间进行全面组合,最后获得多个路径的组(多个路径集合)(步骤S1021)。

图35所示为路径组的例图。图35的左侧是连结判定树1(参见图29)的最左边的叶节点和根节点的路径,右侧是连结判定树2的最左边的叶节点和根节点的路径。各路径中不含分支。

这样,将判定树1中所含的各路径和判定树2中所含的各路径依次组合下去。组合的顺序虽可不论,但要收齐全部组合。判定树1中叶节点有5个,判定树2中叶节点有6个,因此路径的组可生成5×6=30个。

这样,在获得略径的组后接着纵向连结各路径的组中的各路径,生成新的路径(连结路径)(图34的步骤S1022)。

图36所示为连结图35所示路径的组后的状态的图。

连结前的各路径中的叶节点(被说明变量)分布在连结路径的末端。其他的节点(说明变量)可纵向连结。图36中判定树1的路径下连结着判定树2,反之亦可。

接着,对此连结路径是否存在矛盾进行检测(图34的步骤S1023)。

所谓矛盾,是指存在重复的说明变量、且其值不相同。例如:连结路径中含有2个以上相同的说明变量(节点),一方为1,另一方为0时即为矛盾。

存在矛盾时(步骤S1023的YES),除去此连结路径(步骤S1024),选择下面的路径组(步骤S1026的YES)。图36中,路径X3虽然有2个,但2个值同为0,所以不存在矛盾。

不存在矛盾时(步骤S1023的NO),将连结路径中所含的重复进行省略处理(步骤S1025)。所谓省略处理,是指连结路径中有多个相同的说明变量(节点)且各说明变量的值相同。因为上述步骤S1023中进行了矛盾检测,所以当前若有多个相同的说明变量的话,其值必然相同,从而存在重复。当存在重复时,从连结路径中去除重复的说明变量(节点)及其枝。其结果,连结路径变短。图36中,连结路径中含有2个X3、且值都为0。因而这是重复。图37所示为由图36的连结路径省略了重复后的路径(合成路径)。

如上所述,对于各路径的组(本例中为30组),进行连结处理(步骤S1022)、矛盾处理(步骤S1024)及重复处理(步骤S1025)。因为有矛盾的连结路径通过矛盾处理(步骤S1024)被去除,所以生成的合成路径变为30个以下。本例中生成6个合成路径。图38所示为生成的16个合成路径。

图38中,各合成路径上部所注的代括号的数值是记述判定树1及判定树2的各路径如何组合的数值。例如(1-2)意为:将含有判定树1中最左侧叶节点的路径与含有判定树2中左起第2个叶节点的路径进行组合。(1-3)、(1-4)等因已被上述矛盾处理(步骤S1024)所去除,所以不存在图38中。各合成路径中节点的配置顺序也可改换为除叶节点(被说明变量)之外的顺序,为便于查看,图38采用X1、X2…式的从小数起顺序配置的方式。

上述矛盾处理(步骤S1024)及重复处理(步骤S1025)的执行顺序反过来也可以,并行执行也可以。届时所得的结果不变。

接着,有关步骤S1012(参见图33)进行详细地说明。

步骤S1012将上述方法生成的合成路径(参见图38)合成后生成1个判定树。

图39所示为步骤S1012的处理顺序的详细的流程图。

首先,将全部的合成路径作为目标(步骤S1031)。本例中以图38所示的16个合成路径作为目标。

接着,判断成为目标的合成路径是否超过2个(步骤S1032)。当前为16个,故进入YES。

接着,求出在成为目标的合成路径的集合中使用最多的说明变量(节点)(步骤S1033)。在此,已知有16个合成路径,是节点X1、X3全部用于合成路径后的最多(各16个)值。当这种最多节点有多个时选择任意1个。在此选择的是节点X1。图38所示的各合成路径是基于判定树1和判定树2生成的,因此,各合成路径必然包含判定树1、2的根结点(本例中为节点X1、X3)。

接着,将求出的节点作为新的判定树的节点连结于新的判定树中选择的枝下(步骤S1034)。但最初的处理(第1个循环)中将该节点作为根节点(步骤S1034)。因而,当前将节点X1作为根节点。

接着,对应该节点获得的值在节点处生成枝(步骤S1035)。获得的值从合成路径的集合中查寻。当将节点X1获得的值从图38所示的合成路径的集合中查寻时,为「≤4」和「4<」。因此,对应节点X1生成「≤4」和「4<」的枝。至此为止的处理生成的生成过程中的判定树如图40所示。

接着,在当前的判定树中选择1个枝(步骤S1036)。在此,选择了图40中左侧的「≤4」的枝。右侧的枝有待后续处理。先选何处的枝都无碍。

接着,将含有从此判定树的根节点到步骤S1036所选枝的路径的合成路径从图38的合成路径的集合中查找并作为目标的合成路径(步骤S1037)。本例中,将含有「X1≤4」的合成路径进行查找并将此合成路径作为目标的合成路径。图38所示的合成路径的集合中含有「X1≤4」的合成路径是最上部的6个合成路径。因此,将此6个合成路径作为目标的合成路径。

接着,返回步骤S1032,查看目标的合成路径是否超过2个。成为目标的合成路径为6个,因此进入YES。

接着,求出在成为目标的合成路径的集合中使用最多的节点(步骤S1033)。但在此所用的步骤S1037中查找成为目标的合成路径时的节点(本例中为节点X1),即:从判定树的根节点到步骤S1036选择的枝的路径中某个节点除外。图38最上部的6个合成路径中除节点X1外,使用最多的节点为X3,因此选择节点X3。

接着,将该节点作为新的判定树的节点连结于步骤S1036选择的枝下(步骤S1034)。步骤S1036选择的枝为图40的左侧的枝,因此其下连结节点X3。

接着,对应该节点获得的值在节点处生成枝(步骤S1035)。如图38最上部所示,节点X3获得的值为「0」和「1」,因该节点X3之下生成「0」「1」的枝。到此为止生成的判定树如图41所示。

接着,在判定树中选择1个枝(步骤S1036)。在此,从节点X3分叉后的枝中选择了左侧的「0」枝。

接着,将含有从此判定树的根节点到步骤S1036所选择的枝的路径的合成路径从图38所示的合成路径的集合(最上部的6个)中查找并作为目标的合成路径(步骤S1037)。步骤S1036中选择的枝是从节点X3分叉后的枝中左侧的「0」枝,因此将含有从根节点到该枝的路径(「X1≤4」「X3=0」)的合成路径从最上部的6个合成路径中查找。图38最上部的左起第1及第2两个合成路径符合此条件。

接着,返回步骤S1032,检查目标的合成路径是否超过2个。目标的合成路径为2个,因此进入YES。

接着,求出在成为目标的合成路径的集合中使用最多的节点(步骤S1033)。但节点X1、X3除外。成为目标的2个合成路径中使用的节点除节点X1、X3外为X4,因此选择X4。

接着,将该节点作为新的判定树的节点连结于步骤S1036选择的枝下(步骤S1034)。步骤S1036选择的枝为图41的左侧的枝(X3=0),因此从节点X3分叉后的「0」的枝下连结节点X4。

接着,对应该节点获得的值在该节点处生成枝(步骤S1035)。节点X4获得的值从图38最上部左起第1、第2个合成路径为「0」和「1」,因此在节点X4的下面生成对应「0」和「1」的枝(参见图42)。

接着,在判定树中选择1个枝(步骤S1036)。在此,选择了从节点X4分叉后的左侧的枝「0」。

接着,将含有从此判定树的根节点到步骤S1036所选择的枝的路径的合成路径从图38所示的合成路径的集合中查找并作为目标的合成路径(步骤S1037)。图38的最上部中成为目标的合成路径只有最左边的合成路径。

接着,返回步骤S1032,检查目标的合成路径是否越过2个,因只有1,所以进入NO。

接着,将此合成路径中的叶节点连结在步骤S1036所选择的枝下并作为新的判定树的叶节点(步骤S1038)。本例中「~2、A」成为新的判定树的叶节点。到此为止生成的判定树如图42所示。

接着,判断判定树中是否有不带叶节点的枝(步骤S1039)。如图42所示,不带叶节点的枝有3个,因此进入YES。

接着,在此判定树中选择1个不带叶节点的枝(步骤S1040)。在此,在图42中选择了「X4=1」的枝。选择的枝只要是不带叶节点的枝哪个都行。

接着,进入步骤S1037,将含有从当前判定树中根节点到由步骤S1040所选的枝的路径的合成路径从图38所示的合成路径的集合中查找并作为目标的合成路径。在此,只有图38最上部左起第2个合成路径符合条件。返回步骤S1032,检查目标合成路径是否超过2个,因为只有1个,所以进入NO。

接着,将此合成路径中的叶节点连结在步骤S1040所选择的枝下并作为新的判定树的叶节点。本例中「~2、C」成为新的判定树的叶节点。到此为止生成的判定树如图43所示。

而后,通过继续同样的处理,最终生成图44所示的将判定树1及判定树2合成后的判定树。

图39的步骤S1033中说,当求成为目标的合成路径的集合中使用最多的节点时若有数量相同的节点,选择哪个都可以。据此,也许会产生“最终获得的判定树迄不就不同了吗?”的疑问,其实最终获得的判定树在意思上是等同的。理由是,即使那个节点在某一时刻未被选择,也肯定会在后续的选择机会中被选择。用双方判定树的叶节点的组合来生成新的判定树的叶节点,因此最终获得的判定树的内容与节点的选择顺序无关。

(合成方法3)

图45所示为执行合成方法3的处理顺序的流程图。

首先,如步骤S1041所示,将判定树1及判定树2各自的根节点作为目标。本例中以节点X1、X3为目标(参见图29)。

接着,将目标的节点在不同的判定树间进行组合后生成节点的集合,将节点的集合作为新的判定树的节点(步骤S1042)。本例中将节点X1、X3的集合作为新的判定树的节点(集合节点)。将该节点写作「X1,X3」。除此集合节点由叶节点组成的场合之外,从各判定树将对应此集合节点的节点进行检测,将检测到的各节点的枝进行组合生成新的枝,将生成后的新枝附加了集合节点。本例中,在判定树1及判定树2中对应节点「X1,X3」的节点为X1、X3。因此,将各节点X1、X3的枝组合后生成新的枝。

也就是说,判定树1的节点X1原有「≤4」「4<」的枝,因为判定树2的节点X3有「0」「1」的枝,所以它们组合后生成「≤4,0」,「≤4,1」,「4<,0」,「4<,1」4组新的枝后附加于节点「X1,X3」。到此为止生成的生成过程中的判定树如图46所示。

接着,检查当前的判定树中是否有不带叶节点的枝(步骤S1043)。如图46所示,因为不带叶节点的枝有4个,所以进入YES。

接着,选择1个不带叶节点的枝(步骤S1044)。在此,例如选择了最左端的枝。而选择哪个枝都行。

接着,检测出对应所选择的枝的判定树1的枝和判定树2的枝,并将连结此枝的节点作为目标进行选择(步骤S1045)。所选择的枝如上所述为图46中最左端的枝,即:「X1≤4、X3=0」的枝。然后,查找与之对应的判定树1的枝「X1≤4」并选择下一节点X3,同样,查找与之对应的判定树2的枝「X3=0」并选择下一节点X4,将这些节点作为目标。

返回步骤S1042,将作为目标的节点进行组合后生成新的节点,将此新的节点追加到新的判定树中。本例中作为目标的节点为X3、X4,因此图46中在最左端的枝下追加节点「X3,X4」。而且与上述方式相同,从该节点起将枝分叉,其结果,追加「0,0」,「0,1」,「1,0」,「1,1」4类枝(步骤S1042)。到此为止生成的判定树如图47所示。因纸面有限,从节点「X3,X4」分叉的枝中,仅在左端的枝上附有对应的值。

接着,检查当前的判定树中是否有不带叶节点的枝(步骤S1043)。仍然是哪个枝都不带叶节点,因此进入YES。

接着,选择1个不带叶节点的枝(步骤S1044)。在此,例如选择了最左端的枝。

接着,特定出对应所选择的枝的判定树1的枝和判定树2的枝,并将连结此枝的节点作为目标进行选择(步骤S1045)。本例中,因为选了图47中最左端的枝,所以将与之对应的连结判定树1的枝「X3=0」的节点「<2」和与之对应的连结判定树2的枝「X4=0」的节点「A」进行选择。

返回步骤S1042,将作为目标的节点进行组合后生成新的节点,将此新的节点追加到新的判定树中(步骤S1042)。本例中「<2,A」作为新的节点被追加。但因为各节点「<2」、「A」为各判定树1、2中的叶节点,所以新生成的节点「<2,A」成为新的判定树的叶节点。因而从节点「<2,A」不生成分叉枝。假如此时一方的节点是原先判定树中的叶节点,另一方的节点不是叶节点的话,则用不是叶节点一方的判定树的信息进一步生成分叉枝。

经过以上反复运行,最终生成图48所示的判定树。

图48因纸面有限,将树的一部份加以放大展示。图48中,含有「×」标记的路径因为有矛盾实际上并不存在,为明了起见加以标记。

以上就合成方法1、2、3进行了说明,而合成方法2与合成方法3是意思等同的判定树。合成方法1根据赋予的数据可能会与通过合成方法2、3得到的判定树有些不同,但若数据的数量多的话就不会有大的差异。

接着,就上述方法生成的判定树的改进方法进行说明。

一般地说,判定树中不仅保留有枝、节点的信息,还有由观测数据生成判定树时算出的各种数据。具体地说,是各说明变量(节点)中的事例数(如:某个说明变量作为其值取得「0」「1」时,「0」时的事例数和「1」时的事例数);使各说明变量中的事例数以被说明变量的值进行分布的数据(如:某个说明变量的值为「0」的事例有100个时,其中被说明变量的值为A的事例有40个,为B的事例有60个等)。进而,利用判定树保留的这些信息,将通过合成方法1~3生成的合成判定树进行评价,将精度低的路径进行截枝等对合成判定树加以改进。

图49为说明合成判定树(参见图48)中最左边路径的评价方法的图。此最左边的路径是将判定树1及判定树2各自的左端的路径组合而成的路径。

图中左侧所示为判定树1的左端路径。成为「X1≤4」且「X3=0」的事例有100个。被说明变量的值为「<2」的事例有70个,「2~5」(2以上5以下)的事例有20个,成为「5<」的事例有10个。即:判定树1的路径的精度为70%(=70/100)。

图中右侧所示为判定树2的左端路径。成为「X3=0」且「X4=0」的事例有90个。被说明变量的值为「A」的事例有80个,为「B」的事例有20个。即:判定树2的路径的精度为80%(=80/100)。

从而,当「X1≤4」且「X3=0」且「X4=0」时,可推测被说明变量的值为「<2,A」的概率70%×80%=56%。

合成判定树的事例数不会大于原先的判定树的事例数。因此,合成判定树的事例数最大为min{判定树1的事例数、判定树2的事例数}。本例中如图49所示,为90个以下。

据此,在合成判定树中,在「X1≤4」且「X3=0」且「X4=0」的情况下一旦推测被说明变量的值为「<2,A」的事例数,就可推测出最大为90个×56%=约50个左右。当此数或概率为一定值以下时,进行截枝、将合成判定树进行改进。

另外,将合成判定树的各路径(规则)应用于已知的观测数据并求出成为规则通道的事例数(或概率),通过求其平均值等还能进行合成判定树总体的评价。另外,还能进行概率性最大的事例数及分布的推定。

以上所示为本发明的一个实施例,而本发明的适用范围不仅限于说明变量相对多个被说明变量或多个判定树为同样的情况,也就是说,上述说明中,为了简单化,如图27所示,采用了相对各被说明变量的说明变量为同样的情况,而当相对Y1的说明变量与相对Y2的说明变量不相同时,本发明依然适用。

然而,当在对各说明变量全无重复时,本发明虽能用,但使用的必要性不大。也就是说,本发明的目的之一是解决求出多个被说明变量为预期值的说明变量的值的逆向计算,而当相对被说明变量的说明变量完全不同时,无论是不合成判定树独立地进行逆向计算还是合成判定树以后再进行逆向计算,对处理内容而言全无差别。相反,在对说明变量存在部分重复时,方能显出本发明的作用。

另外,本实施例中,为了简单化,以合成2个判定树为例进行说明,而判定树在3个以上时,本发明仍然适用。

另外,上述的判定树合成装置除可由硬件构成之外,当然也可将同等的功能由软件来实现。

以上所述为有关判定树的合成方法及判定树的改进方法。根据判定树的生成及由判定树的一般性数据分析,可得出下列优点。

通过从观测数据生成判定树,容易实现模型及知识的一般化。另外,在对变量使用连续性数值的场合,具有适当离散化运行的优点。再有,当生成判定树时,因为可自动地抽出对被说明变量具有影响的说明变量、即重要的说明变量,所以重要的说明变量清楚可见。例如:图27的数据中有说明变量X6,但在判定树1和判定树2中说明变量X6不存在,由此可认为说明变量X6不重要。判定树在赋予使用者对有关数据的认知方面也是有效的模型。另外,判定树能够一边防止对已知数据的适合过度,一边对未知数据进行合适的对应。

如上所述,本实施例中,为了将判定树进行多个合成后生成从说明变量的值同时推测多个被说明变量的值的判定树,通过将此判定树用作第1~第5实施例中的目标的判定树,能够简化求解将多个被说明变量同时作为预期值的条件的逆向计算。作为判定树的合成方法,在采用合成方法1时,仅在生成了每一被说明变量的判定树后追加简单的后处理(简单的程序)即可,因此便于处理。另外,合成方法2可生成简洁的(易见的)判定树。合成方法3可生成与原先判定树明确对应的判定树,且算法也简便。

另外,本实施例中即使对观测数据含有缺损值(被说明变量的缺损值),仍能生成高精度的模型。也就是说,在将被说明变量的直积作为1个被说明变量建构判定树的方法(本实施例开头说明的第2种方法)中,当观测数据内存在被说明变量的缺损值时,存在该部分的数据不能用于建构判定树、建构后的模型的精度下降的问题。对此,本实施例中首先建构每一被说明变量的判定树,然后合成各判定树后生成合成判定树。因此,本实施例中即使观测数据内存在被说明变量的缺损值,也能生成高精度的模型(合成判定树)。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号