首页 / 专利分类库 / 教育;密码术;显示;广告;印鉴 / 用于密码或涉及保密需要的其他用途的编码或译码装置 / 秘密决策树学习装置、秘密决策树学习系统、秘密决策树学习方法、及程序

秘密决策树学习装置、秘密决策树学习系统、秘密决策树学习方法、及程序

申请号 CN202080106144.9 申请日 2020-10-16 公开(公告)号 CN116324938A 公开(公告)日 2023-06-23
申请人 日本电信电话株式会社; 发明人 滨田浩气;
摘要 一个实施方式的秘密 决策树 学习装置是一种通过秘密计算使决策树进行学习的秘密决策树学习装置,其具有:输入部,输入由多个记录构成的数据集合,所述多个记录包括1个以上的说明变量的属性值和目标变量的属性值;及学习部,按照所述决策树的每个层次,集中进行所述层次中包含的所有 节点 的所述数据集合的划分,由此使所述决策树进行学习。
权利要求

1.一种秘密决策树学习装置,通过秘密计算使决策树进行学习,所述秘密决策树学习装置具有:
输入部,输入由多个记录构成的数据集合,所述多个记录包括1个以上的说明变量的属性值和目标变量的属性值;及
学习部,按照所述决策树的每个层次,集中进行所述层次中包含的所有节点的所述数据集合的划分,藉此使所述决策树进行学习。
2.如权利要求1所述的秘密决策树学习装置,其中,
所述学习部按照所述决策树的每个层次,使用在前一层次中被划分为1个以上的组的数据集合和表示所述数据集合中包含的各记录所属的组的组信息向量,在所述层次中包含的所有节点将所述数据集合集中划分至更细的组,藉此使所述决策树进行学习。
3.如权利要求2所述的秘密决策树学习装置,其中,
所述数据集合由属于同一组的连续记录构成,
所述组信息向量是与构成所述数据集合的各记录中的属于同一组的记录的最后的记录对应的元素为1且与所述最后的记录对应的元素之外的元素为0的向量。
4.如权利要求2或3所述的秘密决策树学习装置,其中,
设所述层次为i,这里,i=1,…,h,
所述学习部按照每个层次i反复执行:
使用在前一层次中被划分为1个以上的组的数据集合[Ti]和表示所述数据集合[Ti]中包含的各记录所属的组的组信息向量[gi],计算表示所述层次i中包含的各节点的划分条件的参数[pi];
使用所述数据集合[Ti]和所述参数[pi],将所述数据集合[Ti]中包含的各记录分类至层次i+1的节点;及
使用所述数据集合[Ti]、所述参数[pi]、所述分类的结果、及表示所述数据集合[Ti]中包含的各记录被分类了的节点的信息,计算数据集合[Ti+1]和组信息向量[gi+1]。
5.一种秘密决策树学习系统,通过秘密计算使决策树进行学习,所述秘密决策树学习系统具有:
输入部,输入由多个记录构成的数据集合,所述多个记录包括1个以上的说明变量的属性值和目标变量的属性值;及
学习部,按照所述决策树的每个层次,集中进行所述层次中包含的所有节点的所述数据集合的划分,藉此使所述决策树进行学习。
6.一种秘密决策树学习方法,通过秘密计算使决策树进行学习,所述秘密决策树学习方法由计算机执行,并具有:
输入步骤,输入由多个记录构成的数据集合,所述多个记录包括1个以上的说明变量的属性值和目标变量的属性值;及
学习步骤,按照所述决策树的每个层次,集中进行所述层次中包含的所有节点的所述数据集合的划分,藉此使所述决策树进行学习。
7.一种程序,使计算机作为如权利要求1至4中的任一项所述的秘密决策树学习装置而发挥功能。

说明书全文

秘密决策树学习装置、秘密决策树学习系统、秘密决策树学习

方法、及程序

技术领域

[0001] 本发明涉及秘密决策树学习装置、秘密决策树学习系统、秘密决策树学习方法、及程序。

背景技术

[0002] 作为无需恢复加密数值即可获得特定的运算(计算)结果的方法,已知一种被称为秘密计算的方法(例如,非专利文件1)。非专利文件1记载的方法中,通过进行将数值分片分散至3个秘密计算装置这样的加密处理,并由3个秘密计算装置进行协同计算,可无需恢复数值地获得作为分散至3个秘密计算装置的状态的加减法、常数加法、乘法、常数乘法、逻辑运算(取反、逻辑积、逻辑和、及异或)、数据格式转换(整数和二进制数)等的结果。
[0003] 另外,当根据给定的数据集合使决策树进行学习(即,对决策树进行训练)时,由各节点(node)根据各数据的属性值来计算对数据集合进行划分(分割)时的评价(评估)值,并采用该评价值为最大的划分的方法也是众所周知的。
[0004] [引证文件]
[0005] [非专利文件]
[0006] 非专利文件1:千田浩司,滨田浩气,五十岚大,高桥克巳,「轻量检证可能3パーティ隐藏关数计算的再考」,In CSS,2010.

发明内容

[0007] [要解决的技术问题]
[0008] 然而,在通过秘密计算使决策树进行学习的情况下,其计算时间较长。例如,在决策树为高度h以下的二叉树的情况下,秘密计算中,为了对各节点分类的数据数(即,数据数h量)进行隐藏,数据集合的参照次数需为Θ(2)次。为此,如果决策树的高度增大,则学习所需的计算时间也会变长。
[0009] 本发明的一个实施方式是鉴于上述问题而提出的,其目的在于,减少通过秘密计算使决策树进行学习时的计算时间。
[0010] [技术方案]
[0011] 为了实现上述目的,一个实施方式的秘密决策树学习装置是一种通过秘密计算使决策树进行学习的秘密决策树学习装置,其具有:输入部,输入由多个(plural)记录构成的数据集合,所述多个记录包括1个以上的说明变量(explanatory variable)的属性值和目标变量(objective variable)的属性值;及学习部,按照所述决策树的每个层次(hierarchy),集中进行所述层次中包含的所有节点的所述数据集合的划分,藉此使所述决策树进行学习。
[0012] [有益效果]
[0013] 能够减少通过秘密计算使决策树进行学习时的计算时间。附图说明
[0014] [图1]表示本实施方式的秘密决策树学习装置的功能构成的一例的示意图。
[0015] [图2]表示本实施方式的秘密决策树学习装置的硬件构成的一例的示意图。
[0016] [图3]表示本实施方式的秘密决策树学习处理的流程的一例的流程图
[0017] [图4]表示本实施方式的秘密决策树测试处理的流程的一例的流程图(其1)。
[0018] [图5]表示本实施方式的秘密决策树测试处理的流程的一例的流程图(其2)。
[0019] [图6]表示本实施方式的秘密分组处理的流程的一例的流程图。

具体实施方式

[0020] 下面对本发明的一个实施方式进行说明。本实施方式中对秘密决策树学习装置10进行说明,该秘密决策树学习装置10可藉由秘密计算高效地进行决策树的学习(即,在不公开输入和输出的情况下使决策树进行学习)。如后所述,本实施方式的秘密决策树学习装置10利用“给定的数据集合中的各数据以在决策树的同一层次的节点之间相互不重叠的方式被分类”之特点,并集中进行同一层次的所有节点的分类,据此,可使该数据集合整体的参照次数呈指数级减少。需要说明的是,本实施方式中,使用秘密计算对输入和输出进行了保密的决策树也被称为秘密决策树。
[0021] <标记法>
[0022] 首先对各种标记法进行说明。需要说明的是,下文中也对本实施方式中不一定使用的标记法进行了说明。
[0023] 将通过加密、秘密共享等对某一值a进行了隐藏后的值称为a的隐藏值,并记为[a]。在a藉由秘密共享而被隐藏了的情况下,可通过[a]对各秘密计算装置持有(拥有)的秘密共享的片段(分片)的集合进行参照。
[0024] ·恢复
[0025] 将使a的隐藏值[a]为输入并计算c=a时的值c的处理记为下式。
[0026] c←Open([a])
[0027] ·算术运算
[0028] 加法、减法、乘法的各运算为使2个值a、b的隐藏值[a]、[b]作为输入并分别计算a+b、a‑b、ab的计算结果c1、c2、c3的隐藏值[c1]、[c2]、[c3]。将加法、减法、乘法的各运算的执行分别记为下式。
[0029] [c1]←Add([a],[b])
[0030] [c2]←Sub([a],[b])
[0031] [c3]←Mul([a],[b])
[0032] 在不会招致误解的情况下,将Add([a],[b])、Sub([a],[b])、Mul([a],[b])分别简记为[a]+[b]、[a]‑[b]、[a]×[b]。
[0033] ·比较
[0034] 比较的运算为使2个值a、b的隐藏值[a]、[b]作为输入并计算a=b、a≤b、a
[0035] [c1]←EQ([a],[b])
[0036] [c2]←LE([a],[b])
[0037] [c3]←LT([a],[b])
[0038] ·选择
[0039] 选择的运算为将真假值c∈{0,1}的隐藏值[c]和2个值a、b的隐藏值[a]、[b]作为输入并计算满足
[0040] [式1]
[0041] 的d的隐藏值[d]。将该运算的执行记为下式。
[0042] [d]←IfElse([c],[a],[b])
[0043] 该运算可通过下式实现。
[0044] [d]←[c]×([a]‑[b])+[b]
[0045] <决策树>
[0046] 决策树是一种有向图,其通过基于树结构的规则的组合来表达针对数据的某一属性的知识。此外,属性包括被称为目标变量的属性和被称为说明变量的属性,决策树将说明变量的属性值作为输入,并对目标变量的属性值进行予测和输出。决策树包含1个以上的节点(node),叶(叶节点)之外的各节点设定有例如「年龄小于30岁」(注:「」等同于“”)等的与说明变量相关的划分规则(划分条件)。另一方面,叶节点(即,决策树的终端(末端)的节点)设定有目标变量的属性值。
[0047] 决策树接收到说明变量的属性值后,首先,在根节点进行划分条件的判定。接着,根据该划分条件的判定结果转移到子节点中的一个子节点。之后,递归重复各节点的划分条件的判定和至子节点的转移,并将分配给最终到达的叶节点的属性值作为目标变量的予测值而进行输出。
[0048] ·决策树的学习算法
[0049] 作为根据由说明变量和目标变量构成的数据集合使决策树进行学习的算法,例如已知CART、ID3、C4.5等。尽管这些算法在详细内容上有所不同,但是,都是以贪婪递归的方式对数据集合进行划分进而使决策树进行学习,使得某一目标函数从根节点到叶节点最大(后述的Step1~Step8)。此外,至算法的输入为数据集合Q=(X,y),输出为决策树,其表现为从根节点朝向叶的有向图。下文中,也将数据集合中包含的各数据分别称为记录。需要说明的是,例如,数据集合也可被称为「学习用数据集合」、「监督数据集合」等,数据集合中包含的各数据也可被称为「学习用数据」、「监督数据」等。
[0050] 这里,X是元素为各记录的说明变量的属性值的矩阵,例如由使记录的总数作为行数且使说明变量的总数作为列数的矩阵来表示。y是元素为各记录的目标变量的属性值的向量,例如由使X的第n行记录的目标变量的属性值作为第n个元素的垂直向量(vertical vector)来表示。
[0051] 需要说明的是,如上所述,决策树的叶节点之外的各节点被设定有划分条件,叶节点被设定有目标变量的属性值。此外,目标变量取类别值,说明变量取数值或类别值,目标变量也被称为标签,其值(属性值)也被称为标签值。此外,下文中,取数值的说明变量也被称为数值属性,其值也被称为数值属性值。同理,取类别值的说明变量也被称为类别属性(即,在记载为「类别属性」的情况下,是指取类别值的说明变量),其值也被称为类别属性值。目标变量为数值时的决策树也被称为回归树。
[0052] Step1:生成(创建)节点v。
[0053] Step2:如果满足划分的结束条件,则将目标变量的属性值设定至该节点v,然后作为叶节点进行输出,并结束处理。此时,设定至该节点v的属性值(标签值)例如为y中包含的元素的值中的出现频率最高的值。需要说明的是,作为结束条件,例如可列举出y中包含的元素都为相同的值(即,目标变量的属性值都相同)、决策树到达了预先确定的高度等。
[0054] Step3:如果不满足划分的结束条件,则列出能够应用于该节点v的划分条件r1、r2、…。
[0055] Step4:藉由目标函数对各划分条件ri的评价值si进行计算。
[0056] Step5:从划分条件的集合{ri}中选择取最大评价值的划分条件r*,并将划分条件*r设定至该节点v。
[0057] Step6:根据划分条件r*将数据集合(X,y)划分为数据集合(X1,y1)、(X2,y2)、…、*(Xd,yd)。换言之,这意味着根据划分条件r将数据集合(X,y)中包含的各记录分类为数据集合(X1,y1)、(X2,y2)、…、(Xd,yd)。需要说明的是,d为分支数(即,1个节点持有的子节点的数量)。
[0058] Step7:对各(Xj,yj)递归执行Step1~Step7。即,将各(Xj,yj)视为(X,y),并调用执行Step1~Step7的函数、方法等。这里,当在递归执行的Step1中生成节点v后,分支伸展至与调用方的Step1中生成的节点v之间。需要说明的是,调用方的Step1中生成的节点v为父节点,被调用方的Step1中生成的节点v为子节点。
[0059] Step8:对所有数据集合(Xj,yj)的Step1~Step7的执行都结束(即,递归调用的所有Step1~Step7的执行都结束)后,输出各节点v(和为该节点v设定的划分条件r)的集合和在节点间伸展的分支的集合,并结束处理。这些节点v的集合和分支的集合即为决策树。
[0060] 本实施方式中,集中执行同一层次的各节点的划分条件的评价(上述Step4~Step5)和基于该评价结果的数据集合的划分(上述Step6),并按照每个层次递归地对这些处理进行重复(反复),由此使秘密决策树进行学习。需要说明的是,层次是指自根节点的深度均相同的节点的集合,也被简称为「层」。
[0061] ·分支数
[0062] 分支数d可为2以上的任意的整数值,但是,本实施方式中假定了二叉树,故d=2。需要说明的是,本实施方式也可应用于d为3以上的情形,但是,d的值越大,计算时间越长。
[0063] ·划分条件
[0064] 作为划分条件,可使用针对说明变量的属性值的任何条件,但是,一般而言,较多使用大小的比较、是否包含于某一集合等的条件。本实施方式中,说明变量取数值和类别值中的一个,为此,在取数值的情况下,将与阈值的大小的比较(例如,C为阈值,x为说明变量的数值属性值,x≤C等)作为划分条件,在取类别值的情况下,将属于某一集合(例如,X为集合,x为类别属性值,x∈X等)作为划分条件。需要说明的是,划分条件例如也可被称为划分规则、分类条件、分类规则等。
[0065] ·纯度的指标
[0066] 作为衡量将某一数据集合划分为多个数据集合(换言之,将某一数据集合中包含的各记录分类为多个数据集合)时的划分(或分类)的好坏的指标,已知一种表示数据集合是否为模糊的纯度的指标H(·)。常用的指标例如包括基尼(gini)系数、熵等。
[0067] 将数据集合Q中的目标变量的属性值(即,标签值)为k的记录的集合设为Qk。此时,将使数据集合Q为输入的节点的标签值k的记录的比率定义如下。
[0068] [式2]
[0069]
[0070] 另外,本实施方式中,作为纯度的指标,使用下式所示的熵。
[0071] [式3]
[0072]
[0073] ·目标函数
[0074] 各划分条件的好坏通过目标函数来评价(即,目标函数的值为划分条件的评价值)。常用的目标函数例如包括互信息(Mutual Information)、增益率等。
[0075] 设划分条件为θ,数据集合Q在划分条件θ下被划分为Q(θ,0)和Q(θ,1)的2个数据集合。此时,由
[0076] [式4]
[0077]
[0078] 定义的GainRatio()被称为增益率。本实施方式中,将增益率作为目标函数。
[0079] <评价值的计算>
[0080] 就各节点的划分条件而言,通过选择在该节点使预先确定的目标函数最大那样的划分条件来进行设定。由于需要针对每个候选划分条件计算目标函数的值,所以重要的是能够针对给定的划分条件有效地计算目标函数的值。
[0081] 由上述式4定义的增益率需要进行求出实际划分后的各标签的值(目标变量的值)的频度这样的复杂的计算。为此,本实施方式中,对增益率的计算方法进行了整理和简化,使得可集中进行基于秘密计算的针对多个划分条件的增益率的计算。
[0082] 为了简化增益率的计算,重点关注了增益率中所需的大量的比率。由于比率需要除法,所以直接计算时计算成本较高,但是,可通过乘以总数转换成被称为频度的容易进行计算的统计量(统计值)。基于该观察,本实施方式中使用了乘以输入的数据集合的大小后+ + + +的SplitInfo、H、Gain及G的各函数来代替SplitInfo、H、Gain及G的各函数。
[0083] 为了简单起见,当使用
[0084] [式5]
[0085] f(x):=x log2x
[0086] 时,SplitInfo+可被整理如下。
[0087] [式6]
[0088]
[0089] 同理,H+可被整理如下。
[0090] [式7]
[0091]
[0092] 同理,G+可被整理如下。
[0093] [式8]
[0094]
[0095] 此外,同理,Gain+可被整理如下。
[0096] [式9]
[0097] Gain+(Q,θ):=|Q|Gain(Q,θ)
[0098] =|Q|H(Q)‑|Q|G(Q,θ)
[0099] =H+(Q)‑G+(Q,θ)
[0100] 上述SplitInfo+、H+、Gain+及G+的各函数均由数据集合Q中包含的记录数、数据集合Q中的满足某一条件的记录数等的频度、f(·)、及加减法构成。GainRatio由
[0101] [式10]
[0102]
[0103] 表示,故可知,针对数据集合Q的划分条件θ的GainRatio的分子和分母最终可通过[0104] (1)Q的记录数|Q|;
[0105] (2)Q中的标签值k的记录数|Qk|;
[0106] (3)基于θ对Q进行划分后的各数据集合的记录数|Q(θ,i)|;及
[0107] (4)根据θ对Q进行划分后的各数据集合中的标签值k的记录数|Q(θ,i)k|[0108] 这4个记录数、f(·)、及加减法来进行计算。
[0109] f(·)的输入为上述4个频度(记录数|Q|、|Qk|、|Q(θ,i)|、|Q(θ,i)k|)中一个。为此,在作为学习用数据集合而给定的数据集合的记录数为n的情况下,f(·)的输入需为0以上且n以下的整数。因此,在通过秘密共享进行了隐藏的情况下,f(·)通过使用秘密批处理映射(secret batch mapping)可藉由O(nlogn)的通信量实现Θ(n)次f(·)的计算,该秘密批处理映射使用了表示大小Θ(n)的下面的对应关系的对应表(查找表)。
[0110] [式11]
[0111]
[0112] 据此,本实施方式中,当进行秘密决策树的学习时,通过在各节点计算出各频度,可集中进行各节点的多个划分条件的评价值(GainRatio)的计算。
[0113] 此外,作为一对非负的分子和分母而给定的2个值(a,b)和(c,d)的比较结果等同于ad和bc的比较结果。由于GainRatio的分子和分母均为非负,所以在进行GainRatio的比较(即,评价值的比较)时采用上述方法来进行代替,可避免除法。据此,可减少为了选择取最大评价值的划分条件而进行的评价值之间的比较所需的计算时间。
[0114] <功能构成>
[0115] 接着,参见图1对本实施方式的秘密决策树学习装置10的功能构成进行说明。图1是本实施方式的秘密决策树学习装置10的功能构成的一例的示意图。
[0116] 如图1所示,本实施方式的秘密决策树学习装置10具有输入部101、秘密决策树学习部102、输出部103、及存储部104。
[0117] 存储部104中存储有用于使秘密决策树进行学习的各种数据(即,被隐藏了的各种数据)。这里,这些数据包括作为学习用数据集合而给定的数据集合(下面称学习用数据集合)。学习用数据集合由使各记录的说明变量的值作为元素的向量和使各记录的标签值作为元素的向量构成。具体而言,例如,如果设构成学习用数据集合的记录数为n,并设说明变量的总数为m‑1,则该学习用数据集合为由n行m列的矩阵表示的数据。
[0118] 此外,存储部104中存储的各种数据也包括用于表示某一记录在秘密决策树的学习期间被分类至哪个节点(即,组)的组信息向量等。
[0119] 输入部101输入用于使秘密决策树进行学习的学习用数据集合。
[0120] 秘密决策树学习部102使用学习用数据集合和组信息向量,并按照每个层集中地进行同一层的各节点的划分条件的评价(测试)和基于该评价结果的数据集合的划分(即,构成该数据集合的记录的分类)的递归重复,藉此使秘密决策树进行学习。这里,秘密决策树学习部102包含初始化部111、划分部112、分组部113、及节点提取部114。
[0121] 当使秘密决策树进行学习时初始化部111对组信息向量等的各种数据进行初始化。划分部112集中进行同一层的各节点的划分条件的评价(测试)和基于该评价结果的数据集合的划分(即,构成该数据集合的记录的分类)。分组部113应用划分部112的记录的分类结果来计算下一层的各节点的划分条件的评价和基于该评价结果的数据集合的划分中所使用的学习用数据集合、组信息向量等。节点提取部114提取构成最终输出的秘密决策树的各节点的信息。
[0122] 输出部103输出由秘密决策树学习部102进行了学习(训练)的秘密决策树。需要说明的是,输出部103只要将秘密决策树(更正确的是指,表示构成秘密决策树的各节点的信息的数据)输出至预先确定的任意输出目的地(例如,存储部104等)即可。
[0123] <硬件构成>
[0124] 接着,参见图2对本实施方式的秘密决策树学习装置10的硬件构成进行说明。图2是本实施方式的秘密决策树学习装置10的硬件构成的一例的示意图。
[0125] 如图2所示,本实施方式的秘密决策树学习装置10藉由一般计算机或计算机系统的硬件构成而实现,并具有输入装置201、显示装置202、外部I/F203、通信I/F204、处理器205、及存储装置206。这些硬件中的每一个都经由总线207以能够通信的方式进行了连接。
[0126] 输入装置201例如为键盘鼠标、触屏等。显示装置202例如为显示器等。需要说明的是,秘密决策树学习装置10例如也可不具有输入装置201和显示装置202中的至少一个。
[0127] 外部I/F203是与存储介质203a等的外部装置之间的接口。秘密决策树学习装置10可经由外部I/F203进行存储介质203a的读取、写入等。存储介质203a中例如可保存有用于实现秘密决策树学习装置10的各功能部(输入部101、秘密决策树学习部102、及输出部103)的1个以上的程序。
[0128] 需要说明的是,存储介质203a例如包括CD(Compact Disc)、DVD(Digital Versatile Disk)、SD存储卡(Secure Digital memory card)、USB(Universal Serial Bus)存储卡等。
[0129] 通信I/F204是用于将秘密决策树学习装置10连接至通信网络的接口。需要说明的是,就用于实现秘密决策树学习装置10的各功能部的1个以上的程序而言,也可经由通信I/F204从预定的服务器装置等获取(下载)。
[0130] 处理器205例如为CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等的各种运算装置。秘密决策树学习装置10的各功能部例如可藉由存储装置206等中保存的1个以上的程序使处理器205执行的处理而实现。
[0131] 存储装置206例如为HDD(Hard Disk Drive)、SSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)、闪存等的各种存储装置。秘密决策树学习装置10的存储部104例如可藉由使用存储装置206而实现。需要说明的是,存储部104例如也可藉由使用经由通信网络连接至秘密决策树学习装置10的存储装置等而实现。
[0132] 本实施方式的秘密决策树学习装置10通过具有图2所示的硬件构成可实现各种处理。需要说明的是,图2所示的硬件构成仅为一例,秘密决策树学习装置10也可具有其它硬件构成。例如,秘密决策树学习装置10可具有多个处理器205,也可具有多个存储装置206。
[0133] <秘密决策树学习处理>
[0134] 接着,参见图3对用于使秘密决策树根据给定的学习用数据集合进行学习的秘密决策树学习处理进行说明。图3是表示本实施方式的秘密决策树学习处理的流程的一例的流程图。需要说明的是,下文中,进行高度h以下的d叉树的学习。
[0135] 首先,输入部101输入用于使秘密决策树进行学习的学习用数据集合(步骤S101)。这里,下文中,作为一例,设学习用数据集合Q是由记录数为n且说明变量的总数为m‑1的n行m列的矩阵表示的数据,[T1]:=[Q]。
[0136] 接着,秘密决策树学习部102的初始化部111将组信息向量[g1]和继承参数(注:日语原文为“引継ぎパラメータ”)[q1]初始化为下式(步骤S102)。
[0137] [g1]:=(0,0,…,1)T
[0138] [q1]:=(0,…,0)T
[0139] 需要说明的是,组信息向量和继承参数是元素数为n的向量。此外,T为表示转置的记号。
[0140] 这里,组信息向量是表示学习用数据集合的各记录被分类至哪个组的向量,在某一连续的记录组被分类至同一组的情况下,是使与该记录组的末尾的记录对应的位置的元素为1且使其它元素为0的向量。例如,上述组信息向量[g1]表示学习用数据集合[T1]的所有记录都被分类至同一组。这意味着,在根节点所有记录都被分类至同一组。
[0141] 此外,继承参数是使各层次中各记录被分类了的节点的编号为元素的向量,就i=1,…,h而言,继承参数[qi]的第n个元素表示学习用数据集合[Ti]的第n个记录被分类了的节点的编号。例如,上述继承参数[q1]表示学习用数据集合[T1]的所有记录都被分类至编号为「0」的节点(即,根节点)。
[0142] 下面的步骤S103~步骤S105按照每个层i=1,…,h反复执行。下文中,对某一层i的步骤S103~步骤S105进行说明。
[0143] 秘密决策树学习部102的划分部112基于学习用数据集合[Ti]和组信息向量[gi]计算划分参数[pi](步骤S103)。该步骤S103的处理是进行该层i的各节点的划分条件的评价(测试)的处理,藉由该处理,划分条件被设定至该层i的各节点(但是,叶节点除外)。需要说明的是,将在后面对该处理的详细内容进行描述。
[0144] 这里,划分参数[pi]是指,包含为了计算秘密决策树的各节点的分类结果(后述的[fi])所需的信息的隐藏值的数据,例如,按照层i的各节点包含下面的(a)~(d)那样的信息的隐藏值。
[0145] (a)针对哪个说明变量进行划分条件的判定;
[0146] (b)针对该说明变量进行哪个种类的划分条件(例如,表示与阈值进行大小比较的划分条件、表示是否属于某一集合的划分条件等)的判定;
[0147] (c)划分条件中使用的阈值或集合;及
[0148] (d)该节点变为叶节点时所设定的标签值。
[0149] 即,划分参数[pi]包含设定至层i的各节点的划分条件(或者,在节点为叶节点的情况下,为标签值)的信息。
[0150] 接着,秘密决策树学习部102的划分部112基于学习用数据集合[Ti]和划分参数[pi]计算分类结果[fi](步骤S104)。这里,分类结果[fi]是表示上述步骤S103中按照设定至各节点的划分条件对学习用数据集合[Ti]进行划分(即,对构成该学习用数据集合[Ti]的各记录进行分类)而得的结果的信息,例如,是使表示各记录的分类目的地的编号(0以上且d‑1以下的编号)作为其元素的向量等。例如,在d=2的情况下,划分部112只要从学习用数据集合[Ti]中取出由上述(a)所示的说明变量的各属性值,然后,分别判定各属性值是否满足由上述(b)和(c)确定的条件,并在第j(1≤j≤n)个记录的属性值满足该条件的情况下使第j个元素为1,否则使其为0,由此计算分类结果[fi]即可。
[0151] 接着,秘密决策树学习部102的分组部113根据学习用数据集合[Ti]、继承参数[qi]、组信息向量[gi]、及分类结果[fi]来计算下一层i+1的学习用数据集合[Ti+1]、继承参数[qi+1]、及组信息向量[gi+1](步骤S105)。此时,分组部113按[gi]和[fi]对将[Ti]和[qi]×d+[fi]连结后的数据集合([Ti],[qi]×d+[fi])进行排序,据此计算该排序的结果([Ti+1],[qi+1])和表示[Ti+1]的各记录被分类至哪个组的[gi+1]。需要说明的是,[qi]×d+[fi]相当于进行排序前的[qi+1]。这意味着,由于[fi]的各元素取0以上且d‑1以下的值,所以将[qi]的各元素的值(即,节点的编号)重新编号分配给[fi]的每个元素,由此对i+1层的各节点进行了编号。
[0152] 上述步骤S105的处理是基于上述步骤S104中获得的分类结果[fi]将学习用数据集合[Ti]的各记录分组为更细的组的处理,藉由该处理,可计算下一层i+1的学习用数据集合[Ti+1]、继承参数[qi+1]、及组信息向量[gi+1]。需要说明的是,将在后面对该处理的详细内容进行描述。
[0153] 接下来,在上述步骤S103~步骤S105针对i=1,…,h进行了执行的情况下,秘密决策树学习部102的节点提取部114从各继承参数[qi]和各划分参数[pi]提取各节点的信息(步骤S106)。这里,如上所述,[qi]中保存有[Ti]的各记录被分类了的节点的编号。另一方面,[pi]中还按每个节点保存有上述(a)~(d)所示的信息。为此,节点提取部114例如只要按照[qi]的各元素的取值中的每个不同的值来提取与该值对应的节点的(a)~(d)的信息即可。
[0154] 之后,输出部103输出上述步骤S106中提取的信息(即,构成秘密决策树的各节点的信息)(步骤S107)。
[0155] <秘密决策树测试处理(其1)>
[0156] 接着,参见图4对上述步骤S103的处理的详细内容的一例进行说明。图4是表示本实施方式的秘密决策树测试处理的流程的一例的流程图(其1)。需要说明的是,下文中,作为一例,对使某一数值属性作为对象且在构成层i的各节点执行划分条件的评价(测试)的情况进行说明。此外,将对学习用数据集合[Ti]中的各记录的该数值属性值按记录顺序进行了排列的向量称为数值属性值向量,同理,将对标签值按记录顺序进行了排列的向量称为标签值向量。此外,设标签可取的值的集合为{1,2,3}。
[0157] 首先,划分部112输入数值属性值向量、标签值向量、及组信息向量(步骤S201)。下文中,作为一例,设组信息向量由
[0158] [g]=[gi]=(0,0,1,1,0,0,0,1,0,1)T
[0159] 表示。上述[g]表示,学习用数据集合[Ti]中的第1个记录至第3个记录属于第1个组,第4个记录属于第2个组,第5个记录至第8个记录属于第3个组,第9个记录至第10个记录属于第4个组。
[0160] 接着,划分部112按照每个组对同一组内的数值属性值向量和标签值向量的元素按升序进行排序(步骤S202)。即,划分部112在第1个组~第4个组的各组内对数值属性值向量和标签值向量的元素按升序进行排序。下文中,作为一例,设该排序后的数值属性值向量由
[0161] [c]=(1,2,5,2,3,4,5,7,2,4)T
[0162] 表示。此外,设排序后的标签值向量由
[0163] [y]=(3,2,1,3,2,1,1,3,1,2)T
[0164] 表示。下文中,数值属性值向量和标签值向量是指排序后的数值属性值向量和标签值向量。
[0165] 接着,划分部112按标签可取的每个值计算表示标签值向量[y]的元素中的与该标签值一致的元素的位置的比特向量(步骤S203)。
[0166] 如果使与标签可取的值「1」、「2」及「3」各自对应的比特向量为[f1]、[f2]及[f3],则这些比特向量分别如下。
[0167] [f1]=(0,0,1,0,0,1,1,0,1,0)T
[0168] [f2]=(0,1,0,0,1,0,0,0,0,1)T
[0169] [f3]=(1,0,0,1,0,0,0,1,0,0)T
[0170] 即,与某一标签值对应的比特向量是指,标签值向量的元素中的、只是位于和与该标签值一致的元素相同位置处的元素为1而其它元素为0的向量。
[0171] 接着,划分部112按照基于组信息向量[g]的分组对各比特向量进行聚合函数累加求和运算,由此计算第1判定向量(步骤S204)。这里,聚合函数累加求和运算是输入同一组内的元素的集合并输出这些元素的值的累加和的集合的运算。换言之,聚合函数累加求和运算是对同一组内的各元素从先头开始进行累加求和的计算的运算。
[0172] 例如,划分部112针对各比特向量的每一个依次计算第1个元素至第3个元素的累加和,同理,计算第4个元素的累加和,依次计算从第5个元素至第8个元素的累加和,并依次计算第9个元素至第10个元素的累加和。
[0173] 据此,可获得由
[0174] [s0,1]=(0,0,1,0,0,1,2,2,1,1)T
[0175] 表示的与比特向量[f1]对应的第1判定向量。
[0176] 同理,可获得由
[0177] [s0,2]=(0,1,1,0,1,1,1,1,0,1)T
[0178] 表示的与比特向量[f2]对应的第1判定向量。
[0179] 同理,可获得由
[0180] [s0,3]=(1,1,1,1,0,0,0,1,0,0)T
[0181] 表示的与比特向量[f3]对应的第1判定向量。
[0182] 当在各组内紧接着各数值属性值之后(即,在该数值属性值和下一个大数值属性值之间)设定了阈值的情况下,上述第1判定向量表示该阈值以下的数值属性值为对应的标签值的个数(频度)。例如,就第1判定向量[s0,1]而言,如果在数值属性值向量[c]的第1个组的紧接着第1个元素之后设定了阈值,则表示数值属性值为阈值以下且标签值为1的个数是0。同理,例如,如果在第1个组的紧接着第3个元素之后设定了阈值,则表示数值属性值为阈值以下且标签值为1的个数是1。
[0183] 因而,通过上述第1判定向量可计算根据藉由x≤C(这里,C为阈值)这样的形式而表示的划分条件进行了划分(分组)后的数据集合(数值属性值的集合)中的满足该划分条件的数据集合内的取标签值k的记录的频度。
[0184] 接着,划分部112针对各比特向量按照基于组信息向量[g]的分组进行聚合函数求和运算,据此计算聚合总和向量(步骤S205)。这里,聚合函数求和运算是使同一组内的元素的集合作为输入并输出这些元素的值的总和的运算。
[0185] 例如,划分部112针对各比特向量的每一个计算第1个元素至第3个元素的总和,同理,计算第4个元素的总和,计算第5个元素至第8个元素的总和,并计算第9个元素至第10个元素的总和。之后,划分部112藉由使各总和作为与用于计算该总和的元素相同位置的元素而生成聚合总和向量。
[0186] 据此,可获得由
[0187] [s*,1]=(1,1,1,0,2,2,2,2,1,1)T
[0188] 表示的与比特向量[f1]对应的聚合总和向量。
[0189] 同理,可获得由
[0190] [s*,2]=(1,1,1,0,1,1,1,1,1,1)T
[0191] 表示的与比特向量[f2]对应的聚合总和向量。
[0192] 同理,可获得由
[0193] [s*,3]=(1,1,1,1,1,1,1,1,0,0)T
[0194] 表示的与比特向量[f3]对应的聚合总和向量。
[0195] 接下来,划分部112使用与同一标签值对应的第1判定向量和聚合总和向量来计算与该标签值对应的第2判定向量(步骤S206)。划分部112使用与同一标签值对应的第1判定向量和聚合总和向量从该聚合总和向量中减去该第1判定向量即可计算第2判定向量。
[0196] 据此,可获得由
[0197] [s1,1]=[s*,1]‑[s0,1]=(1,1,0,0,2,1,0,0,0,0)T
[0198] 表示的与标签值「1」对应的第2判定向量。
[0199] 同理,可获得由
[0200] [s1,2]=[s*,2]‑[s0,2]=(1,0,0,0,0,0,0,0,1,0)T
[0201] 表示的与标签值「2」对应的第2判定向量。
[0202] 同理,可获得由
[0203] [s1,3]=[s*,3]‑[s0,3]=(0,0,0,0,1,1,1,0,0,0)T
[0204] 表示的与标签值「3」对应的第2判定向量。
[0205] 当在各组内紧接着各数值属性值之后(即,在该数值属性值和下一个大数值属性值之间)设定了阈值的情况下,上述第2判定向量表示大于该阈值的数值属性值为对应的标签值的个数(频度)。例如,就第2判定向量[s1,1]而言,如果在数值属性值向量[c]的第1个组的紧接着第1个元素之后设定了阈值,则表示数值属性值大于阈值且标签值为1的个数是1个。同理,例如,如果在第1个组的紧接着第3个元素之后设定了阈值,则表示数值属性值大于阈值且标签值为1的个数是0。
[0206] 因而,通过上述第2判定向量可计算根据藉由x≤C(这里,C为阈值)这样的形式而表示的划分条件进行了划分(分组)后的数据集合(数值属性值的集合)中的不满足该划分条件的数据集合内的取标签值k的记录的频度。
[0207] 接着,划分部112按照每个组且按照每个划分条件进行各频度的计算(步骤S207)。这里,划分部112计算
[0208] 数值属性值向量[c]的各组的元素数(即,上述(1)所示的|Q|);
[0209] 数值属性值向量[c]的各组中的标签值k的元素数(即,上述(2)所示的|Qk|);
[0210] 按照划分条件θ对数值属性值向量[c]的各组进行了划分后的各组的元素数(即,上述(3)所示|Q(θ,i)|);及
[0211] 基于划分条件θ对数值属性值向量[c]的各组进行了划分后的各组中的标签值k的元素数(即,上述(4)所示的|Q(θ,i)k|)
[0212] 这4个频度。
[0213] 这4个频度中的第1个频度可藉由使用数值属性值向量[c]和组信息向量[g]计算每个组的元素数而获得。此外,第2个频度可藉由使用数值属性值向量[c]、标签值向量[y]、及组信息向量[g]计算每个组且每个标签值的元素数而获得。此外,第3个频度可藉由使用数值属性值向量[c]和组信息向量[g]计算当将划分条件θ的阈值设定至组时该组内的基于划分条件θ被划分的各集合(即,满足划分条件θ的集合和不满足划分条件θ的集合)的元素数而获得。
[0214] 另一方面,第4个频度可藉由使用数值属性值向量[c]、组信息向量[g]、第1判定向量、及第2判定向量计算当将划分条件θ的阈值设定至组时该组内的基于划分条件θ被划分的各集合中的取标签值k的元素数而获得。这意味着,如上所述,划分后的各集合中的满足划分条件θ的集合内的取标签值k的元素数可藉由与该标签值k对应的第1判定向量来进行计算,不满足划分条件θ的集合内的取标签值k的元素数可藉由与该标签值k对应的第2判定向量来进行计算。
[0215] 接着,划分部112使用上述步骤S207中计算的各频度并按照每个组且按照每个划分条件通过上述式10来计算该划分条件的评价值(步骤S208)。
[0216] 之后,划分部112选择各组中的评价值为最大的划分条件,并将选择了的划分条件作为设定至与该组对应的节点的划分条件而进行输出(步骤SS209)。需要说明的是,当对各组中的评价值为最大的划分条件进行选择时,例如,只要进行聚合函数最大值运算即可。聚合函数最大值运算是输入同一组内的元素(评价值)并输出这些元素的值的最大值的运算。
[0217] 据此,可获得与层i的叶节点之外的各节点相关的(a)~(c)的信息。另一方面,作为上述步骤S201中输入数值属性值向量、标签值向量、及组信息向量后的结果,在某一组内的标签值都相同的情况下,与该组对应的节点变为叶节点,并获得(a)和(d)的信息。
[0218] <秘密决策树测试处理(其2)>
[0219] 接着,参见图5对上述步骤S103的处理的详细内容的一例进行说明。图5是表示本实施方式的秘密决策树测试处理的流程的一例的流程图(其2)。需要说明的是,下文中,作为一例,对使某一类别属性作为对象且在构成层i的各节点执行划分条件的评价(测试)的情况进行说明。此外,将对学习用数据集合[Ti]中的各记录的该类别属性值按记录顺序进行了排列的向量称为类别属性值向量,同理,将对标签值按记录顺序进行了排列的向量称为标签值向量。此外,设该类别属性可取的值的集合为{5,6,7,8},并设标签可取的值的集合为{1,2,3}。
[0220] 首先,划分部112输入类别属性值向量、标签值向量、及组信息向量(步骤S301)。下文中,作为一例,设组信息向量由
[0221] [g]=[gi]=(0,0,1,1,0,0,0,1,0,1)T
[0222] 表示。
[0223] 此外,设类别属性值向量由
[0224] [c]=(5,5,6,8,5,8,5,7,6,5)T
[0225] 表示,并设标签值向量由
[0226] [y]=(3,2,1,3,2,1,1,3,1,2)T
[0227] 表示。
[0228] 接下来,划分部112按照该类别属性可取的值和标签可取的值的每个组合来计算表示与该类别属性值和标签值的组合一致的元素的位置的比特向量(步骤S302)。
[0229] 例如,如果与类别属性可取的值「5」和标签可取的值「1」的组合对应的比特向量为[f5,1],则该比特向量[f5,1]如下。
[0230] [f5,1]=(0,0,0,0,0,0,1,0,0,0)T
[0231] 同理,例如,如果与类别属性可取的值「5」和标签可取的值「2」的组合对应的比特向量为[f5,2],则该比特向量[f5,2]如下。
[0232] [f5,2]=(0,1,0,0,1,0,0,0,0,1)T
[0233] 同理,例如,如果与类别属性可取的值「5」和标签可取的值「3」的组合对应的比特向量为[f5,3],则该比特向量[f5,3]如下。
[0234] [f5,3]=(1,0,0,0,0,0,0,0,0,0)T
[0235] 同理,也可计算与其它组合对应的各比特向量[f6,1]~[f6,3]、[f7,1]~[f7,3]、[f8,1]~[f8,3]。
[0236] 即,与某一类别属性值和标签值的组合对应的比特向量是指,在类别属性值向量和标签值向量中位于相同位置的元素的组合中的、只是位于与该类别属性值和标签值的组合一致的组合的位置处的元素为1而其它元素为0的向量。
[0237] 接下来,划分部112按照基于组信息向量[g]的分组对各比特向量进行聚合函数求和运算,据此计算判定向量(步骤S303)。
[0238] 例如,划分部112针对各比特向量的每一个计算第1个元素至第3个元素的总和,同理,计算第4个元素的总和,计算第5个元素至第8个元素的总和,并计算第9个元素至第10个元素的总和。之后,划分部112使各总和作为与用于计算该总和的元素相同位置的元素,由此生成判定向量。
[0239] 据此,可获得由
[0240] [c5,1]=(0,0,0,0,1,1,1,1,0,0)T
[0241] 表示的与比特向量[f5,1]对应的判定向量。
[0242] 同理,可获得由
[0243] [c5,2]=(1,1,1,0,1,1,1,1,1,1)T
[0244] 表示的与比特向量[f5,2]对应的判定向量。
[0245] 同理,可获得由
[0246] [c5,3]=(1,1,1,0,0,0,0,0,0,0)T
[0247] 表示的与比特向量[f5,3]对应的判定向量。
[0248] 同理,也可计算与其它各比特向量[f6,1]~[f6,3]、[f7,1]~[f7,3]、[f8,1]~[f8,3]对应的判定向量。
[0249] 上述判定向量表示与比特向量对应的类别属性值和标签值的组合在各组内出现的次数。例如,(类别属性值,标签值)=(5,1)的组合表示,在第1个组中出现了0次,在第2个组中出现了0次,在第3个组中出现了1次,在第4个组中出现了0次。同理,例如,(类别属性值,标签值)=(5,2)的组合表示,在第1个组中出现了1次,在第2个组中出现了0次,在第3个组中出现了1次,在第4个组中出现了1次。
[0250] 因此,通过上述判定向量,可对根据由x∈X(这里,X为类别属性可取的值的集合的子集)这样的形式表示的划分条件进行划分(分组)而得的数据集合(类别属性值的集合)中的满足该划分条件的数据集合内的取标签值k的记录的频度进行计算。
[0251] 接着,划分部112按照每个组且按照每个划分条件计算各频度(步骤S304)。这里,划分部112计算
[0252] 类别属性值向量[c]的各组的元素数(即,上述(1)所示的|Q|);
[0253] 类别属性值向量[c]的各组中的标签值k的元素数(即,上述(2)所示的|Qk|);
[0254] 按照划分条件θ对类别属性值向量[c]的各组进行了划分后的各组的元素数(即,上述(3)所示|Q(θ,i)|);及
[0255] 基于划分条件θ对类别属性值向量[c]的各组进行了划分后的各组中的标签值k的元素数(即,上述(4)所示的|Q(θ,i)k|)
[0256] 这4个频度。
[0257] 这4个频度中的第1个频度可藉由使用类别属性值向量[c]和组信息向量[g]计算每个组的元素数而获得。此外,第2个频度可藉由使用类别属性值向量[c]、标签值向量[y]、及组信息向量[g]计算每个组且每个标签值的元素数而获得。此外,第3个频度可藉由使用类别属性值向量[c]和组信息向量[g]计算当根据划分条件θ对组进行划分时基于该划分条件θ被划分了的各集合(即,满足划分条件θ的集合和不满足划分条件θ的集合)的元素数而获得。
[0258] 另一方面,第4个频度可藉由使用类别属性值向量[c]、组信息向量[g]、及判定向量计算当根据划分条件θ对组进行划分时基于该该划分条件θ被划分了的各集合中的取标签值k的元素数而获得。这只要通过使用判定向量对划分后的集合中包含的各元素(类别属性值)和标签值k的组合在该组内出现的次数进行计算即可。具体而言,例如,在划分条件θ为x∈{5,8}的情况下,类别属性值向量[c]的第3个组被划分为{5,8,5}和{7}。为此,例如,就{5,8,5}中的取标签值k的元素数而言,如上所述,可藉由根据判定向量[f5,k]和[f8,k]计算(5,k)的组合在第3个组中出现的次数和(8,k)的组合在第3个组中出现的次数之和而获得。同理,例如,就{7}中的取标签值k的元素数而言,可藉由根据判定向量[f7,k]计算(7,k)的组合在第3个组中出现的次数而获得。
[0259] 接着,划分部112使用上述步骤S304中计算的各频度并按照每个组且每个划分条件藉由上述式10来计算该划分条件的评价值(步骤S305)。
[0260] 之后,划分部112选择各组中评价值为最大的划分条件,并将选择了的划分条件作为设定至与该组对应的节点的划分条件而进行输出(步骤S306)。
[0261] 据此,可获得与层i的叶节点之外的各节点相关的(a)~(c)的信息。另一方面,作为上述步骤S301中输入数值属性值向量、标签值向量、及组信息向量后的结果,在某一组内的标签值都相同的情况下,与该组对应的节点变为叶节点,并获得(a)和(d)的信息。
[0262] <秘密分组处理>
[0263] 接着,参见图6对上述步骤S105的处理的详细内容的一例进行说明。图6是表示本实施方式的秘密分组处理的流程的一例的流程图。下文中,为了简单起见,对使元素为数据集合([Ti],[qi]×d+[fi])的各记录的记录编号的向量为数据向量,并藉由对该数据向量的各元素进行排序从而对数据集合([Ti],[qi]×d+[fi])的各记录进行排序的情况进行说明。
[0264] 首先,分组部113输入数据向量和组信息向量(步骤S401)。下文中,作为一例,设数据向量由
[0265] [v]=(3,0,4,5,1,6,7,2)T
[0266] 表示。此外,设组信息向量由
[0267] [g]=[gi]=(0,1,1,0,0,1,0,1)T
[0268] 表示。
[0269] 接着,分组部113输入分类结果作为分类目的地向量(步骤S402)。下文中,作为一例,设分类目的地向量由
[0270] [f]=[fi]=(0,1,0,1,1,0,1,1)T
[0271] 表示。
[0272] 接着,分组部113计算对数据向量的各元素中的、各组内为各分类目的地的端点的元素进行检测而得的检测向量(步骤S403)。该检测向量可通过下面的步骤1~步骤2来计算。
[0273] 步骤1:按照每个可取为分类目的地的值,计算对同一组内为该分类目的地的端点的元素进行检测而得的分类目的地单位检测向量。分类目的地单位检测向量是指,数据向量的各元素中的、与同一组内为该分类目的地的端点的元素相同位置的元素为1而其它元素为0的向量。
[0274] 例如,在可取为分类目的地的值是「1」的情况下,首先,分组部113计算[e1]←EQ([f],1),由此获得下面的[e1]。
[0275] [e1]=(0,1,0,1,1,0,1,1)T
[0276] 接着,分组部113计算由组信息向量[g]表示的组内的从下位开始的累加和,据此获得下面的[x1]。
[0277] [x1]=(1,1,0,2,1,0,2,1)T
[0278] 需要说明的是,计算组内的从下位开始的累加和是指,从组内的下位的元素(后面的元素)朝向上位(前面)依次计算累加和。
[0279] 接着,分组部113藉由[e1]×[x1]获得下面的[k1]。
[0280] [k1]=(0,1,0,2,1,0,2,1)T
[0281] 之后,分组部113计算[t1]←EQ([k1],1),由此获得下面的[t1]。
[0282] [t1]=(0,1,0,0,1,0,0,1)T
[0283] 该[t1]是与分类目的地「1」对应的分类目的地单位检测向量。该分类目的地单位检测向量[t1]是对数据向量的各元素中的、各组内被分类位分类目的地「1」的元素的端点(即,最后的元素)进行检测而得的向量。即,上述分类目的地单位检测向量[t1]表示数据向量[v]的第2个元素为第1个组中被分类为分类目的地「1」的元素的最后的元素(即,端点)。同理,表示数据向量[v]的第5个元素为第3个组中被分类为分类目的地「1」的元素的最后的元素。同理,表示数据向量[v]的第8个元素为第4个组中被分类为分类目的地「1」的元素的最后的元素。
[0284] 同理,例如,在可取为分类目的地的值是「0」的情况下,首先,分组部113计算[e0]←EQ([f],0),由此获得下面的[e0]。
[0285] [e0]=(1,0,1,0,0,1,0,0)T
[0286] 接着,分组部113计算由组信息向量[g]表示的组内的从下位开始的累加和,由此获得下面的[x0]。
[0287] [x0]=(1,0,1,1,1,1,0,0)T
[0288] 接着,分组部113藉由[e0]×[x0]获得下面的[k0]。
[0289] [k0]=(1,0,1,0,0,1,0,0)T
[0290] 之后,分组部113计算[t0]←EQ([k0],1),藉此获得下面的[t0]。
[0291] [t0]=(1,0,1,0,0,1,0,0)T
[0292] 该[t0]是与分类目的地「0」对应的分类目的地单位检测向量。该分类目的地单位检测向量[t0]是对数据向量的各元素中的、各组内被分类为分类目的地「0」的元素的端点(即,最后的元素)进行检测而得的向量。即,上述分类目的地单位检测向量[t0]表示数据向量[v]的第1个元素为第1个组内被分类为分类目的地「0」的元素的最后的元素(即,端点)。同理,表示数据向量[v]的第3个元素为第2个组中被分类为分类目的地「0」的元素的最后的元素。同理,表示数据向量[v]的第6个元素为第3个组中被分类为分类目的地「0」的元素的最后的元素。
[0293] 步骤2:将所有分类目的地单位检测向量的和计算为检测向量。
[0294] 即,例如,在获得了上述分类目的地单位检测向量[t0]和[t1]的情况下,分组部113藉由[t]=[t0]+[t1]获得下面的检测向量[t]。
[0295] [t]=(1,1,1,0,1,1,0,1)T
[0296] 该检测向量[t]是对数据向量的各元素中的、各组内为各分类目的地「0」和「1」的端点的元素进行检测而得的向量。
[0297] 接着,分组部113藉由分类目的地向量分别对数据向量和检测向量进行稳定排序,由此获得分类后的数据向量和组信息向量(步骤S404)。
[0298] 即,例如,分组部113对数据向量[v]按分类目的地向量[f]的元素的升序进行稳定排序,由此获得下面的[v’]。
[0299] [v’]=(3,4,6,0,5,1,7,2)T
[0300] 该[v’]是分类后的数据向量。
[0301] 同理,例如,分组部113对检测向量[t]按分类目的地向量[f]的元素的升序进行稳定排序,由此获得下面的[g’]。
[0302] [g’]=(1,1,1,1,0,1,0,1)T
[0303] 该[g’]是分类后的组信息向量。
[0304] 之后,分组部113输出分类后的数据向量和分类后的组信息向量(步骤S405)。
[0305] 据此,可获得对([Ti],[qi]×d+[fi])的记录编号按[v’]进行排序后的数据集合([Ti+1],[qi+1])和组信息向量[gi+1]=[g’]。
[0306] <总结>
[0307] 如上所述,当根据给定的隐藏值的数据集合使秘密决策树进行学习时,本实施方式的秘密决策树学习装置10藉由在同一层次的所有节点集中进行数据集合的划分,可使数据集合整体的参照次数呈指数级减少。具体而言,例如,在决策树为高度h以下的二叉树的h情况下,现有技术中,需要Θ(2)次的参照次数,然而,本实施方式的秘密决策树学习装置
10中,可为O(h)次。
[0308] 本发明并不限定于上述具体公开的实施方式,只要不脱离权利要求书记载的范围,还可对其进行各种各样的变形,变更,与现有技术的结合等。
[0309] [附图标记说明]
[0310] 10   秘密决策树学习装置
[0311] 101  输入部
[0312] 102  秘密决策树学习部
[0313] 103  输出部
[0314] 104  存储部
[0315] 111  初始化部
[0316] 112  划分部
[0317] 113  分组部
[0318] 114  节点提取部
[0319] 201  输入装置
[0320] 202  显示装置
[0321] 203  外部I/F
[0322] 203a 记录媒体
[0323] 204  通信I/F
[0324] 205  处理器
[0325] 206  存储装置
[0326] 207  总线。
QQ群二维码
意见反馈