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 决策树算法支持特定的输入列内容类型、可预测列内容类型和建模标志,如下表所示。
输入列内容类型 |
Continuous、Cyclical、Discrete、Discretized、Key、Table 和 Ordered |
可预测列内容类型 |
Continuous、Cyclical、Discrete、Discretized、Table 和 Ordered |
建模标志 |
MODEL_EXISTENCE_ONLY、NOT NULL 和 REGRESSOR |
所有 Microsoft 算法均支持一些通用的函数。但 Microsoft 决策树算法还支持其他函数,如下表所示。
有关对所有 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 |
控制决策树的增长。该值较低时,会增加拆分数;该值较高时,会减少拆分数。默认值基于特定模型的属性数,详见以下列表:
|
FORCED_REGRESSOR |
强制算法将指示的列用作回归量,而不考虑算法为这些列计算出的重要性。此参数只用于预测连续属性的决策树。 |
请参阅
概念
数据挖掘算法
数据挖掘向导
数据挖掘中的功能选择
使用 Microsoft 树查看器查看挖掘模型