转自http://www.mathapply.cn/index.php/Applys/showpaper/pid/16
对于决策树的理论这里不做介绍,下面主要介绍SQL SERVER2005的BI中决策树功能的使用。
一、背景问题
根据经验得到不同的天气情况下是否适合打网球,如下表,N表示NO,P表示YES
NO
| 属性
| 类别
| 天气
| 气温
| 湿度
| 风
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 晴
晴
多云
雨
雨
雨
多云
晴
晴
雨
晴
多云
多云
雨
| 热
热
热
适中
冷
冷
冷
适中
冷
适中
适中
适中
热
适中
| 高
高
高
高
正常
正常
正常
高
正常
正常
正常
高
正常
高
| 无风
有风
无风
无风
无风
有风
有风
无风
无风
无风
有风
有风
无风
有风
| N
N
P
P
P
N
P
N
P
P
P
P
P
N
| 如果得到某天的天气情况描述,如,多云,适中,正常,无风,问这天是否适合打网球?
二、数据处理
在数据库中建立一个表,结构与上面的数据结构相同,录入数据,相信大家都会做。结果如下
三、进行数据挖掘
打开SQLServer Business Intelligence,创建数据源,数据源视图,如下

然后创建挖掘结构,右键点击“挖掘结构”,点击“创建挖掘结构”,前面的选项默认,在选择挖掘结构的时候,选择决策树
下一步后,选择输入和可预测的,输入就是用来分类的变量,可预测的是类别变量。按下图进行选择。
点击完成,或下一步输入挖掘结构名称,在部署和运行之前还需要设定决策树模型的参数,点击建立好的挖掘结构中的“挖掘模型”,在右键点第1行的模型名称,选择“设置模型参数”,得到如下对话框,
COMPLEXITY_PENALTY
抑制决策树的生长。该值越小,拆分的可能性越大;该值越大,拆分的可能性越小。默认值由给定模型的属性个数决定: 如果有 1 到 9 个属性,则默认值为 0.5;如果有 10 到 99 个属性,则默认值为 0.9;如果有 100 个或更多属性,则默认值为 0.99。
MAXIMUM_INPUT_ATTRIBUTES
指定算法在调用功能选择之前可以处理的最大输入属性数。如果将此值设置为 0,则为输入属性禁用功能选择
MAXIMUM_OUTPUT_ATTRIBUTES
指定算法在调用功能选择之前可以处理的最大输出属性数。如果将此值设置为 0,则为输出属性禁用功能选择
MININUM_SUPPORT
指定一个叶节点必须包含的最小事例数。如果将该值设置为小于 1 的数,则指定的是最小事例数在总事例数中所占的百分比。如果将该值指定为大于 1 的整数,则指定的是最小事例的绝对数。如果数据量小,这个值不可设得过大,否则结果可能没有拆分。
SCORE_METHOD
指定用来计算拆分分数的方法。可用的方法有: Entropy (1)、Bayesian with K2 Prior (3) 或 Bayesian Dirichlet Equivalent with Uniform prior (4)。
SPLIT_METHOD
指定用来拆分节点的方法。可用方法有: Binary (1) 二分、Complete (2) ,有几个属性,节点拆分几个或 Both (3)。
设定好参数后,直接点击“模型查看器”,它会提示你部署和运行,按照提示操作即可。可查看到决策树(横向的)如下图,鼠标移至结点上,可显示该节点包括N和P类的数量,
在挖掘准确性表中可以看到预测的结果和真实结果的二维表。
由这个结果来看,该决策树的判定正确率是100%。至少对训练样本是这样的。 |