《集体智慧编程》第七单元“决策树建模”实质就是ID3决策树处理

01 数据介绍
根据来源网站、位置、是否阅读FAQ,浏览网页数,判断该用户是否会注册。

·
02 信息熵计算
信息熵反应数据集的紊乱程度。变量的不确定性越大,熵的值也就越大。

原始数据注册结果有三种形式:'Basic': 6, 'None': 7, 'Premium': 3
Basic形式注册6人,Premium形式注册3人,没有注册7人。
那么数据集的信息熵计算为:

同理可以计算来源网站、位置、是否阅读FAQ,浏览网页数四个变量的信息熵。
03 信息增益

以来源网站为例,Entropy(S)数据集整体的信息熵(刚刚算好),来源网站信息为{'(direct)': 2, 'digg': 3, 'google': 5, 'kiwitobes': 3, 'slashdot': 3}
direct信息熵=a1
digg信息熵=a2
google信息熵=a3
kiwitobes信息熵=a4
infoGain(数据集,来源网站)
=Entropy(S) - 2/16a1 + 3/16a2 + 5/16a3 + 3/16a4 + 3/16*a5
同理可以计算出位置、是否阅读FAQ,浏览网页数三个变量的信息增益大的作为根节点。
04 决策树

05分类预测
基于已经建立的决策树模型,对新出现的数据进行分类判断。例如判断来源网站为direct,地址为USA,阅读FAQ,浏览5个网页的用户,判断结果为Basic形式注册。
classify(['(direct)','USA','yes',5],tree)#{'Basic': 4}
06 备注小结
- 分类决策树ID3算法、C4.5算法、CART决策树相似却有差别。
决策树本质是if-else的处理
例如基于训练集得到决策树模型为{'有房':{0:{'有工作':{0:no,1:yes}},1:yes}
对于新的数据集就可以根据这两个特征的值做结果判断了。
网友评论