Microsoft 决策树算法

Microsoft 决策树算法是由 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的分类和回归算法,用于对离散和连续属性进行预测性建模。

对于离散属性,该算法根据数据集中输入列之间的关系进行预测。它使用这些列的值或状态预测指定的可预测列的状态。具体地说,该算法标识与可预测列相关的输入列。例如,在预测哪些客户可能购买自行车的方案中,假如在十名年轻客户中有九名购买了自行车,但在十名年龄较大的客户中只有两名购买了自行车,则该算法从中推断出年龄是自行车购买情况的最佳预测因子。决策树根据朝向特定结果发展的趋势进行预测。

对于连续属性,该算法使用线性回归确定决策树的拆分位置。

如果有多个列设置为可预测列,或输入数据包含设置为可预测的嵌套表,则该算法将为每个可预测列分别生成一个决策树。

示例

Adventure Works Cycle 公司的市场部需要标识其以前客户的特征,这些特征可以指示这些客户以后是否有可能购买其产品。AdventureWorks 数据库存储了描述其以前客户的人口统计信息。通过使用 Microsoft 决策树算法分析这些信息,市场部可以生成一个模型,该模型根据有关特定客户的已知列的状态(如人口统计或以前的购买模式)预测该客户是否会购买产品。

算法的原理

Microsoft 决策树通过在树中创建一系列拆分(也称为节点)来生成数据挖掘模型。每当发现输入列与可预测列密切相关时,算法便会向该模型中添加一个节点。该算法确定拆分的方式不同,主要取决于它预测的是连续列还是离散列。有关 Microsoft 决策树算法如何处理可预测的离散列的详细说明,请参阅 SQL 数据库上的可扩展分类学习 Bayesian 网络:。有关 Microsoft 决策树算法如何处理可预测的连续列的详细信息,请参阅时序分析的自动回归树模型的附录。

预测离散列

通过柱状图可以演示 Microsoft 决策树算法为可预测的离散列生成树的方式。下面的关系图显示了一个根据输入列 Age 绘出可预测列 Bike Buyers 的柱状图。该柱状图显示了客户的年龄可帮助判断该客户是否将会购买自行车。

Microsoft 决策树算法中的直方图

该关系图中显示的关联将会使 Microsoft 决策树算法在模型中创建一个新节点。

决策树节点

随着算法不断向模型中添加新节点,便形成了树结构。该树的顶端节点描述了客户总体可预测列的分解。随着模型的不断增大,该算法将考虑所有列。

预测连续列

当 Microsoft 决策树算法根据可预测的连续列生成树时,每个节点都包含一个回归公式。拆分出现在回归公式的每个非线性点处。例如,请看下面的关系图。

显示非线性的多条回归线

该关系图包含可通过使用一条或两条连线建模的数据。不过,一条连线将使得模型表示数据的效果较差。相反,如果使用两条连线,则模型可以更精确地逼近数据。两条连线的相交点是非线性点,并且是决策树模型中的节点将拆分的点。例如,与上图中的非线性点相对应的节点可以由以下关系图表示。两个等式表示两条连线的回归等式。

表示非线性点的等式

使用算法

决策树模型必须包含一个键列、若干输入列和一个可预测列。

Microsoft 决策树算法支持特定的输入列内容类型、可预测列内容类型和建模标志,如下表所示。

输入列内容类型

Continuous、Cyclical、Discrete、Discretized、Key、Table 和 Ordered

可预测列内容类型

Continuous、Cyclical、Discrete、Discretized、Table 和 Ordered

建模标志

MODEL_EXISTENCE_ONLY、NOT NULL 和 REGRESSOR

所有 Microsoft 算法均支持一些通用的函数。但 Microsoft 决策树算法还支持其他函数,如下表所示。

IsDescendant

PredictNodeId

IsInNode

PredictProbability

PredictAdjustedProbability

PredictStdev

PredictAssociation

PredictSupport

PredictHistogram

PredictVariance

有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考

Microsoft 决策树算法支持使用预测模型标记语言 (PMML) 创建挖掘模型。

Microsoft 决策树算法支持多个参数,这些参数会对所生成的挖掘模型的性能和准确性产生影响。下表对各参数进行了说明:

参数 说明

MAXIMUM_INPUT_ATTRIBUTES

定义算法在调用功能选择之前可以处理的输入属性数。如果将此值设置为 0,则表示关闭功能选择。

默认值为 255。

MAXIMUM_OUTPUT_ATTRIBUTES

定义算法在调用功能选择之前可以处理的输出属性数。如果将此值设置为 0,则表示关闭功能选择。

默认值为 255。

SCORE_METHOD

确定用于计算拆分分数的方法。可选方法有:Entropy (1)、Bayesian with K2 Prior (2) 或 Bayesian Dirichlet Equivalent (BDE) Prior (3)。

默认值为 3。

SPLIT_METHOD

确定用于拆分节点的方法。可选方法有:Binary (1)、Complete (2) 或两者 (3)。

默认值为 3。

MINIMUM_SUPPORT

确定在决策树中生成拆分所需的叶事例的最少数量。

默认值为 10。

COMPLEXITY_PENALTY

控制决策树的增长。该值较低时,会增加拆分数;该值较高时,会减少拆分数。默认值基于特定模型的属性数,详见以下列表:

  • 对于 1 到 9 个属性,默认值为 0.5。
  • 对于 10 到 99 个属性,默认值为 0.9。
  • 对于 100 或更多个属性,默认值为 0.99。

FORCED_REGRESSOR

强制算法将指示的列用作回归量,而不考虑算法为这些列计算出的重要性。此参数只用于预测连续属性的决策树。

请参阅

概念

数据挖掘算法
数据挖掘向导
数据挖掘中的功能选择
使用 Microsoft 树查看器查看挖掘模型

其他资源

CREATE MINING MODEL (DMX)

帮助和信息

获取 SQL Server 2005 帮助