目录
决策树
决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话:
决策树用的是信息论的知识,构建树其实就是给树进行排序,将无序的数据结构化。
ID3算法
划分原则:
将无序的数据变得更加有序。
熵:
用熵来度量数据有序还是无序。熵这个概念最早起源于物理学,在物理学中是用来度量一个热力学系统的无序程度。而在信息学里面,熵是对不确定性的度量。在1948年,香农引入了信息熵,将其定义为离散随机事件出现的概率,一个系统越是有序,信息熵就越低,反之一个系统越是混乱,它的信息熵就越高。所以信息熵可以被认为是系统有序化程度的一个度量。
熵的计算公式:
信息增益:原来混乱的熵-排序后的熵=信息增益
判断账号是否真实
# 账号是否真实:3no(0.3) 7yes(0.7)
# 不进行划分,信息熵
info_D = 0.3*np.log2(1/0.3) + 0.7*np.log2(1/0.7)
info_D
# 决策树,对目标值进行划分, 三个属性:日志密度,好友密度,是否真实头像
# 使用日志密度进行树构建
# 3 s 0.3 -------> 2no 1yes
# 4 m 0.4 -------> 1no 3yes
# 3 l 0.3 -------> 3yes
info_L_D = 0.3*(2/3*np.log2(3/2) + 1/3*np.log2(3)) + 0.4 * (0.25*np.log2(4) + 0.75*np.log2(4/3)) + 0.3*(1*np.log2(1))
info_L_D
由此可看,根据日志密度划分,信息熵就变小了。
计算信息增益
# 信息增益
info_D - info_L_D
好友密度
# 好友密度
# 4 s 0.4 ---> 3no 1yes
# 4 m 0.4 ---> 4yes
# 2 l 0.2 ---> 2yes
info_F_D = 0.4*(0.75*np.log2(4/3) + 0.25*np.log2(4)) + 0 + 0
info_F_D
信息增益
# 信息增益
info_D - info_F_D