CN108334951B - 针对决策树的节点的数据的预统计 - Google Patents
针对决策树的节点的数据的预统计 Download PDFInfo
- Publication number
- CN108334951B CN108334951B CN201710050188.4A CN201710050188A CN108334951B CN 108334951 B CN108334951 B CN 108334951B CN 201710050188 A CN201710050188 A CN 201710050188A CN 108334951 B CN108334951 B CN 108334951B
- Authority
- CN
- China
- Prior art keywords
- data samples
- node
- feature
- data
- samples
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003066 decision tree Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 53
- 230000004044 response Effects 0.000 claims description 17
- 238000003672 processing method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 17
- 238000013459 approach Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012549 training Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009828 non-uniform distribution Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000013077 scoring method Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/162—Segmentation; Edge detection involving graph-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及基于针对节点的数据的预统计的决策树生成。获取针对决策树的节点的多个数据样本,这些数据样本关于第一特征具有相应的特征值。在从预定义的多个数值范围中确定目标范围,使得落入目标范围中的特征值的数目超过了预定阈值数目。继而,将除落入目标范围中的特征值之外的其余特征值分配到相应的数值范围,并且对基于其余特征值的分配对落入所有数值范围中的特征值计数,以用于多个数据样本向节点的子节点的分配。此种方式,显著提高了数据处理速度和效率,进而提高了决策树的生成速度和效率。
Description
背景技术
决策树是机器学习模型或过程中广泛使用的一项技术。利用该技术,可以对数据之间的非线性相关性进行建模,并且可以得到能够解释的结果,而无需额外的诸如归一化等特征预处理。在与不同的损失函数组合时,决策树可以跨分类、递归和排名等各种领域使用。而且,在与诸如套袋法(bagging)和提升法(boosting)等不同的集成技术组合时,可以衍生出多种决策树算法,例如包括随机森林、梯度提升决策树(GBDT)等等。作为示例,决策树已经通过与不同的损失函数和不同的集成技术组合而广泛用于如下网络(例如Web)应用中:Web搜索中的文档排名、广告目标的点击预测、等等。
在决策树算法中,通过从根部递归地对各个节点进行分裂来实现单棵树的拟合。传统的决策树的生成需要对训练数据进行可观数目的访问,这种频繁的访问将不可避免地引入了很大的处理延时,大大降低了处理效率。
发明内容
本公开的实施例提出了一种基于决策树的数据处理机制。该机制针对节点的数据样本的特征值进行预统计,以找出较多特征值所落入的数值范围。借助于该统计在将数据样本分配到节点的子节点时仅需要对一少部分数据进行访问。
在一些实施例中,针对决策树的节点的多个数据样本被获取,这些数据样本关于某个特征具有相应的特征值。继而,来自于预定义的多个数值范围中的目标范围被确定,使得落入目标范围中的特征值的数目超过了预定阈值数目。相应地,只需将除落入目标范围中的特征值之外的其余特征值分配到相应的数值范围,就可以对落入所有数值范围中的特征值计数,以用于多个数据样本向节点的子节点的分配。此种方式,可以显著提高数据处理速度和效率,进而提高了决策树的生成速度和效率。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了能够实施本公开的多个实现的计算环境的框图;
图2示出了根据本公开的某些实施例的树的节点的示例分裂过程;
图3示出了根据本公开的某些实施例的系统中的多个机器以样本并行的方式执行节点分裂的示例流程;
图4示出了根据本公开的某些实施例的系统中的多个机器以特征并行的方式执行节点分裂的示例流程;
图5示出了根据本公开的某些实施例的生成决策树的示例过程;以及
图6示出了根据本公开的某些实施例的方法的流程图。
在所有附图中,相同或相似参考数字表示相同或相似元素。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在此使用的术语“数据样本”是指用于对学习模型(或过程)进行训练的数据。数据样本的示例包括而不限于,网络(例如Web)搜索排名中的文档,广告点击预测中的广告,等等。
在此使用的术语“特征”是指作为决策树生成依据的信息,可以基于该信息可以将决策树中的一个节点分裂为子节点。作为示例,在Web搜索的排名应用中,特征可以包括但不限于如下三类:1)对查询进行建模的特征,例如包括查询中包括的项的数目、每个项的项频和逆文档频率值、不同种类的项嵌套、扩展查询、以及查询的分段等等;2)对Web文档进行建模的特征,例如包括网页排名的值、不同的锚文本的数目、文档的语言/区域标识、以及文档的分类等等;3)对查询与文档的相关性进行建模的特征,该特征描述查询与文档的匹配度,例如包括每个查询项在文档标题和锚文本中出现的频率、以及查询与文档之间的嵌套相似度等等。在广告点击预测的应用中,特征可以包括但不限于用户简档(例如,用户年龄、性别、购物偏好、等等),搜索查询内容,查询上下文(例如,日期、时间、位置、浏览器、设备、等等),广告内容,查询与广告之间的(句法和语义二者的)匹配相似度,等等。
在此使用的术语“特征值”是指用于指示数据样本与特征之间的相关度的数值。特征值可以为任意适当值,包括连续的或离散的值。特征值可以由相关专业人员人工地确定。
在此使用的术语“训练过程”或“学习过程”是指利用经验或者数据优化系统性能的过程。例如,在Web搜索排名过程中,可以通过训练或学习过程,逐渐优化排名的准确性。在本公开的上下文中,为讨论方便之目的,术语“训练”或者“学习”可以互换使用。
在此使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
如上所述,决策树已经在机器学习模型或过程中得到广泛使用。例如,在Web搜索的排名应用中,给定一个输入用户查询,可以利用基于决策树的机器学习模型预测文档候选的相关度,继而可以根据所预测的值对文档候选进行排序。在广告点击预测的应用中,可以利用决策树预测用户点击广告的可能性。
如上所述,传统的决策树的生成需要对训练数据进行可观数目的访问。例如,对树的每个节点进行分裂时,都需要遍历所有的训练数据,以便从所有分裂候选中找出最佳分裂。这将不可避免地引入很大的处理延时并且显著降低处理效率。特别地,对于Web应用的学习过程,目前已经有大规模的数据可以利用。这些数据可以包括数以亿计的数据样本,并且每个数据样本可以具有数以千计的特征。而且,Web应用还可以使用大规模的学习模型,该模型可以集成上千棵树,每棵树可以生成上百个叶子节点。这些大规模的数据和模型无疑会进一步增加处理延时并且降低处理效率。
一种用于Web应用的传统机器学习模型支持样本并行方式的决策树生成。例如,可以将驻留于树的单个节点的数据样本分成多个数据部分。并行地对每个数据部分进行处理以确定局部最佳分裂,继而将各个局部最佳分裂合在一起从而确定全局最佳分裂。这种样本并行的处理方式可以实现针对样本的有效扩展,从而可以在学习过程中利用大量的数据样本。然而,在利用这种传统模型对每个数据部分进行处理以确定局部最佳分裂时,仍然需要遍历整个该数据部分,因而仍然会造成很大的处理延时。
为至少部分地解决上述问题以及其它潜在问题,本公开的实施例提出了一种高效的基于决策树的数据处理方法。总体上,首先获取针对决策树的节点的多个数据样本,这些数据样本关于某个特征(称为“第一特征”)具有相应的特征值。继而,从预定义的多个数值范围中确定目标范围,使得落入目标范围中的特征值的数目超过预定阈值数目(称为“第一阈值数目”)。将除落入目标范围中的特征值之外的其余特征值分配到这些预定的数值范围,并且由此对落入所有数值范围中的特征值计数,以用于这些数据样本向节点的子节点的分配。
为了便于理解本公开的原理和思想,首先考虑Web搜索排名的例子。当然,应当理解的是,在此描述的示例仅仅是为了便于理解和阐释,无意以任何方式限制本公开的范围。
在此示例中,可以例如响应于搜索查询获得具有属性的文档(即,数据样本文档)的集合。文档的属性例如作者、创建时间、每个查询项在文档中出现的频率、等等。这些属性可以称为“特征”。所获取的文档关于每个属性都具有相应的属性值(即,特征值),用于指示文档关于该属性的相关度。在对这些文档进行处理以生成决策树的过程中,针对决策树的一个节点,可以获取驻留于该节点的多个文档,并且从预定义的多个数值范围中确定较多的这些文档的相关度值(例如,相关度值的数目超过第一阈值数目)所落入的目标范围。继而,仅将除落入目标范围的特征值之外的其余的特征值分配到相应的数值范围,并且在此基础上,对落入各个数值范围中的特征值计数,以用于后续将这些文档分配给该节点的至少一个子节点。
根据本公开的实施例,可以基于数据样本的特征值的预统计而找出落入了较多特征值的目标范围,从而仅需执行除这些特征值之外的其余的特征值到相应的数值范围的分配,就可以实现对所有数值范围内的特征值的计数。这种方式显著减少了对数据样本的访问次数,从而大大节省了处理时间并且提高了处理速度和效率。
以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。
在一些实现中,计算设备100可以被实现为各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(CPU)、微处理器、控制器、微控制器。
计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储器120可以包括一个或多个程序模块122,这些程序模块被配置为执行本文所描述的各种实现的功能。模块122可以由处理单元110访问和运行,以实现相应功能。
存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。特别地,存储设备130中存储数据样本集合以及各数据样本关于一个或多个特征的特征值,这些数据样本和特征值能够被处理单元110访问。
通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、触摸屏、追踪球、语音输入设备等。作为示例,如图所示,可以通过输入设备150输入一个查询请求170。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。针对查询请求170的查询结果175可以由输出设备160输出。
在一些实现中,所输入的查询请求170可以在计算设备100中被进一步处理。例如,可以基于查询请求170从存储设备130中获取数据样本集合。基于对数据样本集合的处理,模块122可以生成决策树。例如,在对决策树的一个节点进行分裂时,模块122可以获取驻留于该节点的多个数据样本180-1到180-N(统称为“数据样本180”),这些数据样本具有关于某个特征的相应特征值185-1到185-N(统称为“特征值185”)。模块122可以对落入多个预定义的数值范围190-1到190-K(统称为“数值范围190”)中的特征值185计数。在一些实现中,模块122可以基于此计数将该数据样本分配到节点的子节点。在一些实现中,模块122可以进一步基于所生成的决策树产成查询结果175,并且将查询结果175提供给输出单元160以供输出。
在传统的决策树生成方法中,通过如下方式来构造二叉树:从根节点开始递归地对节点候选进行分裂,直到叶子节点的数目或者树的深度达到预定的限度。考虑单个节点,其分裂过程可以包括如下两个步骤:(1)找到最佳分裂;以及(2)实施分裂。首先,在找到最佳分裂步骤中,基于对该节点的数据样本的处理,列举所有特征的用于实施分裂的所有可能的阈值特征值,继而找出最佳分裂。例如,找出最佳特征和该特征的最佳阈值特征值,使得数据样本按照该特征和该阈值特征值分配到相应子节点时,到达不同子节点的数据样本的差异最大。继而,在实施分裂步骤中,按照最佳分裂将数据样本分配到左子节点或者右子节点。
下面结合搜索查询描述一个具体示例。在此示例中,同样可以例如响应于搜索查询获得具有属性的文档(即,数据样本文档)的集合。文档的属性例如作者、创建时间、每个查询项在文档中出现的频率、等等。这些属性可以称为“特征”。所获取的文档关于每个属性都具有相应的属性值(即,特征值),用于指示文档关于该属性的相关度。
在找到最佳分裂步骤中,可以首先基于所有属性的所有可能的属性值将数据样本文档划分成文档子集。继而,可以针对某个属性找到使所得到的文档子集区别最大的最佳属性值,也即,以最大可能性将文档区分开的最佳属性值。接下来,将基于所有属性的相应的最佳属性值对数据样本文档进行划分的结果相比较,以找出使文档子集区别最大的最佳属性。在实施分裂步骤中,可以按照最佳属性和相应的最佳属性值来将数据样本文档划分成文档子集。
传统上,在找到最佳分裂步骤中,为了找出最佳分裂,要针对每个特征,基于数据样本的特征值和相应的阈值特征值确定样本到子节点的分配,并且计算每个可能的分裂的统计数据。一种传统的用于计算统计数据的方法是首先将数据样本关于一个特征的所有的连续特征值都分配到离散的多个数值范围。数值范围也可以称为“仓”(bin)。在得到每个仓的统计数据后,将所有仓的统计数据聚合在一起,以获得总的统计数据,例如柱状图(histogram)。该统计数据例如可以反映特征值的计数、针对该特征的目标决策树、等等。这样,针对每个特征都可以得到相应的柱状图,继而可以基于所有特征的柱状图找出最佳分裂。
然而,上述所有连续特征值到离散的仓的分配过程需要频繁地对所有数据样本进行访问,因此非常耗时。特别是在样本和/或特征数目庞大的情况下,这种分配过程耗费了大量的时间,大大降低了决策树的生成速度。
发明人注意到,通常情况下数据样本的相应特征值在各个数值范围内是非均匀分布的。例如,会存在某个数值范围,落入其中的特征值的数目比较多。这种非均匀分布可能归因于内在的数据稀疏性,该稀疏性例如由如下原因所导致:特征值遗漏,统计过程中零值的频繁输入,独热编码,特定的二进制算法,等等。
因此,根据本公开的实施例,从预定义的多个数值范围190中确定目标范围190-H,使得落入目标范围190-H中的特征值185的数目超过第一阈值数目。对于落入目标范围190-H中这些特征值,无需执行到数值范围的分配,只需将除这些特征值其之外的其余的特征值分配到相应的数值范围。可以根据其余特征值的分配来对落入所有数值范围中的特征值计数。进而,可以根据该计数以及例如对这些数据值范围进行其他统计,将数据样本180分配到节点的子节点。以此方式,可以节省处理时间,并且提高将数据样本分配到相应子节点的速度和效率。将数据样本从节点分配到子节点的过程也可以称为“节点分裂”。
图2示出了根据本公开的某些实施例的树的节点的示例分裂过程200。如图所示,针对决策树的节点的多个数据样本180(例如,数据样本180-1到180-N)被获取,这些数据样本180关于特征具有相应的特征值185(例如,特征值185-1到185-N)。根据本公开的实施例,多个数据样本180可以任意适当方式从针对该节点的数据样本集合中选择。例如,数据样本180可以是针对节点的数据样本全集或子集。这方面的具体实施例将在后文详细描述。
图2还示出了预定义的多个数值范围190(例如,数值范围190-1到190-K)。根据本公开的实施例,从这些数值范围190中确定落入其中的特征值的数目超过第一阈值数目的目标范围190-H。目标范围190-H的确定可以通过特征值分布的任意适当预统计来实现。在特征值185为连续的值的实施例中,可以直接统计特征值的分布情况,以找出较多特征值所处的一段数值区间。本领域中已知或将来开发的任何统计方法均可在此使用。通过将该段数值区间与预定义的数值范围相匹配可以找出其中的特征值超过第一阈值数目的目标范围190-H。作为示例,可以基于落入各个数值范围中的特征值的数目来确定第一阈值数目,以使得所确定的目标范围190-H内的特征值较多或者最多。
在某些实施例中,为了进一步节省处理时间和存储空间,特征值185可以是经过预处理(例如,离散化)的值而不是原始值。例如,可以预先将各数据样本的原始特征值(例如,连续的值)用其所落入的相应数值范围190的标识(ID)来代替。相应地,可以直接统计各特征值在各个数值范围190的分布情况,并且从中找出具有较多或者最多特征值的目标范围190-H。
在确定了目标范围190-H之后,将除落入目标范围190-H中的特征值之外其余的特征值分配到相应的数值范围。例如,如图2所示,针对数据样本180-J,找到相应的特征值185-I,并且将其分配到数值范围190-G内。特征值到数值范围的分配可以任意适当方式来实现。在某些实施例中,可以将特征值存储到为相应数值范围所分配的存储区内。在这种情况下,因为无需存储落入目标范围190-H中的特征值,所以在节省处理时间的同时,还可以显著节省存储空间。
在特征值未经例如离散化的预处理的实施例中,可以将除落入除目标范围之外的其余数值范围内的特征值用相应的数值范围的ID来代替,从而可以在进行特征值到数值范围的分配的同时,实现这些特征值的离散化。而对于落入目标范围内的特征值,可以直接使用目标范围的ID来代替,从而进一步提高处理效率。
在完成了除落入目标范围190-H中的特征值之外的特征值(例如,特征值185-I)到相应数值范围(例如,数值范围190-G)的分配之后,对落入所有数值范围中的特征值计数,以便后续执行数据样本180到节点的子节点的分配。根据本公开的实施例,可以任意适当方式实现该计数。作为示例,对于除目标范围190-H之外的数值范围,可以直接对分配到该数值范围内特征值计数。而对于目标范围190-H,可以将相应计数210计算为多个数据样本180的总数目减去落入其余数值范围内的特征值的总数目的差值。这样,数据样本的处理速度被大大提高。
除了各个数值范围中所包括的特征值的数目,在某些实施例中,还可以获得与各个数值范围有关的其他统计数据,例如,针对该特征的目标决策树等等。作为示例,考虑如上所述的基于数据样本在各个仓的统计数据(例如,柱状图)来执行节点分裂。在此示例中,所有数据样本关于该特征的总的统计数据是各个数据样本的相应统计数据的加性求和。当前节点的总的统计数据可以从其父节点继承。在这种情况下,可以通过从总的统计数据中减去除目标范围之外的其余的数值范围的统计数据,得到目标范围的统计数据。基于分配到各个仓的特征值获得相应的柱状图(即,统计数据)以及基于这些统计数据来分裂节点的方法在本领域中是已知的,故在此不再赘述。
以此方式,在对节点进行分裂时,仅需对除落入目标范围190-H中的特征值之外的其余的特征值执行到相应的数值范围的分配。这样,数据处理速度被大大提高,而且节点分裂的速度也相应地提高。
如上所述,数据样本180可以是针对节点的数据样本全集或子集。举例而言,为了提高决策树的生成速度,在某些实施例中,基于决策树的数据处理可以分布在多个机器上执行。机器可以是物理的机器,例如物理的计算设备,或者可以是虚拟的机器,例如一个或多个物理的计算设备上的虚拟机。在这种情况下,这些机器可以并行方式分布地执行与决策树生成相关的数据处理。可以任意适当的并行方式来执行上述分布处理。作为示例,可以采用样本并行、特征并行或者任务并行的方式。在采用样本并行方式的实施例中,每个机器可以从针对节点的数据样本集合中选择一个子集,并且对该数据样本子集关于所有可用于节点分裂的特征的相应特征值进行处理。下面结合图3描述一个具体示例。
图3示出了根据本公开的某些实施例的系统300中的多个机器以样本并行的方式执行节点分裂的示例流程。如图所示,系统300中包括多个工作机器310-1到310-M(统称为“工作机器310”)和一个主控机器315。应理解,系统300中可以包括能够协同执行节点分裂的任意适当数目的工作机器和主控机器。
在此示例中,包括多个特征320-1到320-P(统称为“特征320”)的特征集合可用于执行节点分裂。每个工作机器310可以从数据样本集合中选择一个数据样本子集325-1到325-M(统称为“数据样本子集325”)。每个数据样本关于特征集合中的所有特征320都具有相应的特征值。例如,如图所示,工作机器310-1可以选择数据样本子集325-1,其中可以包括多个数据样本180-1到180-N。继而,每个工作机器310可以基于每个特征的特征值到相应数值范围的分配,计算该特征的局部统计数据。例如,工作机器310-1可以基于多个数据样本180-1到180-N关于多个特征320-1到320-P的特征值计算每个特征320的柱状图(即,局部统计数据),其大小等于仓(即,数值范围)的数目。
因为每个工作机器310仅对部分数据样本的特征值进行了处理,所以得到的局部统计数据仅能反映部分数据样本的情况。相应地,,如图3所示,每个工作机器310都将所确定针对所有特征的局部统计数据(例如,大小等于仓的数目的柱状图)发送给主控机器315。在330,主控机器315将局部统计数据聚合在一起,并且由此确定最佳分裂。例如,找出最佳特征和该特征的最佳阈值特征,使得数据样本集合按照最佳特征和其最佳阈值特征值分配到各个子节点时,到达不同子节点的数据样本的差异最大。基于各个特征的相应特征值的统计数据找出最佳分裂的方法在本领域中是已知的,故在此不再赘述。
继而,主控机器315将全局最佳分裂的相关信息(例如,指示全局最佳特征和全局最佳阈值特征值)广播给各个工作机器310。每个工作机器310基于全局最佳分裂独立地确定相应的数据样本子集中的各个数据样本到各个子节点的分配。
可以理解,此种样本并行的分裂方式会引入一定的网络通信开销。例如,在每个工作机器310向主控机器315发送针对每个特征所确定的使用大小等于仓的数目的柱状图表示的统计数据的情况下,该通信开销与特征的数目(表示为“f”)和仓的数目(即,数值范围的数目,表示为“b”)的乘积有关,因而表示为O(f*b)。
如上所述,除了样本并行方式之外,在某些实施例中,还可以在多个机器之间采用特征并行方式对节点进行分裂。具体而言,多个机器中的每个机器都获取相应的数据样本集合中的所有数据样本。但是,每个机器仅对可用于节点分裂的特征集合中的部分特征的特征值进行处理。下面结合图4描述一个具体示例。
图4示出了根据本公开的某些实施例的系统300中的多个机器以特征并行的方式执行节点分裂的示例流程。如图所示,每个工作机器310可以从特征集合中选择一个特征子集410-1到410-M(统称为“特征子集410”)。继而,每个工作机器310可以基于所选择的特征子集410中的各个特征的特征值到相应数值范围的分配,计算这些特征的统计数据。例如,如图所示,工作机器310-1可以选择特征子集410-1,并且基于构成节点的数据样本集合的所有数据样本180-1到180-N关于特征子集410-1的特征值,计算特征子集410-1中的每个特征410的统计数据。
因为每个工作机器310都对所有的数据样本的特征值进行了处理,所以所得到的各个特征的统计数据具有全局意义。相应地,每个工作机器310可以基于所计算的统计数据确定局部最佳分裂。例如,从所选择的特征子集中找出局部最佳特征和该特征的最佳阈值特征,使得数据样本集合按照该局部最佳特征和其最佳阈值特征值分配到各个子节点时,到达不同子节点的数据样本的差异最大。继而,每个工作机器310可以向主控机器315发送局部最佳分裂的相关信息,该信息例如可以指示局部最佳特征和相应的最佳阈值特征值。
在420,主控机器315将局部最佳分裂聚合在一起并且确定全局最佳分裂。例如,从所有特征中找出全局最佳特征,使得数据样本集合按照全局最佳特征和相应的最佳阈值特征值分配到各个子节点时,到达不同子节点的数据样本的差异最大。因为各个特征的处理是在多个工作机器上分离地进行的,所以确定数据样本集合中的所有数据样本到相应子节点的分配的操作只能由已经对全局最佳特征进行了处理的工作机器来执行。在这种情况下,在该工作机器确定上述分配时,其他工作机器只能停下来等待。
为了进一步提高处理速度和减小处理延时,在某些实施例中,可以由各个工作机器310以样本并行的方式确定所有数据样本到各个子节点的分配,以代替单个机器确定。例如,如图4所示,主控机器315在确定了全局最佳分裂之后,可以将全局最佳特征和相应的最佳阈值特征值广播给所有工作机器310。每个工作机器310可以从针对节点的数据样本集合中选择一个数据样本子集325,并且获取所选择的数据样本子集关于全局最佳特征的相应特征值。该全局最佳特征可能已经或者尚未被该工作机器310处理。继而,每个工作机器310可以基于所获取的特征值和最佳阈值特征值的比较,将相应的数据样本分配到各个子节点。接下来,每个工作机器310确定数据样本到子节点的分配信息,并且将该信息发送给主控机器315。
根据本公开的实施例,数据样本到相应的子节点的分配信息可以实现为任意适当形式的信息。作为示例,数据样本到相应的子节点的分配信息可以包括该数据样本被分配到的子节点的ID。在子节点数目小于28时,可以使用8比特(即,1个字节)的子节点ID。而在节点数目小于216时,可以使用16比特(即,2个字节)的子节点ID。
在430,主控机器315将从各个工作机器310接收到的分配信息聚合在一起。可以理解,此种以样本并行的方式确定数据样本到子节点的分配的过程会引入与数据样本集合中的样本数目(表示为“s”)有关的网络通信开销,表示为O(s)。
为了进一步减少网络通信开销,在某些实施例中,可以代替子节点ID而将指示数据样本被分配到哪个子节点的信息包括在数据样本到相应的子节点的分配信息中。作为示例,在例如实施为二叉树的决策树中,单个节点可以被分裂为包括左子节点和右子节点的两个子节点。在此示例中,系统300中的工作机器310可以基于全局最佳特征的最佳阈值特征值与所选择的数据样本子集的相应特征值的比较,确定将该数据样本分配给左子节点还是右子节点。继而,工作机器310可以使用1比特来指示数据样本分配给左子节点还是右子节点,并且将该1比特的指示符包括在数据样本到子节点的分配信息中。
作为示例,可以用“0”指示数据样本被分配给左子节点,用“1”指示数据样本被分配给右子节点。以此方式,在节点数目小于28时,可以用1比特代替8比特来指示样本到节点信息。在节点数目小于216时,可以用1比特代替16比特。因而,可以大大减少系统开销。
应理解,上述将节点分裂成左右两个子节点仅仅是示例而非限制。根据本公开的实施例,节点可以被分裂为任意数目的子节点,该数目可以随着具体应用不同而不同。在节点被分裂为除两个之外的其他数目的子节点时,可以使用其他数目的比特来指示数据样本被分配到了哪个子节点。作为示例,可以用2个比特指示四个子节点中的一个子节点。
上述多个机器采用特征并行的方式分裂节点的方法,允许在决策树的生成过程中利用大量的特征,从而进一步提高了决策树拟合的准确性。特别地,因为数据样本通常是由供应商手动标注的,而特征可以通过句法组合和语义嵌套而生成,所以样本数目的增长速度远不及特征。在这种情况下,采用特征并行的方式更有益处。
为了进一步提高系统性能,在某些实施例中,多个机器可以在对各个特征的特征值进行处理时将样本并行和特征并行这两种方式组合在一起,以便进一步减小网络通信开销。作为示例,考虑到采用特征并行方式时的通信开销O(s)与针对节点的数据样本集合中的样本数目s有关,可以基于样本数目s与阈值数目(称为“第二阈值数目”)的比较来选择样本并行方式或者特征并行方式。
第二阈值数目可以基于任意适当规则来确定。考虑到采用样本并行方式时的通信开销O(f*b)与可应用于节点的特征集合中的特征数目f和数值范围的数目b的乘积有关,在某些实施例中,可以基于f*b来确定第二阈值数目。下面描述一个具体示例。在此示例中,数据样本到相应子节点的分配信息可以包括用1个字节表示的子节点ID。而且,每个数值范围的统计数据用具有3个元素的三元组来表示,每个元素具有4个字节。在这种情况下,第二阈值数目可以确定为f*b*12。相应地,如果s<f*b*12,则选择特征并行的方式,否则选择样本并行的方式。
第二阈值数目除了基于来f*b确定之外,在某些实施例中,还可以将机器数目(表示为“m”)考虑在内。如上所述,在多个工作机器310以样本并行的方式执行节点分裂时,每个工作机器310都向主控机器315发送针对每个特征所确定的局部统计数据。在这种情况下,网络通信开销与特征的数目f和数值范围的数目b以及机器数目m三者的乘积有关,表示为O(f*b*m)。相应地,可以基于f*b*m来确定第二阈值数目。
仍然考虑如上所述的示例,即数据样本到相应子节点的分配信息可以包括用1个字节表示的子节点ID,并且每个数值范围的统计数据用具有3个元素的三元组来表示,每个元素具有4个字节。在这种情况下,第二阈值数目可以确定为f*b*m*12。相应地,如果s<f*b*m*12,选择特征并行的方式,否则选择样本并行的方式。
如上所述,除了样本并行和特征并行之外,还可以采用任务并行的方式。为了进一步提高处理速度和效率,在某些实施例中,可以在样本并行和特征并行的基础上组合任务并行。例如,在多个机器以样本并行或者特征并行的方式对某个节点执行分裂的同时,多个机器中的每个机器还并行地对该节点的兄弟节点执行分裂。在多个机器同时以任务并行和样本并行方式工作时,每个机器要传输与多个兄弟节点相关的统计数据。因此,此时的网络中的通信开销也与特征的数目f和数值范围的数目b以及机器数目三者的乘积有关。因而,也可以基于f*b*m来确定第二阈值数目。
第二阈值数目可以由任意适当机器来确定。作为示例,可以由系统300中的主控机器315确定第二阈值数目,并且将第二阈值数目通知各工作机器310。作为备选,可以由系统300中的某个工作机器310来执行该确定。
在执行了上述节点分裂之后,可以继续对分裂得到的子节点进行分裂,以生成决策树。根据本公开的实施例,决策树可以基于节点的任意分裂方式而生成。在某些实施例中,可以采用逐个节点分裂的方式。例如,可以选择具有较高分裂增益的节点来继续执行分裂。分裂增益可以指示分裂后的子节点上的数据样本之间的差异大小。在实施为二叉树的决策树中,可以将分裂增益表示为左右子节点的得分之和减去父节点的得分。节点的得分与驻留在该节点上的数据样本有关,具体的计分方法可以随着损失函数和优化算法不同而有所变化。分裂的得分和增益的计算在本领域中是已知的,故在此不再赘述。
在某些实施例中,还可以逐层地执行节点分裂。例如,可以并行地执行针对多个兄弟节点的数据样本到相应的子节点的分配。此种方式可以大大提高处理效率以及节点分裂速度,从而提高决策树的生成效率。为了进一步提高决策树拟合的准确性,在某些实施例中,可以在生成树的过程中多执行几层(例如,一层或者两层)节点分裂。可以在分裂停止之后,从下至上的对所得的叶子节点候选进行合并。
图5示出了根据本公开的某些实施例的生成决策树500的示例过程。如图所示,从根节点505开始逐层地执行节点分裂。在决策树500的每一层,并行地对该层的所有节点510-1和510-2(或者,节点515-1、515-2和515-3)进行分裂。分裂操作持续执行,直到得到超过预定的阈值数目(称为“第三阈值数目”)的叶子节点候选为止。
继而,可以获取决策树500的底层子树520。该底层子树包括父节点515-1和通过对父节点515-1分裂生成的叶子节点候选525和530。接下来,确定针对底层子树中520的叶子节点候选525和530的数据样本之间的差异。如果该差异低于阈值差异,则可以将底层子树520中的叶子节点候选525和530移除,从而仅保留父节点515-1。
在一个实施例中,上述叶子节点候选的合并过程的算法的示例流程如下,其中:
图6示出了根据本公开的某些实施例的计算机实施的方法600的流程图。如图所示,在605,获取具有特征的多个数据样本,这些数据样本关于该特征具有相应的特征值。在610,从预定义的多个数值范围中确定目标范围,落入目标范围中的一组特征值的数目超过第一阈值数目。在615,将除所述一组特征值之外的特征值分配到相应的数值范围。在620,基于特征值到数值范围的分配,对数据样本进行分裂。注意,上文结合图1到图5所描述的特征均适用于方法600,在此不再赘述。
本文中所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的示意性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
用于实施本文所描述的主题的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开内容的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本文所描述的主题的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
以下列出了本公开的一些示例实现。
在一方面,提供了一种计算机实现的方法。该方法包括:获取针对决策树的节点的多个数据样本,该多个数据样本关于第一特征具有相应的特征值;从预定义的多个数值范围中确定目标范围,使得落入目标范围中的特征值的数目超过第一阈值数目;将除落入目标范围中的特征值之外的其余特征值分配到多个数值范围;以及基于其余特征值的分配,对落入多个数值范围中的特征值计数,以用于多个数据样本向节点的子节点的分配。
在一些实现方式中,对特征值计数包括:用多个数据样本的总数,减去落入除目标范围之外的其余数值范围的特征值的数目,作为落入目标范围中的特征值数目。
在一些实现方式中,数据处理分布在多个机器上执行,并且获取多个数据样本包括:在多个机器中的一个机器处,确定针对节点的数据样本集合中的样本数目是否低于第二阈值数目;以及响应于样本数目低于第二阈值数目,选择数据样本集合中的所有数据样本作为该多个数据样本。
在一些实现方式中,第一特征选自一个特征集合,并且第二阈值数目至少部分地基于特征集合中的特征数目和多个数值范围的数目的第一乘积来确定。
在一些实现方式中,第二阈值数目进一步至少部分地基于多个机器的数目和第一乘积的第二乘积来确定。
在一些实现方式中,子节点至少包括左子节点和右子节点,并且该方法还包括:在多个机器中的一个机器处,获得第二特征和第二特征的阈值特征值;从数据样本集合中选择一个数据样本子集;以及针对数据样本子集中的每个数据样本:将该数据样本的关于第二特征的特征值与阈值特征值比较,基于比较来确定将该数据样本分配给左子节点还是右子节点,以及向多个机器中的另一机器发送用于指示该确定的1比特指示符。
在一些实现方式中,获取多个数据样本还包括:响应于样本数目高于第二阈值数目,在多个机器中的一个机器处,选择数据样本集合的子集作为该多个数据样本。
在一些实现方式中,该方法还包括:基于特征值计数将数据样本从节点分配到子节点;确定是否已经获得决策树的多个叶子节点候选,该多个叶子节点候选的数目超过第三阈值数目;响应于确定已经获得多个叶子节点候选,获取决策树的底层子树,底层子树包括具有相同父节点的叶子节点候选和父节点;以及响应于针对底层子树中的叶子节点候选的数据样本之间的差异低于阈值差异,将底层子树中的叶子节点候选移除。
在一些实现方式中,节点具有兄弟节点,并且将数据样本从节点分配到子节点还包括:并行地执行数据样本从节点到子节点的分配以及针对兄弟节点的数据样本向兄弟节点的子节点的分配。
在一方面,提供了一种设备。该设备包括处理单元;以及存储器,耦合至处理单元并且存储有指令,指令在由处理单元执行时执行基于决策树的数据处理,包括动作:获取针对决策树的节点的多个数据样本,该多个数据样本关于第一特征具有相应的特征值;从预定义的多个数值范围中确定目标范围,使得落入目标范围中的特征值的数目超过第一阈值数目;将除落入目标范围中的特征值之外的其余特征值分配到多个数值范围;以及基于其余特征值的分配,对落入多个数值范围中的特征值计数,以用于多个数据样本向节点的子节点的分配。
在一些实现方式中,对特征值计数包括:用多个数据样本的总数,减去落入除目标范围之外的其余数值范围的特征值的数目,作为落入目标范围中的特征值数目。
在一些实现方式中,数据处理分布在多个机器上执行,并且获取多个数据样本包括:在多个机器中的一个机器处,确定针对节点的数据样本集合中的样本数目是否低于第二阈值数目;以及响应于样本数目低于第二阈值数目,选择数据样本集合中的所有数据样本作为该多个数据样本。
在一些实现方式中,第一特征选自一个特征集合,并且第二阈值数目至少部分地基于特征集合中的特征数目和多个数值范围的数目的第一乘积来确定。
在一些实现方式中,第二阈值数目进一步至少部分地基于多个机器的数目和第一乘积的第二乘积来确定。
在一些实现方式中,子节点至少包括左子节点和右子节点,并且动作还包括:在多个机器中的一个机器处,获得第二特征和第二特征的阈值特征值;从数据样本集合中选择一个数据样本子集;以及针对数据样本子集中的每个数据样本:将该数据样本的关于第二特征的特征值与阈值特征值比较,基于比较来确定将该数据样本分配给左子节点还是右子节点,以及向多个机器中的另一机器发送用于指示该确定的1比特指示符。
在一些实现方式中,获取多个数据样本还包括:响应于样本数目高于第二阈值数目,在多个机器中的一个机器处,选择数据样本集合的子集作为该多个数据样本。
在一些实现方式中,动作还包括:基于特征值计数将数据样本从节点分配到子节点;确定是否已经获得决策树的多个叶子节点候选,该多个叶子节点候选的数目超过第三阈值数目;响应于确定已经获得多个叶子节点候选,获取决策树的底层子树,底层子树包括具有相同父节点的叶子节点候选和父节点;以及响应于针对底层子树中的叶子节点候选的数据样本之间的差异低于阈值差异,将底层子树中的叶子节点候选移除。
在一些实现方式中,节点具有兄弟节点,并且将数据样本从节点分配到子节点还包括:并行地执行数据样本从节点到子节点的分配以及针对兄弟节点的数据样本向兄弟节点的子节点的分配。
在一方面,提供了一种计算机程序产品。该计算机程序产品存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在设备中运行时,使得设备执行基于决策树的数据处理,包括动作:获取针对决策树的节点的多个数据样本,该多个数据样本关于第一特征具有相应的特征值;从预定义的多个数值范围中确定目标范围,使得落入目标范围中的特征值的数目超过第一阈值数目;将除落入目标范围中的特征值之外的其余特征值分配到多个数值范围;以及基于其余特征值的分配,对落入多个数值范围中的特征值计数,以用于多个数据样本向节点的子节点的分配。
在一些实现方式中,对特征值计数包括:用多个数据样本的总数,减去落入除目标范围之外的其余数值范围的特征值的数目,作为落入目标范围中的特征值数目。
在一些实现方式中,数据处理分布在多个机器上执行,并且获取多个数据样本包括:在多个机器中的一个机器处,确定针对节点的数据样本集合中的样本数目是否低于第二阈值数目;以及响应于样本数目低于第二阈值数目,选择数据样本集合中的所有数据样本作为该多个数据样本。
在一些实现方式中,第一特征选自一个特征集合,并且第二阈值数目至少部分地基于特征集合中的特征数目和多个数值范围的数目的第一乘积来确定。
在一些实现方式中,第二阈值数目进一步至少部分地基于多个机器的数目和第一乘积的第二乘积来确定。
在一些实现方式中,子节点至少包括左子节点和右子节点,并且动作还包括:在多个机器中的一个机器处,获得第二特征和第二特征的阈值特征值;从数据样本集合中选择一个数据样本子集;以及针对数据样本子集中的每个数据样本:将该数据样本的关于第二特征的特征值与阈值特征值比较,基于比较来确定将该数据样本分配给左子节点还是右子节点,以及向多个机器中的另一机器发送用于指示该确定的1比特指示符。
在一些实现方式中,获取多个数据样本还包括:响应于样本数目高于第二阈值数目,在多个机器中的一个机器处,选择数据样本集合的子集作为该多个数据样本。
在一些实现方式中,动作还包括:基于特征值计数将数据样本从节点分配到子节点;确定是否已经获得决策树的多个叶子节点候选,该多个叶子节点候选的数目超过第三阈值数目;响应于确定已经获得多个叶子节点候选,获取决策树的底层子树,底层子树包括具有相同父节点的叶子节点候选和父节点;以及响应于针对底层子树中的叶子节点候选的数据样本之间的差异低于阈值差异,将底层子树中的叶子节点候选移除。
在一些实现方式中,节点具有兄弟节点,并且将数据样本从节点分配到子节点还包括:并行地执行数据样本从节点到子节点的分配以及针对兄弟节点的数据样本向兄弟节点的子节点的分配。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本公开,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种基于决策树的数据处理方法,包括:
在多个机器处以分布方式;
获取针对所述决策树的节点的多个数据样本,所述多个数据样本关于第一特征具有相应的特征值;
从预定义的多个数值范围中确定目标范围,使得落入所述目标范围中的特征值的数目超过第一阈值数目;
将除落入所述目标范围中的所述特征值之外的其余特征值分配到所述多个数值范围;以及
基于所述其余特征值的所述分配,对落入所述多个数值范围中的所述特征值计数,以用于所述多个数据样本向所述节点的子节点的分配。
2.根据权利要求1所述的方法,其中对所述特征值计数包括:
用所述多个数据样本的总数,减去落入除所述目标范围之外的其余数值范围的特征值的数目,作为落入所述目标范围中的特征值数目。
3.根据权利要求1所述的方法,其中获取所述多个数据样本包括:
在所述多个机器中的一个机器处,确定针对所述节点的数据样本集合中的样本数目是否低于第二阈值数目;以及
响应于所述样本数目低于所述第二阈值数目,选择所述数据样本集合中的所有数据样本作为所述多个数据样本。
4.根据权利要求3所述的方法,其中所述第一特征选自一个特征集合,并且所述第二阈值数目至少部分地基于所述特征集合中的特征数目和所述多个数值范围的数目的第一乘积来确定。
5.根据权利要求4所述的方法,其中所述第二阈值数目进一步至少部分地基于所述多个机器的数目和所述第一乘积的第二乘积来确定。
6.根据权利要求3所述的方法,其中所述子节点至少包括左子节点和右子节点,并且所述方法还包括:
在所述多个机器中的所述一个机器处,获得第二特征和所述第二特征的阈值特征值;
从所述数据样本集合中选择一个数据样本子集;以及
针对所述数据样本子集中的每个数据样本:
将该数据样本的关于所述第二特征的特征值与所述阈值特征值比较,
基于所述比较来确定将该数据样本分配给所述左子节点还是所述右子节点,以及
向所述多个机器中的另一机器发送用于指示所述确定的1比特指示符。
7.根据权利要求3所述的方法,其中获取所述多个数据样本还包括:
响应于所述样本数目高于所述第二阈值数目,在所述多个机器中的所述一个机器处,选择所述数据样本集合的子集作为所述多个数据样本。
8.根据权利要求1所述的方法,还包括:
基于所述特征值计数将所述数据样本从所述节点分配到所述子节点;
确定是否已经获得所述决策树的多个叶子节点候选,所述多个叶子节点候选的数目超过第三阈值数目;
响应于确定已经获得所述多个叶子节点候选,获取所述决策树的底层子树,所述底层子树包括具有相同父节点的所述叶子节点候选和所述父节点;以及
响应于针对所述底层子树中的所述叶子节点候选的数据样本之间的差异低于阈值差异,将所述底层子树中的所述叶子节点候选移除。
9.根据权利要求8所述的方法,其中所述节点具有兄弟节点,并且将所述数据样本从所述节点分配到所述子节点还包括:
并行地执行所述数据样本从所述节点到所述子节点的分配以及针对所述兄弟节点的数据样本向所述兄弟节点的子节点的分配。
10.一种电子设备,包括:
处理单元;以及;
存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行基于决策树的数据处理,包括动作:
在多个机器处以分布方式,
获取针对所述决策树的节点的多个数据样本,所述多个数据样本关于第一特征具有相应的特征值;
从预定义的多个数值范围中确定目标范围,使得落入所述目标范围中的特征值的数目超过第一阈值数目;
将除落入所述目标范围中的所述特征值之外的其余特征值分配到所述多个数值范围;以及
基于所述其余特征值的所述分配,对落入所述多个数值范围中的所述特征值计数,以用于所述多个数据样本向所述节点的子节点的分配。
11.根据权利要求10所述的设备,其中对所述特征值计数包括:
用所述多个数据样本的总数,减去落入除所述目标范围之外的其余数值范围的特征值的数目,作为落入所述目标范围中的特征值数目。
12.根据权利要求10所述的设备,其中获取所述多个数据样本包括:
在多个机器中的一个机器处,确定针对所述节点的数据样本集合中的样本数目是否低于第二阈值数目;以及
响应于所述样本数目低于所述第二阈值数目,选择所述数据样本集合中的所有数据样本作为所述多个数据样本。
13.根据权利要求12所述的设备,其中所述第一特征选自一个特征集合,并且所述第二阈值数目至少部分地基于所述特征集合中的特征数目和所述多个数值范围的数目的第一乘积来确定。
14.根据权利要求13所述的设备,其中所述第二阈值数目进一步至少部分地基于所述多个机器的数目和所述第一乘积的第二乘积来确定所述第二阈值数目来确定。
15.根据权利要求12所述的设备,其中所述子节点包括左子节点和右子节点,并且所述动作还包括:
在所述多个机器中的所述一个机器处,获得第二特征和所述第二特征的阈值特征值;
从所述数据样本集合中选择一个数据样本子集;以及
针对所述数据样本子集中的每个数据样本:
将该数据样本的关于所述第二特征的特征值与所述阈值特征值比较,
基于所述比较来确定将该数据样本分配给所述左子节点还是所述右子节点,以及
向所述多个机器中的另一机器发送用于指示所述确定的1比特指示符。
16.根据权利要求12所述的设备,其中获取所述多个数据样本还包括:
响应于所述样本数目高于所述第二阈值数目,选择所述数据样本集合的子集作为所述多个数据样本。
17.根据权利要求10所述的设备,其中所述节点是所述决策树的根节点,并且所述动作还包括:
基于所述特征值计数将所述数据样本从所述节点分配到所述子节点;
确定是否已经获得所述决策树的多个叶子节点候选,所述多个叶子节点候选的数目超过第三阈值数目;
响应于确定已经获得所述多个叶子节点候选,获取所述决策树的底层子树,所述底层子树包括具有相同父节点的所述叶子节点候选和所述父节点;以及
响应于针对所述底层子树中的所述叶子节点候选的数据样本之间的差异低于阈值差异,将所述底层子树中的所述叶子节点候选移除。
18.根据权利要求17所述的设备,其中所述节点具有兄弟节点,并且将所述数据样本从所述节点分配到所述子节点还包括:
并行地执行所述数据样本从所述节点到所述子节点的分配以及针对所述兄弟节点的数据样本向所述兄弟节点的子节点的分配。
19.一种非瞬态计算机存储介质,包括存储在其中的机器可执行指令,所述机器可执行指令在设备中运行时,使得所述设备执行基于决策树的数据处理,包括动作:
在多个机器处以分布方式,
获取针对所述决策树的节点的多个数据样本,所述多个数据样本关于第一特征具有相应的特征值;
从预定义的多个数值范围中确定目标范围,使得落入所述目标范围中的特征值的数目超过第一阈值数目;
将除落入所述目标范围中的所述特征值之外的其余特征值分配到所述多个数值范围;以及
基于所述其余特征值的所述分配,对落入所述多个数值范围中的所述特征值计数,以用于所述多个数据样本向所述节点的子节点的分配。
20.根据权利要求19所述的非瞬态计算机存储介质,其中所述第一特征选自一个特征集合,并且获取所述多个数据样本包括:
在多个机器中的一个机器处,确定针对所述节点的数据样本集合中的样本数目是否低于第二阈值数目,所述第二阈值数目至少部分地基于所述特征集合中的特征数目和所述多个数值范围的数目的第一乘积来确定;以及
响应于所述样本数目低于所述第二阈值数目,选择所述数据样本集合中的所有数据样本作为所述多个数据样本。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710050188.4A CN108334951B (zh) | 2017-01-20 | 2017-01-20 | 针对决策树的节点的数据的预统计 |
US16/479,536 US11600005B2 (en) | 2017-01-20 | 2018-01-16 | Pre-statistics of data for node of decision tree |
PCT/US2018/013748 WO2018136369A1 (en) | 2017-01-20 | 2018-01-16 | Pre-statistics of data for node of decision tree |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710050188.4A CN108334951B (zh) | 2017-01-20 | 2017-01-20 | 针对决策树的节点的数据的预统计 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334951A CN108334951A (zh) | 2018-07-27 |
CN108334951B true CN108334951B (zh) | 2023-04-25 |
Family
ID=61163800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710050188.4A Active CN108334951B (zh) | 2017-01-20 | 2017-01-20 | 针对决策树的节点的数据的预统计 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11600005B2 (zh) |
CN (1) | CN108334951B (zh) |
WO (1) | WO2018136369A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7176359B2 (ja) | 2018-11-05 | 2022-11-22 | 株式会社リコー | 学習装置および学習方法 |
CN111325227B (zh) * | 2018-12-14 | 2023-04-07 | 深圳先进技术研究院 | 数据特征提取方法、装置及电子设备 |
US11532132B2 (en) * | 2019-03-08 | 2022-12-20 | Mubayiwa Cornelious MUSARA | Adaptive interactive medical training program with virtual patients |
US10997178B2 (en) * | 2019-06-11 | 2021-05-04 | Sap Se | Implicit partitioning |
CN110633667B (zh) * | 2019-09-11 | 2021-11-26 | 沈阳航空航天大学 | 一种基于多任务随机森林的动作预测方法 |
CN110728317A (zh) * | 2019-09-30 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 决策树模型的训练方法、系统、存储介质及预测方法 |
CN111597028B (zh) * | 2020-05-19 | 2023-08-25 | 北京百度网讯科技有限公司 | 用于任务调度的方法和装置 |
CN112911671B (zh) * | 2021-02-09 | 2022-04-15 | 珠海格力电器股份有限公司 | 一种拓扑组网架构的构建方法和装置 |
CN113569929B (zh) * | 2021-07-15 | 2024-03-01 | 北京淇瑀信息科技有限公司 | 基于小样本扩展的互联网服务提供方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902591A (zh) * | 2012-12-27 | 2014-07-02 | 中国科学院深圳先进技术研究院 | 构建决策树分类器的方法及装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870735A (en) * | 1996-05-01 | 1999-02-09 | International Business Machines Corporation | Method and system for generating a decision-tree classifier in parallel in a multi-processor system |
US6480876B2 (en) | 1998-05-28 | 2002-11-12 | Compaq Information Technologies Group, L.P. | System for integrating task and data parallelism in dynamic applications |
US6826556B1 (en) | 1998-10-02 | 2004-11-30 | Ncr Corporation | Techniques for deploying analytic models in a parallel |
US7007035B2 (en) | 2001-06-08 | 2006-02-28 | The Regents Of The University Of California | Parallel object-oriented decision tree system |
US7747624B2 (en) | 2002-05-10 | 2010-06-29 | Oracle International Corporation | Data summarization |
US6859804B2 (en) | 2002-06-11 | 2005-02-22 | The Regents Of The University Of California | Using histograms to introduce randomization in the generation of ensembles of decision trees |
WO2007024736A2 (en) * | 2005-08-19 | 2007-03-01 | Biap Systems, Inc. | System and method for recommending items of interest to a user |
US8280915B2 (en) * | 2006-02-01 | 2012-10-02 | Oracle International Corporation | Binning predictors using per-predictor trees and MDL pruning |
US7801924B2 (en) * | 2006-12-28 | 2010-09-21 | Infosys Technologies Ltd. | Decision tree construction via frequent predictive itemsets and best attribute splits |
US8935702B2 (en) | 2009-09-04 | 2015-01-13 | International Business Machines Corporation | Resource optimization for parallel data integration |
US8543517B2 (en) * | 2010-06-09 | 2013-09-24 | Microsoft Corporation | Distributed decision tree training |
US9171264B2 (en) | 2010-12-15 | 2015-10-27 | Microsoft Technology Licensing, Llc | Parallel processing machine learning decision tree training |
US9373087B2 (en) | 2012-10-25 | 2016-06-21 | Microsoft Technology Licensing, Llc | Decision tree training in machine learning |
US8996436B1 (en) | 2012-12-20 | 2015-03-31 | Emc Corporation | Decision tree classification for big data |
US9324040B2 (en) * | 2013-01-30 | 2016-04-26 | Technion Research & Development Foundation Limited | Training ensembles of randomized decision trees |
US9292599B2 (en) * | 2013-04-30 | 2016-03-22 | Wal-Mart Stores, Inc. | Decision-tree based quantitative and qualitative record classification |
JP6371870B2 (ja) | 2014-06-30 | 2018-08-08 | アマゾン・テクノロジーズ・インコーポレーテッド | 機械学習サービス |
CN105630936A (zh) * | 2015-12-22 | 2016-06-01 | 北京奇虎科技有限公司 | 基于单类决策树的不平衡数据处理方法及装置 |
-
2017
- 2017-01-20 CN CN201710050188.4A patent/CN108334951B/zh active Active
-
2018
- 2018-01-16 US US16/479,536 patent/US11600005B2/en active Active
- 2018-01-16 WO PCT/US2018/013748 patent/WO2018136369A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902591A (zh) * | 2012-12-27 | 2014-07-02 | 中国科学院深圳先进技术研究院 | 构建决策树分类器的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11600005B2 (en) | 2023-03-07 |
WO2018136369A1 (en) | 2018-07-26 |
CN108334951A (zh) | 2018-07-27 |
US20190355124A1 (en) | 2019-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334951B (zh) | 针对决策树的节点的数据的预统计 | |
US20210374174A1 (en) | Method and apparatus for recommending multimedia resource, electronic device and storage medium | |
KR102092691B1 (ko) | 웹페이지 트레이닝 방법 및 기기, 그리고 검색 의도 식별 방법 및 기기 | |
CN110209808B (zh) | 一种基于文本信息的事件生成方法以及相关装置 | |
US10242071B2 (en) | Preliminary ranker for scoring matching documents | |
CN107710201B (zh) | 存储数据和从位向量搜索索引取回数据 | |
US20130060769A1 (en) | System and method for identifying social media interactions | |
CN107851108B (zh) | 使用位向量搜索索引的匹配文档 | |
CN111475725B (zh) | 用于搜索内容的方法、装置、设备和计算机可读存储介质 | |
US10346496B2 (en) | Information category obtaining method and apparatus | |
CN103838756A (zh) | 一种确定推送信息的方法及装置 | |
US11748324B2 (en) | Reducing matching documents for a search query | |
US20160378828A1 (en) | Bit vector search index using shards | |
CN102214208A (zh) | 一种基于非结构化文本生成结构化信息实体的方法与设备 | |
CN114021577A (zh) | 内容标签的生成方法、装置、电子设备及存储介质 | |
US20140181097A1 (en) | Providing organized content | |
CN107735785B (zh) | 自动信息检索 | |
CN108052535B (zh) | 基于多处理器平台的视觉特征并行快速匹配方法和系统 | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
CN106294784B (zh) | 资源搜索方法及装置 | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
CN110852078A (zh) | 生成标题的方法和装置 | |
CN114936282A (zh) | 金融风险线索确定方法、装置、设备和介质 | |
US20170031909A1 (en) | Locality-sensitive hashing for algebraic expressions | |
JP7341090B2 (ja) | 文献検索システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |