Microsoft 决策树算法

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

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

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

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

示例

Adventure Works Cycles 公司的营销部门希望确定以前客户的特征,这些特征可能表明这些客户将来是否可能购买产品。 AdventureWorks2012 数据库存储描述以前客户的人口统计信息。 通过使用 Microsoft 决策树算法来分析此信息,营销部门可以基于有关该客户的已知列的状态(例如人口统计或过去的购买模式)构建一个模型来预测特定客户是否会购买产品。

算法的原理

Microsoft 决策树算法通过在树中创建一系列拆分来生成数据挖掘模型。 这些拆分以“ 节点”来表示。 每当发现输入列与可预测列密切相关时,该算法便会向该模型中添加一个节点。 该算法确定拆分的方式不同,主要取决于它预测的是连续列还是离散列。

Microsoft 决策树算法使用 功能选择 来指导选择最有用的属性。 所有 Analysis Services 数据挖掘算法都使用特征选择来提高性能和分析质量。 功能选择对防止不重要的属性占用处理器时间意义重大。 如果在设计数据挖掘模型时使用过多的输入或可预测属性,则可能需要很长的时间来处理该模型,甚至导致内存不足。 用于确定是否拆分树的方法包括 和贝叶斯网络的行业标准指标*。* 有关用于选择有意义的属性并随后对属性进行评分和排名的方法的详细信息,请参阅 功能选择 (数据挖掘)

数据挖掘模型中的一个常见问题是,模型对训练数据中的小差异过于敏感,在这种情况下,它表示 过度拟合过度训练。 过度拟合模型无法推广到其他数据集。 为了避免过度拟合任何特定数据集,Microsoft 决策树算法使用技术来控制树的增长。 有关 Microsoft 决策树算法工作原理的更深入说明,请参阅 Microsoft 决策树算法技术参考

预测离散列

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

Microsoft 决策树算法中的直方图算法

关系图中显示的相关性将导致 Microsoft 决策树算法在模型中创建新节点。

决策树节点

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

预测连续列

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

显示非线性的多条

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

表示非线性点的

决策树模型所需的数据

在准备用于决策树模型的数据时,应了解特定算法的要求,其中包括所需的数据量以及数据的使用方式。

决策树模型的要求如下:

  • 单键列 每个模型都必须包含一个用于唯一标识每条记录的数值列或文本列。 不允许复合键。

  • 可预测列 至少需要一个可预测列。 可以在模型中包括多个可预测属性,并且这些可预测属性的类型可以不同,可以是数值型或离散型。 不过,增加可预测属性的数目可导致处理时间增加。

  • 输入列 需要输入列,可为离散型或连续型。 增加输入属性的数目会影响处理时间。

有关决策树模型支持的内容类型和数据类型的更多详细信息,请参阅 Microsoft 决策树算法技术参考

查看决策树模型

若要浏览该模型,可以使用 “Microsoft 树查看器”。 如果模型生成多个树,则可以选择其中一个树,然后该查看器即会显示对于每个可预测属性,这些事例分类方式的明细。 还可以使用依赖关系网络查看器来查看这些树的交互。 有关详细信息,请参阅 使用 Microsoft 树查看器浏览模型

如果想了解关于树中任何分支或节点的更多详细信息,还可以使用 Microsoft 一般内容树查看器浏览该模型。 为该模型存储的内容包括每个节点中所有值的分布、树中每一级别的概率和连续属性的回归公式。 有关详细信息,请参阅 决策树模型的挖掘模型内容 (Analysis Services - 数据挖掘)

创建预测

处理过模型之后,结果将以一组模式和统计信息的形式存储,可以使用这些结果来研究关系或作出预测。

有关用于决策树模型的查询的示例,请参阅 决策树模型查询示例

有关如何创建针对挖掘模型的查询的常规信息,请参阅 数据挖掘查询

备注

  • 支持使用预测模型标记语言 (PMML) 创建挖掘模型。

  • 支持钻取。

  • 支持使用 OLAP 挖掘模型和创建数据挖掘维度。

另请参阅

(Analysis Services 的数据挖掘算法 - 数据挖掘) Microsoft 决策树算法技术参考决策树模型查询决策树模型的挖掘模型内容示例 (Analysis Services - 数据挖掘)