文章来源:公众号-智能化IT系统。
初识决策树
决策树是一个类似于人们决策过程的树结构,从根节点开始,每个分枝代表一个新的决策事件,会生成两个或多个分枝,每个叶子代表一个最终判定所属的类别。
例如,如下是一个决策树,代表薪水大于30W的男性会买车。
我们可以很容易的写出IF Else来实现决策树的判定。上述的决策树有两个特征区间,性别和年龄,最终的结果有两个类别,买和不买。
决策树流程
我们在实际的大数据分析中,一般对决策树分为四个步骤:
生成决策树模型
上例中的图就是一个决策树模型,具体的生成方式后面会详细介绍。
产生分类规则
通过决策树模型产生分类的规则,这一步很简单,如果分枝少,直接的IF Else即可,在上例中,就是
if (sex=male)
{
if(money>30W)
{
buy = true;
}
else
{
buy = fales;
}
else
{
buy = false;
}
测试决策树模型的准确性
假设我们有1万条数据,可以对前9千条进行决策树模型测试,生成好后,对剩下的1千条数据进行准确性测试,以评估决策树的准确度。
对新数据进行预测
这一步没什么说的了,唯一注意的是必须在第三步通过的基础上,决策不是儿戏。
决策树生成
下面我们围绕第一步,说明如何生成决策树。有一个熵的概念,在决策树中需要用到类别熵(H(c))以及特征条件熵(H(c|x)),同时在此基础上计算信息增益(G(x)),以决定决策树的生成。公式如下:
G(x) = H(c) - H(c|x)
概念是虚幻的,下面我们用一个具体的案例来说明,还是前面提到的一个买房的记录:
用户ID | 年龄 | 性别 | 收入 | 婚姻状况 | 是否买房 |
1 | 27 | 男 | 15W | 否 | 否 |
2 | 47 | 女 | 30W | 是 | 是 |
3 | 32 | 男 | 12W | 否 | 否 |
4 | 24 | 男 | 45W | 否 | 是 |
5 | 45 | 男 | 30W | 是 | 否 |