对于一棵决策树,如何使用是非常简单的,在此不过多赘述
其实大多数模型都是一个思路:
通过数据进行训练,构建模型,之后对于一个新数据,只需代入模型即可
问题是如何构建模型,这才是一个算法的关键
构建方法有很多种,在此我们仅介绍ID3(考试只考这个)
ID3
总的来说,ID3就是一种按照不同属性的信息增益来递归构造决策树的方法
将所有属性的信息增益都计算一边之后,取最大的属性为根节点,再对每一个子树进行同样步骤,直到所有叶子节点都只有一个值,或所有属性都使用过
信息增益
G a i n ( S , A ) = E n t ( S ) − ∑ j = 1 m ∣ S j ∣ ∣ S ∣ E n t ( S j ) Gain(S,A)=Ent(S)-\sum_{j=1}^m \frac{|S_j|}{|S|}Ent(S_j) Gain(S,A)=Ent(S)−∑j=1m∣S∣∣Sj∣Ent(Sj)
信息熵 − 条件熵 信息熵-条件熵 信息熵−条件熵
信息增益表示得知属性 a 的信息而使得样本集合不确定度减少的程度
A为属性A,j 为属性A的取值,m为属性A的取值数量,
S
j
S_j
Sj为属性A取 j 的样本集合
|S|代表样本数量
信息熵
信息熵是度量样本集合不确定度最常用的指标:
E n t ( S ) = − ∑ p i L o g 2 ( p i ) Ent(S)=-\sum p_i Log_{2} (p_i) Ent(S)=−∑piLog2(pi)
S表示一个集合,含有N个元素,n个离散取值种类,
p
i
p_i
pi表示对于其中第 i 种取值,其概率的值(比例)
条件熵
∑ j = 1 m ∣ S j ∣ ∣ S ∣ E n t ( S j ) \sum_{j=1}^m \frac{|S_j|}{|S|}Ent(S_j) ∑j=1m∣S∣∣Sj∣Ent(Sj)
随机森立
概述
就是n棵决策树,通过这些决策树的结果投票,得出最终结果
构造随机森林中的树:
对于含有N个样本的样本集S,采取bootstrap的方法,取得m个新的样本集,
之后再从K属性中抽取k个属性,以这k个属性为属性集合构造决策树,(k<<K)
生成m课数,形成随机森林
最终决策时要以投票的方式选取最终结果