今天我们来学习决策树算法。
我们统计了14天的气象数据(指标包括outlook,temperature,humidity,windy),并已知这些天气是否打球(play)。如果给出新一天的气象指标数据如:sunny,cool,high,TRUE,判断一下会不会去打球。
预备知识:信息熵
熵是无序性(或不确定性)的度量指标。假如事件A的全概率划分是:(A1,A2,...,An),每部分发生的概率是(p1,p2,...,pn),那信息熵定义为:
训练数据集中共有14个实例,其中有9个实例属于yes类(适合打网球的),5个实例属于no类(不适合打网球)
打高尔夫(play)信息熵为:
做某事几率为0或者1则信息熵为0,做某事几率为0.5时,系统最混乱
决策的过程就是降低系统混乱程度的过程,也就是降低熵的过程。需要考虑其他状况(变量)的影响。
根据天气是否去打高尔夫:
= 0.694
信息增益:考虑某因素(例如天气)后,所减少的熵值
决策树是一棵倒立的树,从根节点不断分裂,直到达到叶节点。而我们做分裂时,考虑每次取到最大信息增益的因素作为分裂标准。
图中,针对sunny中的子训练数据集分支,有两个类别,该分支中有3个实例属于no类,有2个实例属于yes类,求类别属性新的信息熵。
再分别求3个非类别属性的信息熵,同时求出各属性的信息增益,选出信息增益最大的属性Humidity。
就这样不断计算信息熵和信息增益即可得到决策树,这就是基础的决策树算法原理!你学会了么?