机器学习学习笔记(14)----决策树

决策树是一种树结构的机器学习模型。因为其决策过程就像一颗倒置的树,所以叫决策树。举个例子,我们假设去水果摊买水果,我们需要分辨水果的种类,这时可以通过如下的一个简单的决策过程:

通过几个特征规则,我们可以构建一颗决策树,来确定水果的种类。

从上图可以看出,树的叶节点就是最终的决策结果,根节点和非叶子节点用于根据某一特征来决策后面的分支路径。那么问题来了,我们怎么构造这样一棵决策树,哪个特征判据应该放在根节点,哪个特征判据应该放在叶子节点?

为合理量化决策树特征判据的选择标准,可以使用信息论中熵的有关知识对样本的纯度进行定量表示和分析。

信息熵(简称熵,entropy)是信息论中定量描述随机变量不确定度的一类度量指标,主要是用来衡量数据取值的无序程度,熵的值越大,则表明数据取值越杂乱无序。

X为一个可取有限个值{ x_{1},x_{2},...,x_{n}}的离散型随机变量,其概率分布为:p_{i} = P(X=x_{i}),

则随机变量熵定义为:

H(X)=- \sum_{i=1}^{n}p_{i}log_{2}p_{i}      (1)

如果p_{i}=0,则定义0log_{2}0=0。显然,如果H(X)的值越大,则随机变量X的不确定性就越大。

例如:投掷硬币时,朝上面的是随机变量X,其中正面朝上的概率是p,反面朝上的概率为1-p,那么按照(1)式,信息熵是:

H(X)=-plog_{2}p-(1-p)log_{2}(1-p)    (2)

可以通过python绘制这个信息熵函数:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> def entropy(p):
    if p in (0,1) :
	    return 0
    h = -p*np.log2(p)-(1-p)*np.log2(1-p)
    return h

>>> plot_x = np.linspace(0, 1, 100)
plot_y = np.empty(100)
for i in range(0, 100):
	plot_y[i] = entropy(plot_x[i])
>>> plt.plot(plot_x, plot_y)
>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值